Einführung ESP8266 WIFI-Modul

esp8266-01Der ESP8266 wurde für mobile Anwendungen und das Internet der Dinge mit dem Ziel entwickelt, so wenig Energie wie möglich zu verbrauchen und das bei kleinstmöglichen Abmessungen.

Dieses Modul ist winzig klein und extrem billig. Für den esp8266-01 habe ich gerade einmal umgerechnet 1,50 Euro bei aliexpress gezahlt.

Da der esp8266 über einen eigenen Microcontroller, Flash-Speicher und je nach Model über eine bestimmte Anzahl an IO-Ports verfügt kann man so sogar Anwendungen realisieren ohne den Arduino überhaupt noch nutzen zu müssen. Andererseits ist es aber auch möglich das Modul zu nutzen um einem Arduino die Möglichkeit zu verleihen per WLAN auf ein Netzwerk zugreifen zu können.

Den esp8266 gibt es in verschiedenen Versionen, die sich größtenteils in der Anzahl der I/O Pins und der Größe des Flash-Speichers unterscheiden. An einigen der Module kann man neben der internen zudem auch eine externe Antenne anschließen.

Ich habe mich zum experimentieren erst einmal für das kleinste der Module, nämlich für den ESP-01 entschieden.
Dieses Modul verfügt über gerade einmal zwei GPIO Ports, einen 2×4 poligen Pinheader, eine rote Power-LED und eine blaue UART-Transmit-LED.
Trotz dieser Beschränkungen reicht der esp8266-01, der gerade einmal die Größe einer zwei Euro Münze hat, um einen Sensor anzuschließen und so die Sensordaten per WLAN an einen Server zu senden.

 

ESP8266 – Pinbelegung

esp8266-01 PinHeader

 

ESP8266 – Programmiermodus

esp01 Programmiermodus Breadboard

Die Programmierung des esp8266 gestaltet sich relativ einfach wenn man ein paar grundlegende Dinge beachtet.

Ich programmiere den esp8266 am liebsten mit einem FTDI Kabel. Diese gibt es in einer 5V oder einer 3,3V Version. Wenn man wie ich nur die 5V Version besitzt, muss man unbedingt darauf achten, dass der esp8266 nur mit 3,3V betrieben werden darf. Also entweder die Spannung auf 3,3V mit einem Spannungsregler herunterregeln, einen Spannungsteiler aus zwei Widerständen bauen oder ein externes Netzteil verwenden.

Dann aber auch darauf achten das man VCC des FTDI nicht mit dem esp8266 verbinden darf.
Wenn man ein FTDI Kabel mit 3,3V Ausgang besitzt, kann man direkt VCC des FTDI mit dem VCC Pin des esp8266 verbinden.

Haben Sie die Schaltung wie auf dem oberen Screenshot zu sehen aufgebaut, können Sie den esp8266 ganz leicht in den Programmiermodus versetzen indem Sie den „Prog – Button“ drücken, diesen gedrückt halten, den „Reset-Button“ kurz betätigen und anschließend den „Prog-Button“ loslassen. Die blaue LED am esp8266 sollte kurz aufleuchten. Der Widerstand am Reset-Button ist übrigens ein 10kOhm Widerstand. Ich werde mir so ein eigenes esp8266 Programmierboard auf Lochrasterplatine zusammenlöten wo ich nur den esp8266 und das FTDI Kabel anstecke.

Übrigens würde es auch reichen den GPIO0 Pin mit Ground zu verbinden um den esp8266 in den Programmiermodus zu versetzen, allerdings finde ich es so einfach intuitiver und ich weiß auch nach ein paar Monaten noch was ich machen muss um das Modul zu programmieren. Achten Sie in dem Fall aber auch darauf dass Sie die Verbindung von GPIO0 zu Ground entfernen um den esp8266 aus dem Programmiermodus wieder in den normalen Betriebsmodus zu bringen.

 

Vorbereiten der Arduino IDE zum übertragen von Sketchen auf den esp8266

Ich programmiere den esp8266 direkt über die Arduino IDE. Damit dies gelingt muss man zuvor die esp8266 library installieren.

Ich gehe mal davon aus, dass Sie bereits die aktuelle Arduino IDE > 1.5 nutzen. Gehen Sie im Hauptmenü unter „Datei->Voreinstellungen->Zusätzliche Boardverwalter-Urls:“ und geben Sie folgende Zeile ein.

Anschließend im Menü unter „Werkzeuge->Board->Boardverwaltung“ zum Eintrag „esp8266“ scrollen, den Eintrag auswählen und anschließend auf den „Installieren-Button“ klicken.

