Forum: Mikrocontroller und Digitale Elektronik iLife A4 + Easy ESP Wochentimer


von Foradh (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich habe mir für die kalte Winterzeit ein kleines Projekt überlegt, bin 
allerdings Anfänger auf diesem Gebiet und hätte ein paar Fragen.
Das Projekt:
Ich besitze einen Staubsaugroboter iLife A4. Dieser kann leider nur über 
eine IR Fernbedienung gesteuert bzw programmiert werden. Hierbei fehlt 
mir eine Art Wochentimer bei dem ich z.B. sagen kann "sauge jeden 2. Tag 
für x Stunden". Es ist nur möglich eine Uhrzeit zu programmieren bei der 
der Roboter jeden Tag bis der Akku leer ist saugt.
Ich habe mir überlegt einen ESP-12S Controller mit der Software ESP Easy 
zwischen den IR Empfänger und das Mainboard des Roboters zu bauen. Auf 
dem Controller müsste ich dann die IR Befehle für "Starten" und "ab in 
die Ladestation" hinterlegen. Das ganze kann dann über das ESP Easy 
Webinterface jederzeit abgeändert werden.

Nun weiß ich noch nicht ganz genau wie ich die IR Befehle am besten 
auslese und ob ich diese mit einem Befehl an einen GPIO Pin weitergeben 
kann.
"
    On Clock#Time=Sun,18:00 do  // So um 18 Uhr wird der GPIO 2 
eingeschalten
    gpio,2,1 // hier müsste irgendwie der IR Code für Starten rein
    endon
    On Clock#Time=Sun,19:00 do // GPIO 2 wird am So um 19 Uhr 
abgeschalten
    gpio,2,0 // hier müsste irgendwie der IR Code für Schlafen rein
    endon
"
Wie soll ich hier am besten vorgehen?

Vielen Dank im Voraus.
Foradh

von void (Gast)


Lesenswert?

Hallo Foradh, das von dir ausgesuchte Projekt ist nicht ganz leicht, 
aber von einem Anfänger mit ein bisschen Einarbeitung (der Winter ist 
lang ;-) machbar. Wichtig ist aber das du das ganze in für dich 
verständliche Teile aufteilst.


Foradh schrieb:
> Nun weiß ich noch nicht ganz genau wie ich die IR Befehle am besten
> auslese und ob ich diese mit einem Befehl an einen GPIO Pin weitergeben
> kann.

Schritt 1)
IR-Protokoll und benutzte Befehle herausfinden.
Dazu eignet sich die IRMP ("Infrarot-Multiprotokoll-Decoder") Software, 
läuft beispielhaft auf einem ESP8266-EVB. Kommst deiner Wunschplattform 
am nächsten.
 https://www.mikrocontroller.net/articles/IRMP

Schritt 2)
IR-Befehle senden. Dazu gibt es das Gegenstück zum IRMP: IRSND
 https://www.mikrocontroller.net/articles/IRSND
Wurde aber nicht auf eine passende Plattform portiert, gibt aber 
passende Alternativen:
 https://github.com/markszabo/IRremoteESP8266

Wie diese genutzt wird gibt es gleich als Komplett-Anleitung mit 
Web-Interface.
Praktisch kannst du das so kopieren:
 https://alexbloggt.com/universal-infrarot-websteuerung-ueber-esp8266/


Schritt 3)
Und solltest du jetzt immer noch auf der Wahl "Software ESP Easy" 
bestehen wird es interessant. Denn das macht es doch nicht weniger 
kompliziert.
ESPEasy hat mit dem "P035" Plugin schon ein "Treiber" zum senden von 
IR-Befehlen. Sieht auf den ersten Blick einfach aus.
 https://www.letscontrolit.com/wiki/index.php/IRTX
Aber ob das genau dein benötigtes IR-Protokoll kann ist 
unwahrscheinlich. Falls nicht ist Plugin(=Treiber) neu schreiben 
angesagt. Und das ist nicht mehr ganz was für Anfänger. Das hier ist 
eine Sammlung von solchen Plugins. Einfach mal das 
"_P115_HeatpumpIR.ino" Plugin anschauen als Referenz.
 https://github.com/letscontrolit/ESPEasyPluginPlayground

