Kategorien
Basteln Internet der Dinge Programmierung

IOT – Erste Gehversuche mit dem ESP8266/NodeMCU Entwicklungsboard

Der ESP8266 SoC war ursprünglich nur eine günstige (<5 Euro) Möglichkeit, Arduino kompatible Boards, um eine WiFi-Schnittstelle zu erweitern. Inzwischen gibt es jedoch viele Mini-Boards mit dem ESP8266 Chip, mit Bezeichnungen wie ESP-1, ESP-5 oder auch, wie in unserem Fall ESP-12, die auch ohne Arduino betrieben werden können da der ESP8266 selbst ein vollwertiger Mikrocontroller ist.

Das NodeMCU-Board hat den ESP-12 auf einem Board aufgelötet das die GPIO-Pins, wie auch VCC und GND, nach außen führt und auch direkt eine USB zu Seriell Schnittstelle beinhaltet wodurch man das Board direkt per Micro-USB an den PC schließen kann.

Dadurch eignet es sich perfekt für erste Tests und Versuchsaufbauten. Später können die Projekte dann z.B. direkt auf ESP-12 Modulen laufen die dann fest verdrahtet werden.

Anschluss am PC

Wird das Board per Micro-USB an einem Windows PC angeschlossen erkennt Windows automatisch ein neues Gerät. Im Anschluss erscheint das Board im Gerätemanager als neuer COM-Port.

Installation der IDE

Das Board kann mit passender Firmware auch mit der Arduino IDE programmiert werden, für diesen Artikel starten jedoch mit der NodeMCU (LUA Script) Firmware, um die Einstiegshürde so gering wie möglich zu halten. Die entsprechende Entwicklungsumgebung nennt sich Esplorer (Downloadlink) und benötigt leider Java.

Sobald das ZIP-File entpackt ist kann die IDE dieses über ESPlorer.bat gestartet werden.

Installation der Firmware

In der IDE sollte bereits der richtige COM-Port ( z.B. COM5 ) ausgewählt sein. Die Baudrate wird von 9600 auf 115200 geändert und nach einem Klick auf den „Open“-Button verbindet sich die IDE mit dem Board.

Wird nun der Reset-Knopf (RST) auf dem Board gedrückt, sollten bereits erste Boot Meldung in der IDE zu sehen sein.  Sollte hier etwas von „Ai-Thinker Technology Co. Ltd.“ stehen ist eine AT Firmware installiert. Durch Eingabe von „AT+GMR“ in der Befehlszeile weiter unten und „Send“, wird dann die genaue Version der Firmware angezeigt werden. Den etwas Älteren dürften die AT-Befehle ggf. noch aus Modem Zeiten bekannt vor kommen.

Unabhängig von der Firmware wird nun die aktuelle NodeMCU Firmware installiert. Seit einiger Zeit gibt es hierfür eigens eine Website (https://nodemcu-build.com), die uns eine Firmware nach unseren Vorgaben compiliert und anschließend per E-Mail zukommen lässt.

Neben der E-Mail Adresse und der Art des „branch“, bei dem wir zunächst „master“ auswählen, lassen sich noch diverse Module und Erweiterungen aktivieren. Je nach Art des Projektes können Erweiterungen wie SSL Support, HTTP, PWM, end user setip, etc. interessant sein. Für den ersten Test können wir es bei der Voreinstellung belassen. Nach der Bestätigung kann es einige Zeit dauern bis die Firmware im E-Mail Postfach ankommt. Ggf. landet die E-Mail auch im Spam-Ordner, hier als mal nachschauen sollte es sehr lange dauern.

In der Zwischenzeit laden wir uns das Tool zum Flashen der Firmware herunter. Für Linux und MacOS gibt es ein Python basiertes ESPTool (ESPTool auf GitHub) für Windows empfiehlt sich der etwas ältere „nodemcu-flasher“ (Download nodeemcu-flasher 32Bit Version)

Falls noch nicht geschehen sollte der ESPlorer nun geschlossen werden und die herunter geladene „ESP8266Flasher.exe“ Datei gestartet. Der COM-Port sollte hier identisch mit dem in der IDE sein. Im Reiter „Advanced“ sollte die Baud Rate ebenfalls auf 115200 gestellt sein.

Im Reiter „Config“ erscheint die erste Zeile grün hinterlegt. Dort kann nun über das Zahnrad Symbol die Firmware ausgewählt werden (*.bin). Wieder im Reiter „Operation„, wird über „Flash(F)“ dann die Firmware geflashed. Der Fortschrittsbalken sollte danach langsam anwachsen. Sobald die Firmware installiert wurde können wir das Programm wieder schließen.

Wir starten nun erneut ESPlorer, verbinden uns mit dem COM-Port und reseten wieder das Board. Eventuell erscheint zunächst „Formatting file system“ nach einigen Sekunden sollte jedoch die Versionsinformation der NodeMCU Firmware erscheinen. Somit wurde die Firmware korrekt installiert.

Ein erstes Beispiel

Auf den Webseiten von NodeMCU gibt es bereits viele Beispiele. Eines ist z.B. der HTTP Server.

wifi.setmode(wifi.STATION)
wifi.sta.config("*WLANNAME*","*WLANKEY*")
 
srv=net.createServer(net.TCP) 
srv:listen(80,function(conn) 
 conn:on("receive",function(conn,payload) 
 print(payload) 
 conn:send("<h1> Hallo Welt.</h1>")
 end) 
 conn:on("sent",function(conn) conn:close() end)
end)

Natürlich müssen *WLANNAME* und *WLANKEY* entsprechen angepasst werden. Der Code wird im ESPlorer links in das Programmfenster kopiert und angepasst. Mit einem Klick auf den „Send to ESP“ Button wird der Code an das Board übertragen und gestartet.

Die IP lässt sich nun entweder über den Router herausfinden oder in dem in den Befehlszeile rechts unten folgender Befehl eingegeben und gesendet wird:

print(wifi.sta.getip());

Wird diese IP nun im Browser aufgerufen sollte das „Hallo Welt“ angezeigt werden.

Wenn wir nun den Code oben als init.lua Datei abspeichern und mit „Save to ESP“ auf das Board laden. Wird dieser automatisch bei jedem Reset gestartet. Somit können wir das Board auch mit einem Externen Netzteil oder Powerpack für’s Handy betreiben und die „Hallo Welt“ Webseite weiterhin aufrufen.

In den nächsten Artikeln werden wir uns mit den Möglichkeiten der ein und Ausgabe beschäftigen und den Webserver noch erweitern.

Eine Antwort auf „IOT – Erste Gehversuche mit dem ESP8266/NodeMCU Entwicklungsboard“

–Anstelle von:
wifi.sta.config(„*WLANNAME*“,“*WLANKEY*“)
–versucht es besser mit:
wifi.sta.config {ssid=“SSSID“, pwd=“Password“}

Schreibe einen Kommentar zu elektrohero Antworten abbrechen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.