Das „D1 Mini“

Es ist nun an der Zeit, dass wir uns unser Board mal näher ansehen. Der auf unserem Board verbaute ESP8266/E12 hat einige Eigenheiten, die bei der Programmierung wie auch der elektronischen Beschaltung berücksichtigt werden müssen. Denn im Grunde ist der ESP8266 nicht mehr als ein WiFi- Controller, dessen Rechenleistung mit der Übertragung von Daten bei weitem nicht ausgelastet ist. Der Hersteller Espressif hat diesen WiFi- Controller mit einigen Schnittstellen und ordentlich Speicher aufgerüstet. Wodurch er sich recht rasch in der Bastler- Szene für IoT Projekte etabliert hat. Das „D1 Mini“ ist als Board derzeit das kleinste, dass man ohne spezieller Programmierplatiene programmieren kann. Nebenbei hat man den Vorteil, die Software auch im eingebauten Zustand ändern zu können. Zudem kann jedes Handy- Ladegerät als Stomversorgung genutzt werden.


Der ESP8266
Es gibt den ESP8266 in verschiedenen Versionen. Wobei die älteren kaum mehr genutzt werden. Erwähnt sei das ESP-WLAN- Modul, welches als reines W-Lanmodul neben der seriellen Schnittstelle und der Spannungsversorgung über gerade mal 2 IO-Pins verfügt. Dieser MC wird hauptsächlich als W-Lan Karte für „Arduino- Boards“ und den „Raspberry Pi“ verwendet. Typischerweise ist dieses Modul bereiz mit Pins ausgestattet und kann so auf anderen Boards problemlos aufgesteckt werden.

Der auf unserem „D1 mini“ verbaute Chip ist ein ESP8266/E12.

imagesLinks siehst Du seine Pinbelegung.
Wir werden uns mit damit nicht näher beschäftigen, denn unser „D1 mini“ ist auf der Platine bereiz so verdrahtet, dass der MC betrieben, programmiert und rückgesetzt werden kann. Zudem können die einzelnen Pins zusätzlich per Software mit speziellen Funktionen belegt werden. Das würde den diesen Beitrag jedoch bei weitem sprengen.
Wie Du im letzen Beispiel bemerkt hast, leuchtet die kleine Blaue LED genau verkehrt herum, wie wir diese programmiert haben. Das liegt daran, dass die LED am GPIO2/D4 über einen 10k Widerstand gegen die VCC Spannungsversorgung geschlossen ist. Dieser im Programm als „D4“ frei nutzbare IO- Pin dient nebenbei als Betriebsanzeige. Während des Uploads von Programmen blinkt diese LED. Nach dem einschalten oder rücksetzen leuchtet sie kurz auf. Wir sollten diesen Ausgang also nur für Funktionen nutzen, die keinen Schaden anrichten, wenn sie unkontrolliert anlaufen.

Beispiel:
Ich habe eine Modellbahnlok für meinen Sohn mit einem „D1 mini“ ausgerüstet, um diese per Handy zu steuern. Hier wird der D4 für das Rücklicht verwendet. Das Rücklicht blinkt also wenn ich die Software ändere. Der Geschwindigkeitsregler liegt auf einem anderen Ausgang. Denn die Lok soll ja nicht los fahren während ich neue Software per Kabel hochlade.

Technische Daten:

  • Betriebsspannung 3,3 V
  • 80 MHz Tensilica Xtensa LX106 Kern kann bis 160 MHz hoch getaktet werden
  • 4 MB Speicher
  • 11 GPIO
  • 1 Analoger Eingang
  • WiFi Antenne on Board.

Das „D1 mini“
Dieses Board gehört zu den sogenannten „Node MCU Boards“. Als solches besitzen diese einige Funktionen die einem den Einstieg erleichtern sollen. Sie können unter anderem auch mit Lua- Script oder Python- Script programmiert werden. Was einiges erleichtert jedoch sehr viel Rechenleistung und einiges an Speicher verbraucht.
Nach dem ersten Upload mittels „Arduino IDE“ sind diese Funktionen jedoch nicht mehr verfügbar, außer Du flasht den „D1 mini“ mit der entsprechenden Firmware neu.

Oben siehst Du die Pinbelegung des „D1 mini“. Die 9 Standard- GPIO´s können in „Arduino IDE“ bequem mit ihrer Bezeichnung auf der Platine angesprochen werden. Du kannst sie allerdings auch unter der Hardware- Nummer programmieren. „D4“ könnte also im vorherigen Beispiel auch als „GPIO2“ bezeichnet werden.

Für uns „Arduino IDE“ Nutzer, ergeben sich folgende Vorteile:

  • Das Board hat einen Spannungsregler eingebaut, der die 5V der USB- Schnittstelle in die 3,3V für den ESP8266 wandelt.
    Für beide Spannungen sind Lötpunkte vorhanden.
  • On Board ist ein USB/Serial Wandler. Den man sich sonst zum hochladen von Programmen selbst anlöten müsste.
  • Die Reset Taste ist fertig beschalten.
  • Der Flash- Eingang, den man sonst immer vor dem hochladen gegen Masse verbinden müsste ist mit Transistoren so beschalten, dass „Arduino IDE“ dies ohne unser zutun automatisch macht.
  • 9 GPIO´s welche als „D0“ – „D8“ einfach angesprochen werden können, oder als Bus zu anderer Hardware genutzt werden können und dafür mit Widerständen beschalten sind.
  • 1 serielle Schnittstelle, welche auch als 2 IO- Pins und für andere Aufgaben genutzt werden kann.
    Wir werden und im Rahmen des Projekts noch ausführlich damit beschäftigen.
  • Der Analogeingang ist betriebsbereit mit Widerständen beschalten.

