Rainer-Rebhan

WeMos D1 R2 Board

UNO kompatible Varianten des ESP8266 WLan (WiFi) Controllers

Infos zur Hardware und zur Programmierung mit der Arduino IDE (Clone Board)

Viele meiner Projekte zur Hausautomatisierung verwenden das hausinterne Wlan um Daten z.V. zu stellen. Hierzu wir ein drahtloser Zugang zum Router/WLan benötigt. Mein erster Ansatz für diese Arduino basierenden Projekte war das Ethernet-Shield und ein Ethernet-Wlan Adapter (für Details siehe diese Projekte). Ein für die Hardware deutlich einfachere und preislich auch günstigere Möglichkeit bietet der Microcontroller der chinesischen Firma ESPRESSIF. Der ESP 8266 ist ein Ultra-low-Power-32-Bit-Mikrocontroller mit einem integrierten WLAN IEEE 802.11 b/g/n. Nun gibt es von der Fa. WeMos ein Board das "praktisch" kompatibel mit dem Layout des Arduino UNO ist, mit der Arduino IDE programmiert werden kann und darüber hinaus weitere Vorteile bietet.

WeMos D1 R2 Board

Auf dem Board ist ein ESP-12E integriert. Dieser hat, gegenüber den anderen ESP-Varianten, alle Pins herausgeführt. Es stehen (von den 17 internen) 11 GPIOs und ein ADC Pin zur Verfügung. Die 5V und die 3,3V können mit max. 1 A belastet werden. Der Controller arbeitet mit einer 32 Bit CPU bei bis zu 160 Mhz. Die Speicher mit max. 4096KB RAM und max. 16Mbyte Flash sind deutlich grösser als bei einem UNO. Das Board hat einen Betriebspannungsanschluss (wie UNO) mit einem Spannungsbereich von 5V bis 12V, die GPIOs hingegen vertragen nur 3,3V als HiGH-Pegel. Jedoch gibt es einige Unterschiede zu einem UNO und diese sind unbedingt zu beachten. Die Pinbelegung ist anders und zu verstehen - hier die Zuordnung der UNO-Pins zu den ESP-GPIOs eine WeMos D1 R2 (Clone):
PINs D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 D 9 D 10 D 11 D 12 D 13 D 14 D 15
FKT RX TX IO SCL SDA SCK MISO MOSI IO IO IO MOSI MISO SCK SDA SCL
GPIO 3 1 16 5 4 14 12 13 0 2 15 13 12 14 4 5
Bei der Programmierung müssen immer die GPIO Nummer des ESP angegeben werden und nicht die Dx Nummer. Ab der Pin Nummer D11 wiederholen sich einige GPIOs. Als Funktions-GPIO können ein I2C Bus (2 GPIOs) und ein SPI Bus (3 GPIOs) genutzt werden. Nur falls diese nicht in der Software definiert sind, können sie als allg. IOs verwendet werden. GPIO 1 und GPIO 3 ist immer dem Debug-Monitor zugeordnet.
Die wichtigsten tech. Daten (ESP-12E) in der Zusammenfassung

Die Programmierung mit der Arduino IDE

Zuerste muss die Arduino IDE ( die Arduino-IDE ab V 1.6.12 verwenden) zur Programmierung der WeMos D1- auch Mini- Boards (und noch andere Boards) aufgerüstet werden. Hierzu gibt es eine spezielle Library bzw. Bibliothek die über den Additional Boards Manager installiert werden muss. Dieser Link „http://arduino.esp8266.com/stable/package_esp8266com_index.json“ ist in den Board Manager einzutragen. Ein genaue Beschreibung des Ablaufes finden sie mehrfach im Internet. Die Installation kann bis zu 10 Minuten dauern. Nach Abschluss der Installation werden in der Board-Auswahl verschiedenen ESP-Module und Board gezeigt - darunter auch der Eintrag WeMos D1 R2 & mini
Zum Test laden sie ein einfaches Beispiel in die Arduino IDE und compilieren sie dieses. Die Compilierung dauert auch für dieses einfache Beispiel relativ lange, wie auch das anschliessende Hochladen in den Flash-Speicher - denn es wird immer das komplette Programm (WiFi + eigenes Prog.) erzeugt und geflasht.
Bei der Programmierung sind diese Punkte zu beachten
1. treten Fehler beim Compilieren auf, können zu lange Pfadnamen der Libs die Ursache sein 2. deshalb sollten sich zusätzliche spezielle Libraries im Sketchbook-Ordner befinden 3. u.U kann auch ein (neuer) Ordner "Portable" in der IDE (im Ordner-Pfad: drivers, examles, hardware, java,....) und die Neuinstallation im Borad-Manager helfen. ...und es gibt auch Probleme mit den ESP8266 - welche das erfahrenb sie hier: den ESP8266 programmieren
nach oben zurueck weiter