Mikrocontroller ESP8266 für Automationsaufgaben im IoT

© photobac, 123RF

Starker Auftritt

Überall, wo ein Raspberry Pi für Messaufgaben hoffnungslos unterfordert ist, können Sie einen ESP8266 einsetzen. Der WLAN-fähige Mikrocontroller verbraucht im Standby weniger als 3,3 Milliwatt und kostet lediglich 6 Euro.

Als echter Raspberry-Pi-Geek tut man sich auf den ersten Blick etwas schwer mit einem schnöden Mikrocontroller wie dem ESP8266: Ein eigenes Betriebssystem fehlt ihm, programmieren lässt er sich nur in C oder Assembler. Obendrein fehlen ihm jegliche Ports für Tastatur, Maus und Monitor. Wie soll er da mit dem RasPi zu einem starken Team zusammenwachsen?

Gerade in der Beschränkung des ESP8266 liegt jedoch seine Stärke: Er bietet sich für viele Einsatzgebiete an, für die ein ausgewachsener Raspberry Pi hoffnungslos überdimensioniert scheint – zum Beispiel, um Temperaturen zu messen. Ein RasPi ist für eine so einfache Aufgabe nicht nur viel zu leistungsfähig, sondern auch zu teuer. Der ESP8266 dagegen kostet im einschlägigen Handel weniger als 6 Euro [1].

Auch seine geringe Leistungsaufnahme spricht für den kleinen Mikrocontroller. Ein RasPi zieht im Betrieb immerhin 3,5 Watt, ein ESP8266 benötigt dagegen maximal ein halbes Watt. Im Standby begnügt er sich sogar mit weniger als 3,3 Milliwatt und eignet sich damit bestens für den Batteriebetrieb, sodass er sich auch an Stellen ohne Netzversorgung einsetzen lässt.

Familienbande

Eigentlich gibt es "den" ESP8266 so gar nicht. Der ESP8266-12 (auch gern als ESP-12 oder 12E bezeichnet), mit dem wir uns im Folgenden beschäftigen, gehört zu einer ganzen Familie von Mikrocontrollern, die neben der Bezeichnung ESP8266 noch eine weitere Gemeinsamkeit aufweisen: Sie alle bringen ab Werk eine WLAN- und eine GPIO-Schnittstelle mit.

Dabei bieten sie ein exzellentes Preis-Leistungs-Verhältnis und bringen mehr Rechenleistung mit als die meisten anderen angebotenen Mikrocontroller. Versionen aus fernöstlichem Import finden sich teils für um die 3 Euro im Angebot, was die Bausteine für den Bastler überaus interessant macht. Beim Bestellen sollten Sie allerdings bedenken, dass die günstigeren Angebote von Ebay und Co. mit Vorsicht zu genießen sind – es kann schon einmal vier Wochen dauern, bis eine Lieferung aus China ankommt.

Das breite Angebot diverser ESP8266-Versionen erinnert unwillkürlich an eine andere Mikrocontroller-Familie: die Arduinos. Worin liegt der Unterschied zwischen einem ESP8266 und einem Arduino-Board? Verkürzt könnte man sagen, beim ESP8266 bekommt man einfach mehr Prozessor-Power und Speicher fürs Geld, eine WLAN-Schnittstelle gibt es obendrauf. Je nach Modell haben Arduinos jedoch den Vorteil, dass sie viel mehr I/O-Pins mitbringen. Andererseits lassen sich am ESP8266, falls er tatsächlich einmal für ein bestimmtes Projekt nicht genug IOs mitbringt, über den I2C- oder SPI-Bus zusätzliche anschließen.

Langer Rede kurzer Sinn: Es lohnt sich garantiert, sich mit dem ESP8266 auseinanderzusetzen. In Ihren zukünftigen Projekten finden sich sicher vielfältige Anwendungen für diesen Baustein.

ESP8266-12 – technische Daten

  • 32-Bit-RISC-CPU Tensilica Xtensa LX106 (80 MHz Taktrate)
  • 64 KByte RAM für Programmcode, 96 KByte Daten-RAM
  • Externes QSPI-Flash (512 KByte bis 4 MByte)
  • WLAN IEEE 802.11b/g/n (WPA/WPA2), +19,5 dBm Ausgangsleistung (802.11b)
  • WiFi Direct (P2P), Soft-Access-Point, integrierte Antenne
  • Integrierter TCP/IP-Protokollstack
  • Integrierter TR-Switch, Balun, LNA, Endstufe und Anpassungsnetzwerk
  • Verlustleistung (Power Down) weniger als 10 Mikroampere
  • 10 GPIO-Pins, SPI, I2C
  • I2S-Schnittstellen mit DMA (Sharing-Pins mit GPIO)
  • UART: URXD/UTXD
  • 10-Bit-ADC
  • Wakeup und Versand von Paketen in unter 2 Millisekunden
  • Standby-Stromverbrauch kleiner 1,0 Milliampere
  • Größe 17,2 x 12,3 Millimeter