Schaltplan
Wer sich genauer interessiert, kann sich mal den Schaltplan näher ansehen.
Wir sehen, dass es nicht viel an Beschaltung braucht, den ESP8266 als MC zu betreiben.
Im obersten Block ist neben den Lötpunkten auf der Platine die Spannungsversorgung zu sehen.
Im mittleren Block siehst Du, dass einige Pins des ESP8266 beschalten sind.
Links siehst Du die Pins welche dauerhaft oder vorsorglich auf LOW oder HIGH gesetzt werden, um den ESP8266 stabil am laufen zu halten, falls diese Pins nicht im Programm genutzt werden würde es sonst zu Abstürzen kommen. In der Mitte wird die Verdrahtung zum ESP8266 inklusive der Entstörung der Spannungsversorgung gezeigt. Daneben die „Reset“- Taste. Wobei man die auch links parallel zu C9 mit einzeichnen hätte können. Ganz rechts ist dann noch die oben erwähnte Beschaltung des Analogeingangs zu sehen.
Im unteren Block wird die Beschaltung des USB/Serial- Adapters gezeigt.

Keine Sorge! Du musst Dir das nicht merken. Doch schadet es nichts, sich einen solchen Schaltplan wo ab zu speichern. Wenn wir später aufwendigere Projekte planen, sollte man sich im Vorfeld Gedanken machen wie man die einzelnen Ausgänge im Sketch belegt. Denn nicht jeder Pin kann mit jeder Aufgabe belegt werden.

Beispiel:
Es gibt auch eine „Sleep Funktion“, welche bei Batterie oder Akkubetrieb wichtig ist, um Strom zu sparen. (WiFi verbraucht sehr viel Strom.) Um den ESP8266 wieder per IO- Pin auf zu wecken, kann man den „GPIO16“ benutzen. „D0“ kann demnach nur mehr als GPIO genutzt werden wenn absolut sicher ist, dass dies nicht zu Konflikten im Programmablauf führt.

d1-mini-shematics


Einschränkungen

WiFi- Rechenleistung
Durch den Umstand, dass der Prozessor auch die WiFi- Schnittstelle mit Rechenleistung versorgen muss, darf Dein Programmablauf den Prozessor nicht länger als 20 ms durchgehend blockieren.  Meist muss man sich darüber jedoch keine Gedanken machen.

  • Bei jedem loop- Durchgang wird der Prozessor kurz frei gegeben.
  • Sollte Dein Programmablauf länger dauern, kannst Du zwischendurch den Prozessor mittels des Befehls yield() für die WiFi- Schnittstelle frei geben.
  • Auch wenn das Programm mittels des Befehls  delay() angehalten wird, bearbeitet der Prozessor in der Zwischenzeit Aufgaben für das WiFi.

Analogeingang
Leider liegt der Analogeingang des ESP8266 zu nahe an der Antenne. Hier sind Störungen bis 0,3 Volt keine Seltenheit. Was bei einem Messumfang von 3,2 Volt sehr viel ist. (9,4%) Demnach werden wir diesen nur sehr selten wirklich gebrauchen können.


Alternative „Node MCU Boards“
Es gibt fast für jede Aufgabe auch ein passendes Board. Boards mit vorbereiteten Akku- Anschluss inklusive eines Ladereglers, Boards mit einem kleinen Display und zusätzlichen Tasten. Auch was die Baugröße Betrifft, kann man fast alles finden und so das Board den Anforderung des Projekts anpassen.
Auch das „D1 mini“ wird in verschiedenen Ausführungen angeboten. Die Platine ist immer gleich groß. Jedoch gibt es unterschiedliche Bestückungen, um zum Beispiel eine Antenne an zu stecken und so die Reichweite zu erhöhen, oder ein übertaktetes Board (125 MHz) mit 16 MB Speicher, dass als „D1 mini PRO“ angeboten wird.


Nachfolger
Espressif hat für den ESP8266 bereiz einen Nachfolger auf den Markt. Der ESP32 arbeitet mit einen 2 Kern 240 MHz Prozessor. 4 MB Speicher und verfügt über weit mehr GPIO- Pins. Er ist nur geringfügig breiter als der ESP8266. Was nur mit einem engeren Lötraster möglich ist.  Mittlerweile liegt er preislich bei rund 7 Euro und die Firmware ist durchaus stabil.
Einige Grundlegende Funktionen müssen allerdings immer noch ganz nahe an der Hardware programmiert werden. Es lohnt sich sicher, hier den Entwicklungsstatus für „Arduino IDE“ zu beobachten.
Auch die ersten Node MCU- Boards sind bereiz beziehbar.


Fazit
Der ESP8266/E12 ist nicht umsonst einer der beliebtesten MC´s in der IoT- Bastlerszene. Das „D1 mini“ hat alles an Board, was man zum programmieren und betreiben braucht und ist zudem klein genug um bei den meisten Projekten auch noch Platz zu finden. Nebenbei gibt es auch eine große Auswahl an Zubehör, das oftmals sogar einfach aufgesteckt werden kann.

Innerhalb diese Projekts werden wir uns auch einige Platinen selbst herstellen die auf dieses Board einfach aufgesteckt werden können.

Solltest Du noch Fragen und Anregungen zu diesem Beitrag haben? Melde Dich dazu in diesem Beitrag in unserer Google Community!