Wählen Sie im Menü „Werkzeuge->Board“ Ihr passendes esp8266 Modul aus.
Da ich den esp8266-01 verwende, wähle ich „Generic esp8266 Module“. Wählen Sie anschließend den Port über den Sie das esp8266 Modul über das FTDI Kabel mit Ihrem Rechner verbunden haben.

Arduino esp8266 Bordauswahl

 

Ein erstes Sketch auf den esp8266 laden

esp8266 - LED - Breadboard

Schließen Sie zum testen eine LED an GPIO2 an und rufen Sie im Menü „Beispiele->0.1 Basics“ das Blink-Sketch auf. Ersetzen Sie im Sketch alle Vorkommen von Pin13 zu Pin2.

Ganz wichtig!
Wie oben mehrmals erwähnt müssen Sie, um Ihr Sketch auf das esp8266 Modul zu übertragen, nun erst den „Prog-Button“ drücken, diesen gedrückt halten, den „Reset-Button“ kurz drücken und anschließend den „Prog-Button“ loslassen. Erst dann befindet sich der esp8266 im Upload Modus. Wenn Sie diesen Schritt nicht durchführen erhalten Sie folgende Fehlermeldung wenn Sie versuchen das Sketch auf dem ESP8266 Modul zu flashen.

warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed

Den Status des Sketch Uploads erkennen Sie unten im Log Fenster der Arduino IDE.
Wenn das flashen beendet ist, sollte die an GPIO2 angeschlossene LED blinken.

Arduino esp8266 Uploadstatus

Im nächsten Beitrag werde ich zeigen wie man Daten eines DHT22 Sensors mit dem esp8266 Modul an einen Server sendet.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

15 Kommentare zu “Einführung ESP8266 WIFI-Modul

    • Danke Dir.
      Wollte eigentlich noch was zum flashen neuer Firmware und die ganzen Unterschiede zwischen diesen schreiben aber das wäre zu viel geworden.
      Bin schon am nächstne Artikel. Wenn man schon mal etwas Zeit hat. ;-)

  1. Kommt wie gerufen :)
    Bei mir zickt der Esp8266 aktuell ein bisschen, werde es gleich am nächsten WE testen.

    Danke dafür!

    Planst du auch eine Kombination des Esp mit einem Arduino?
    Wäre sehr spannend…

    Lg

    • In Kombination mit dem Arduino werde ich mir mal vormerken. Hatte ich eigentlich nicht vor da der esp8266 ja quasi als Arduino Ersatz mit WLAN Funktion dient.

    • Stimmt, interessant wäre aber die Kommunikation über die Serielle Schnittstelle – der ESP8266 ist ja für viele Einsätze einfach zu „klein“.

      Ein Arduino für 3€ mit WLAN auszustatten ist schon ziemlich cool finde ich ;)

    • Ja dann werde ich mal schauen was ich für Dich tun kann. Übrigens, gibt es von dem esp8266 auch Versionen die wesentlich mehr Schnittstellen und Speicher wie der Arduino haben.

    • Ich bekomme immer die Fehlermeldung wenn ich versuche den Sketch auf den ESP zu übertragen. Habe mir eine kleine Platine mit exakt deiner Schaltung gebaut.
      Betreibe des ESP über den Nano am RX/TX und über den 3V3 Pin.
      Stecke ich das Board ein, leuchtet keine LED am ESP, betätige ich dann die Taster wie von dir beschrieben, geht der ESP an (rote LED leuchtet) und die blaue blinkt kurz.
      Die Fehlermeldung erhalte ich trotzdem.

      Eine Idee woran das liegt?

    • Also wenn die rote LED beim einstecken am esp8266 nicht leuchtet ist schon mal was nicht in Ordnung.
      Ich würde als erstes mal eine extrene 3V Stromversorgung nutzen da der Arduino zu wenig Leistung hat.
      Wenn das nicht reicht tausche mal RX und TX. Aber ich denke es liegt bei Dir an der zu geringen Leistung.

    • Perfekt, daran lag es. Danke!
      Der Arduino liefert am 3.3V Pin tatsächlich zu wenig Strom.
      Habe schnell die 5V Spannung vom Arduino mit einem LM1117 auf 3.3V reduziert und es läuft einwandfrei.

      Danke!

  2. Hallo Einrichtungen,
    Ich sage nur TOP!!!! Danke für Deine sehr gute Einführung mit dem ESP8266-01.
    Gruß Tommi

Kommentar verfassen