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

10/2018
Weltweiter Empfang

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Physiklabor

    Der Java-Dialekt Processing zielt auf interaktive Animationen ab und eignet sich auch für Programmiernovizen.

  • Abstand halten

    Der VL53L0X misst präzise Entfernungen bis zu zwei Metern. Das macht ihn zum passenden Kandidaten für RasPi-Projekte.

  • Tux-Funk

    Der SDR-Empfänger RSP2pro von SDRplay bringt Amateurfunk auf den Raspberry Pi.

  • Himbeersieb

    Die aus Österreich stammende Upribox auf Basis des Raspberry Pi schützt wirkungsvoll vor Gefahren aus dem Internet. Jetzt ist das System in der zweiten Version erschienen.

  • Unter Kontrolle

    Das programmierbare Steuermodul Controllino bietet mit seinen zahlreichen Ein- und Ausgängen vielfältige Möglichkeiten.

  • Dehnübungen

    Ein RasPi eignet sich bestens zum Steuern eines Fischertechnik-Roboters. Damit dabei kein Chaos entsteht, gilt es, die Steuerung genau zu programmieren.

  • Klangmaschine

    Der RasPi bringt genügend Performance mit, um als kleine DAW zu dienen. Mit Waveform 9 haben Sie die passende Software zur Hand.

  • Fremdgehen

    Nicht jedes Programm gibt es auch für die ARM-Architektur. Der kommerzielle Emulator Exagear Desktop fungiert als Übersetzer zwischen der ARM- und x86-Welt.

  • Ausfallsicher

    Eine selbst gebaute USV für den RasPi verschafft Ihnen die entscheidenden Sekunden, um bei unerwarteten Stromausfällen einem Datenverlust vorzubeugen.

  • Am laufenden Band

    Die Kombination aus einem Fischertechnik-Bausatz und dem Controllino-Modul bietet eine ideale Basis, um ein funktionierendes Industriemodell zu gestalten.