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

02/2018
Digital Signage

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial des Raspberry Pi. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Ferngebootet

    Das Booten über das Netzwerk beherrscht auch der RasPi 3 – und bietet damit sehr viel mehr Flexibilität, als Sie mit SD-Cards erzielen können.

  • Bleibende Werte

    Ein EEPROM dient dazu, Daten auch nach Abschalten der Energiezufuhr zu speichern, etwa als Kanalspeicher in Autoradios. Wir zeigen, wie Sie einen solchen Speicher beschreiben und wieder auslesen.

  • Auf Wolke 1

    Mit einem schnellen Netzwerkanschluss und einer SATA-Schnittstelle dient sich der Odroid HC1 als NAS-Alternative an – allerdings nicht für jedermann.

  • Wohnungsfunker

    Der kompakte Router GL.iNet dockt problemlos am Raspberry Pi an und erweitert diesen um einen Access Point samt Server-Funktion.

  • Satter Sound

  • Wer klopfet an?

    Wechselsprechanlagen mit Bild- und Tonübertragung gibt es zwar von der Stange, allerdings zu gesalzenen Preisen. Günstiger und obendrein flexibler ist ein Eigenbau mit Pi Zero und RasPi 3.

  • Wiedergeburt

    Mit dem Keyrah-Tastaturadapter und einem Raspberry Pi machen Sie aus einem defekten C64 eine optimale Emulator-Station, bei der Sie die originale Tastatur und die Joystick-Ports nutzen.

  • Kleine Nachtmusik

    Waveform8 beseitigt einige Ecken und Kanten des Vorgängers Tracktion – und macht die DAW endgültig fit für den Einsatz auf dem Raspberry Pi.

  • Recycling

    Mit einer Dockingstation lassen sich ausgemusterte IDE/SATA-Festplatten im 2,5- und 3,5-Zoll-Format am Raspberry Pi betreiben. Mit dem Samba-Server gliedern Sie den Mini-Rechner dann als Datenspeicher in Ihr lokales Netzwerk ein.