von Rainer U. (r-u)


Lesenswert?

Es gibt auch so lernfähige Universalfernbedienungen. Die Codes lernen, 
die FB öffnen und die richtigen Taster per uC zur richtigen Zeit 
auslösen - fertig biste.

von Foradh (Gast)


Lesenswert?

Zuerst einmal vielen lieben Dank für die schnellen Rückmeldungen.

Allerdings habe ich mich bei einem Punkt wohl eher bescheiden 
ausgedrückt und versuche es nun noch einmal. Bis zum einlesen der IR 
Befehle passt noch alles...allerdings möchte ich danach eben NICHT das 
IR Signal über einen IR Sender übertragen, sondern den Befehl direkt 
über ein Kabel übertragen.
Der Controller ESP-12S soll eben zwischen dem IR Empfänger und der 
Platine innerhalb des Staubsaugroboter sitzen und das IR Signal direkt 
mit Kabel auf die Platine übertragen.

Wäre soetwas möglich?

Vielen Dank im Voraus.
Foradh

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

auch das ist problemlos möglich, du müsstest aber vermutlich irgendwo im 
Sauger die Leiterbahn zwischen IR-Empfänger-IC und Controller auftrennen 
wenn der Empfänger nicht gerade mit einem Kabel abgesetzt verbaut ist.
Diese Variante vereinfacht die Singalerzeugung da du dann die 
Trägerfrequenz für das IR Signal gar nicht erst erzeugen müsstest. Auch 
ein Einschleifen in die bestehende Verbindung zwischen Empfänger und 
Controller ist nicht erforderlich - du willst ja nur senden. Eine 
Verknüpfung der beiden Signale mit 2 Dioden sollte reichen.

Sascha

