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

12/2018
Coole Projekte

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Bytes und Beats

    In Sonic Pi können Sie mit wenigen Codezeilen Klänge manipulieren, Beats zusammenstellen und ganze Songs komponieren.

  • Klein, aber fein

  • Trick or treat

    Das traditionelle RPG-Gruselkabinett glänzt dieses Jahr mit einer innovativen Umsetzung mittels Pneumatik und Elektropneumatik sowie ST-Programmierung.

  • Unter Kontrolle

    Traditionell stellen wir alljährlich ein selbst gebautes Halloween-Gespenst vor. Die pneumatischen und elektronischen Grundlagen erklärt dieser Artikel.

  • Go Pi Go!

    Der Bausatz GoPiGo3 liefert Bauteile und Software für ein kleines Roboterauto. Zusammen mit einem RasPi als Gehirn programmieren Sie den Roboter per Mausklick.

  • Handlicher Helfer

    Während die Folien der Präsentation durchlaufen, liefert ein kleiner Dokumentenserver auf Basis des GL-AR300M-ext zusätzliche Informationen aus.

  • Wiederverwertet

    Mithilfe eines einfachen Python-Programms recyceln Sie ein ausgedientes Smartphone als drahtlos angebundenes RasPi-Display.

  • Herzenssache

    Steigt beim Krimi der Herzschlag bedrohlich an? Mit einem Pulsmesser in Eigenbau ermitteln Sie einfach und kostengünstig, ob der Herzschlag noch in verträglichen Bereichen liegt.

  • Fernbedient

    Mit der Fernbedienung den RasPi steuern. In der Theorie möglich, in der Praxis oft beschwerlich. Die Libcec liefert praktische Tools zur Fehlersuche.

  • Musikwürfel

    Mit Musikcube machen Sie Ihre eigene Sammlung fit fürs Streamen. Der terminalbasierte Audioplayer lässt sich Fernsteuern und bietet eine App für Android-Smartphones.