Nachrüstung einer WiFi Schnittstelle mit Websteuerung für einen LandXcape LX79x Mähroboter
Der Einsatz von diesem Projekt erfolgt auf eigene Gefahr! Der Ersteller kann nicht für Schäden haftbar gemacht werden. Sie können einen Verlust der Garantie und des Supports durch den Hersteller riskieren! Dieses Projekt ist keine offizielle Erweiterung des Roboters!
- Fernauslesen des Displays
- Klartextausgabe der Fehlercodes
- Fernsteuern der Tasten und Funktionen
- Anbindung über den I2C Bus zwischen Display und Mainboard
- Wenn der Roboter in der Ladestation steht uns aus ist, kann dieser mit "I/O" eingeschaltet werden
Zum Einsatz kommt der ESP32 auf dem Board "DOIT ESP32 DEVKIT V1". Dieser wurde gewählt, da er zwei Hardware I2C Schnittstellen besitzt. Das ist wichtig, da beim I2C Bus des Roboters das Timing nicht zu sehr beeinflusst werden darf.
Um den ESP32 in den I2C Bus zwischen Mainboard und Display zwischenschalten zu können, benötigt man ein Adapterkabel. Dabei muss am Roboter selbst nichts "umgebaut" werden. Es wird lediglich der Stecker des Displays ausgesteckt und ein Adapter wie folgt dazwischen gesteckt:
Das Adapterkabel hat eine Gesamtlänge von ca 70cm.
Der ESP32 wird auf eine Lochrasterplatine Adaptiert. Die fertige Platine kann dann in dem Batteriefach eingebaut werden.
Um den ESP32 programmieren und flashen zu können, wurde in diesem Projekt die Arduino IDE eingesetzt.
- Installation der aktuellen Arduino IDE
- ESP32 Core installieren (https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html)
- Boardtyp auswählen: 'Werkzeuge->Board->DOIT ESP32 DEVKIT V1'
- CRC Bibliothek ergänzen: 'Werkzeuge->Bibliotheken verwalten...->CRC (Rob Tillaart)'
- Filesystem Uploader: (https://randomnerdtutorials.com/install-esp32-filesystem-uploader-arduino-ide/)
- Download ESP32FS ZIP: https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/
- ZIP direkt in "c:\Program Files (x86)\Arduino\tools" entpacken
- Arduino IDE neu starten
- Repository herunterladen und "ino" Projektdatei öffnen
- ESP32 Board per USB verbinden und passende COM Schnittstelle auswählen: 'Werkzeuge->Port'
- Im .ino Code die WiFi Zugangsdaten anpassen:
const char* ssid = "DEINESSID";
const char* password = "DEINPASSWORT";
- Ordner "data" mit 'Werkzeuge->ESP32 Sketch Data Upload' hochladen
- Seriellen Monitor öffnen
- Projekt kompilieren und hochladen
- Über Seriellen Monitor kontrollieren ob WiFi Verbindung besteht und IP Adresse, welche vom DHCP Server vergeben wurde, ermitteln bzw. merken.
Das Webinterface kann direkt mit der IP Adresse aufgerufen werden:
http://MOWERADRESS/cmd?parm=[COMMAND]&value=[VALUE]
param=[COMMAND]:
- start -> Taste Start bzw. hoch
- home -> Taste Home bzw. runter
- ok -> Taste Ok
- stop -> Taste Stop
- workzone -> Arbeitsbereich einstellen
- timedate -> Zeit und Datum einstellen
- startmow -> "Mähen" starten
- homemow -> "Zurück zur Ladestation" starten
value=[VALUE]:
- Bei "start, home, ok, stop" ist [VALUE] die Dauer in ms des Tastendrucks ansonsten muss 1 übergeben werden.
Beispiel - die Taste Start soll 5 Sekunden gedrückt werden:
Antwort: [Display];[RSSI];[Batteriestatus];[Klartext]
Beispiel bei Fehler:
-E8-;-83;off;Es dauert zu lange, bis der Robi zur Ladestation zurückkehrt.
Beispiel während dem Mähen:
|--|;-80;mid;Mähen...
Einbindung in FHEM per HTTPMOD:
defmod MRoboter HTTPMOD none 5
attr MRoboter alias MRoboter
attr MRoboter event-on-change-reading .*
attr MRoboter get01-1Name Display
attr MRoboter get01-2Name RSSI
attr MRoboter get01-3Name Battery
attr MRoboter get01-4Name Status
attr MRoboter get01Decode UTF-8
attr MRoboter get01Name Ouput
attr MRoboter get01Poll 1
attr MRoboter get01Regex (\N+);;(\N+);;(\N+);;(\N+)
attr MRoboter get01URL http://192.168.2.54:80/statval
attr MRoboter group Mähroboter
attr MRoboter room Haus
attr MRoboter showBody 1
attr MRoboter stateFormat D: Display WL: RSSI S: Status B: Battery
Eine Aufzeichnung sieht dann so aus:
Damit kann eine .bin Datei auf den ESP32 hochgeladen werden.