von Foradh (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für deine schnelle Antwort Sascha.

Der IR Empfänger ist meiner Meinung nach vom Controller getrennt (siehe 
Bild)
Somit müsste ich nur zwischen die Datenleitung zwischen IR Empfänger und 
Mainboard (diese ist mir einem Kabel verbunden)

Darf ich nochmal ganz blöde fragen wie jetzt die korrekte Vorgehensweise 
aussehen würde?

1. Ich lese irgendwie den IR Code aus und erhalte eine Art Code (könnte 
mir evtl jemand ein Beispiel schreiben wie so ein Code aussehen wird?)

2. Ich finde die Datenleitung, die eine der 4 Kabel zwischen IR 
Empfänger und Mainboard sein muss und schleife hier einen GPIO Pin von 
meinem ESP-12S Controller ein

3. Ich bespiele den ESP-12S Controller mit ESP Easy und pflege hier den 
Code ein (könnte mir hier ebenfalls jemand ein Beispiel geben wie das in 
etwa aussehen würde?)
"
    On Clock#Time=Sun,18:00 do  // So um 18 Uhr wird der GPIO 2
eingeschalten
    gpio,2,1 // ??? IR Code ???
    endon
    On Clock#Time=Sun,19:00 do // GPIO 2 wird am So um 19 Uhr
abgeschalten
    gpio,2,0 // ??? IR Code ???
    endon
"

Nochmals vielen Dank an die tolle Community hier!
Foradh

von Foradh (Gast)


Angehängte Dateien:

Lesenswert?

Update (nun mit korrektem Bild) der vorherige Post kann gelöscht werden

Vielen Dank für deine schnelle Antwort Sascha.

Der IR Empfänger ist meiner Meinung nach vom Controller getrennt (siehe
Bild; Es sind insgesamt 4 IR Empfänger auf dem Roboter verbaut; diese 
sind mit insgesamt 2 Kabeln mit dem Mainboard verbunden; daher sind 2x 
6Pin Anschlüsse verbaut)
Somit müsste ich nur zwischen die Datenleitung eines IR Empfängers und
Mainboard.

Darf ich nochmal ganz blöde fragen wie jetzt die korrekte Vorgehensweise
aussehen würde?

1. Ich lese irgendwie den IR Code aus und erhalte eine Art Code (könnte
mir evtl jemand ein Beispiel schreiben wie so ein Code aussehen wird?)

2. Ich finde die Datenleitung, die eine der 4 Kabel zwischen IR
Empfänger und Mainboard sein muss und schleife hier einen GPIO Pin von
meinem ESP-12S Controller ein

3. Ich bespiele den ESP-12S Controller mit ESP Easy und pflege hier den
Code ein (könnte mir hier ebenfalls jemand ein Beispiel geben wie das in
etwa aussehen würde?)
"
    On Clock#Time=Sun,18:00 do  // So um 18 Uhr wird der GPIO 2
eingeschalten
    gpio,2,1 // ??? IR Code ???
    endon
    On Clock#Time=Sun,19:00 do // GPIO 2 wird am So um 19 Uhr
abgeschalten
    gpio,2,0 // ??? IR Code ???
    endon
"

Nochmals vielen Dank an die tolle Community hier!
Foradh

von Foradh (Gast)


Lesenswert?

Push

von Sascha W. (sascha-w)


Lesenswert?

Foradh schrieb:
> Der IR Empfänger ist meiner Meinung nach vom Controller getrennt (siehe
> Bild;
Ja, auf der Platine sehe ich keinen
> Es sind insgesamt 4 IR Empfänger auf dem Roboter verbaut; diese
> sind mit insgesamt 2 Kabeln mit dem Mainboard verbunden; daher sind 2x
> 6Pin Anschlüsse verbaut)
Glaube ich nicht, das sind wohl eher Kollisionssensoren, ich wüsste 
keinen Grund warum man bei dem kleinen Teil mehr als einen IR-Empfänger 
verbauen sollte.
Schau mal was an den 3-poligen Steckern dranhängt.
google mal nach TSOP dann weisst du schon mal nach was du suchen musst.

> Somit müsste ich nur zwischen die Datenleitung eines IR Empfängers und
> Mainboard.
Ja
> Darf ich nochmal ganz blöde fragen wie jetzt die korrekte Vorgehensweise
> aussehen würde?
>
> 1. Ich lese irgendwie den IR Code aus und erhalte eine Art Code (könnte
> mir evtl jemand ein Beispiel schreiben wie so ein Code aussehen wird?)
es gibt soviele Protokolle, da nützt es nichts hier ein Beispiel zu 
nennen - such hier mal nach IRMP da gibts eine recht ausführliche 
Beschreibung der ganzen Protokolle

> 2. Ich finde die Datenleitung, die eine der 4 Kabel zwischen IR
> Empfänger und Mainboard sein muss und schleife hier einen GPIO Pin von
> meinem ESP-12S Controller ein
Ja
> 3. Ich bespiele den ESP-12S Controller mit ESP Easy und pflege hier den
> Code ein (könnte mir hier ebenfalls jemand ein Beispiel geben wie das in
> etwa aussehen würde?)
keine Ahnung wie das mit ESP Easy aussieht, du kannst aber auch über die 
Arduino-IDE selber was programmieren.
Du installierst die IR-lib und in den zugehörigen Beispielen findest du 
sch was. Erst mal das was die Lib erkannt hat seriell ausgeben und dann 
weisst du auch was du wieder senden musst.

Sascha

von eutervogel (Gast)


Lesenswert?

Hi,
sorry, dass ich diesen alten thread nochmals auspacke.
Hast du zufällig die IR-Codes vom Sauger notiert?

Ich habe einen A4s, dessen Fernbedienung nicht mehr richtig 
funktioniert. Der "Clean"-Button funktioniert noch. Den konnte ich also 
aufzeichnen. Aber alle anderen Knöpfe senden leider kein Signal mehr.

Wäre toll, wenn du die Codes hier posten könntest.

Vielen Dank.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.