Over The Air Update (Arduino IDE)

Beim Over The Air Update (OTA) wird der Sketch nicht über die serielle Verbindung, sondern über WLAN an das ESP8266 Modul gesendet. Dies ist sehr praktisch wenn das ESP8266 Modul so verbaut wurde, dass es nur schwer zugänglich ist. Zum Beispiel ist bei uns im Wohnzimmer in einer Unterputzdose ein Wemos D1 mini als IR-Sender verbaut ist. Für jedes Update den Wemos auszubauen wäre sehr umständlich.

Die drei Optionen

Es gibt drei verschiedene Möglichkeiten ein Over The Air Update durchzuführen. Dieser Beitrag beschäftigt sich mit Update über die Arduino IDE, die wohl am häufigsten genutzte Variante.

Arduino IDE – Es kann direkt aus der Arduino IDE ein Update durchgeführt werden. Einfach unter dem Menüpunkt Port das entsprechende Modul wählen und starten.

Web Browser – Bringt aus meiner Sicht keine großen Vorteile, hier kann über ein kleines Webfrontend auf dem ESP8266 Modul ein Upload der kompilierten BIN-Datei gestartet werden.

HTTP Server – Hier gibt es ein „Simple Update“ und ein „Advanced Update“. Beim einfachen Update wird beim Aufruf einer Funktion eine vorab definierte BIN-Datei vom HTTP Server geladen und beim erweiterten Update können mehrere BIN-Dateien auf dem HTTP Server abgelegt und dann den Modulen per MAC Adresse zugewiesen werden. Zudem wird ein Update nur bei einer Abweichung durchgeführt.

Requirements

Neben einer möglichst aktuellen Arduino IDE (1.6.7 oder neuer) muss zwingend Python 2.7 auf dem System installiert sein. Auf einem Windows System sollte “Add python.exe to Path” bei der Installation gewählt werden. Zudem muss das ESP8266 Modul im Boards Manager der Arduino IDE eingerichtet sein. Eine einfache Anleitung gibt es auf GitHub.

Für das Over The Air Update sollte sich das ESP8266 Modul im gleichen Netzwerk befinden und es muss genügend freier Speicher zur Verfügung stehen. Der neue Sketch muss doppelt bzw. zusammen mit dem alten Sketch in den Flash Speicher passen!

Der Weg zum Over The Air Update

Nehmt einfach den OTA Sketch den ich euch unten bereitgestellt habe und passt ihn wie beschrieben an. Der erste Upload muss natürlich noch über die serielle Verbindung (USB) erfolgen.

Wurde der Sketch installiert, zieht sich das ESP8266 Modul über WLAN eine IP Adresse vom DHCP Server und teilt diese per mDNS über UDP mit. Wenn alles geklappt hat, erscheint das ESP Modul mit dem Präfix esp8266-[ChipID] in der Arduino IDE unter Ports wie unten auf dem Bild zu sehen. Die ChipID besteht aus den letzten 6 Stellen der MAC-Adresse. Eventuell ist noch ein Neustart der Arduino IDE notwendig, damit dieser sichtbar wird. Sollte es dort nicht erscheinen, macht ein Blick auf den Serial Monitor Sinn. Meldet sich das ESP8266 Modul erfolgreich am WLAN an und erhält eine IP-Adresse, kann es auch an der Firewall liegen.

Over The Air Update - Arduino IDE

Solange keine wesentlichen Bestandteile aus dem Sketch gelöscht werden, kann jetzt immer wieder ein Over The Air Update über die Arduino IDE durchgeführt werden.

Serial Monitor

Gerade in der Testphase von größeren Projekten ist der Serial Monitor ein sehr wichtiges Hilfsmittel für das Troubleshooting. Versucht ihr über IP den Serial Monitor zu öffnen, erhaltet ihr leider die Fehlermeldung „Serial monitor is not supported on network“. Eine Alternative ist der Einsatz eines Wifi Telnet Servers. Dieser kann wie der Serial Monitor verwendet werden und es wird nur ein Telnet Client wie Putty benötigt. Da sich der Telnet Server auch ohne OTA nutzen lässt, erstelle ich hierzu noch einen eigenen Beitrag.

Sketch

Der erste Sketch ist auf das wesentliche gekürzt. Vorab müssen aber mindestens die folgenden Zeilen in jedem Sketch angepasst werden!

Die Variable ArduinoOTA.setPassword solltet ihr nicht nur aus Sicherheitsgründen setzen. So habt ihr auch noch die Chance ein versehentlich falsch ausgewähltes Board vor dem Überschreiben zu retten, vorausgesetzt natürlich ihr bekommt es mit!

Der Sketch ist so natürlich komplett nutzlos. Nicht einmal die LED blinkt! 😉 Also packen wir noch ein paar Features hinzu. Dieser kann zum Test gleich per Over The Air Update auf das ESP Modul gesendet werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code