Installation der Entwicklungsumgebung

Um für den ESP8266 Programme zu schreiben, gibt es sicherlich mehr als einen Weg. Wir gehen im Folgenden auf eine der einfacheren und recht komfortablen Möglichkeiten ein. Dazu laden Sie auf einem Desktop-Rechner zuerst die Entwicklungsumgebung von der Arduino-Homepage [1] herunter und installieren sie (Abbildung 1). Die Software liegt in Versionen für Linux, Mac OS X und Windows vor.

Abbildung 1: Der Download-Bereich auf der Arduino-Homepage.

Beim Einsatz eines Linux-Rechners achten Sie bitte darauf, die für das Betriebssystem passende Version auszuwählen (32/64 Bit). Sie entpacken das Archiv unter allen gängigen Distributionen mit dem Befehl aus der ersten Zeile von Listing 1. Anschließend starten Sie die Arduino-IDE, indem Sie auf der Kommandozeile in das beim Entpacken frisch entstandene Verzeichnis wechseln und dort ./arduino eingeben (Listing 1, Zeile 3 und 4).

Listing 1

 

$ tar xf arduino-1.6.7-linux64.tar.xz
$ cd arduino-1.6.7/
$ ./arduino

TIPP

Das Archiv der Arduino-IDE wurde mit dem XZ-Verfahren komprimiert. Falls das von der verwendeten Distribution genutzte Tar dieses Verfahren noch nicht kennen sollte, müssen Sie außerdem das Paket xz-utils installieren. Unter Debian-Abkömmlingen erledigen Sie das mit dem Kommando sudo apt-get install xz-utils. Anschließend entpacken Sie die Arduino-IDE mit folgendem Kommando:

$ tar xfvJ arduino-1.6.7-linux64.tar.xz

Die Option v ("verbose") weist Tar an, die Namen der bearbeiteten Dateien auszugeben, sodass Sie den Ablauf des Entpackens verfolgen können. Der Schalter J informiert das Tool, dass das fragliche Archiv im XZ-Format vorliegt.

Nach dem Start der Entwicklungsumgebung tragen Sie unter Datei | Voreinstellungen | Zusätzliche Boardverwalter-URLs (Abbildung 2) die folgende URL ein:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Damit veranlassen Sie die Arduino-IDE, die für den ESP8266 nötigen Boardmanager in die entsprechende Liste aufzunehmen. Im nächsten Schritt starten Sie die Installation des Boardmanagers für den ESP8266. Das erledigen Sie unter dem Menüpunkt Werkzeuge | Board | Boardmanager starten. Abbildung 3 zeigt den Dialog zum Einrichten des ESP8266-Community-Boardmanagers. Nach der erfolgreichen Installation können Sie jetzt unter Werkzeuge | Board das Generic ESP Modul auswählen.

Abbildung 2: Zusätzlichen Boardmanager einfügen.
Abbildung 3: Installation des Boardmanagers.

Damit ist die Arduino-Entwicklungsumgebung jetzt in der Lage, Programme für den ESP8266 zu erstellen. Nun müssen Sie den aktuellen Benutzer noch dazu berechtigen, auf die serielle Schnittstelle zuzugreifen (Listing 2), indem Sie ihn in die Gruppe dialout aufnehmen.

Listing 2

 

$ sudo usermod -a -G dialout $USER
$ sudo reboot

Ein anschließender Neustart des Rechners muss nicht unbedingt sein, wohl aber eine Ab- und erneute Anmeldung des aktuellen Benutzers. Ein Reboot hat aber unbestritten den Vorteil, dass sich das System danach in einem hundertprozentig konsistenten Zustand befindet. Windows-Anwender haben an dieser Stelle keine Probleme, traditionell geht Microsofts Betriebssystem weniger penibel mit Berechtigungen um.

Mit dem Einrichten der IDE sind softwareseitig die letzten Vorbereitungen für den Einsatz des ESP8266 abgeschlossen. Nun geht es an den Aufbau der Hardware.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

06/2019
Home Improvement

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Verschlungene Pfade

    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.