
Grundwissen und die ersten Schritte mit ESP8266
Den ESP8266 gibt es in diversen Varianten. Häufig wird er mit einer Entwicklungsumgebung ausgeliefert. Einige wenige Module sind auch noch ein wenig erhältlich. Je nachdem was man benötigt, sollte man darauf achten welche Variante man bestellt. Die hier aufgeführten Projekte sind zunächst mit eine ESP8266-01 und integriertem Controller AP + STA aufgeführt (AcessPoint + Server oder Client). Auch die Anschlussmöglichkeiten sind Unterschiedlich und so lassen sich ESP’s mit mehrern GPIO’s ordern.
Für die Programmierung des ESP8266 ist ein solcher Adapter unerlässlich. Entsprechend stehen hier fertige Bausätze oder Module bereit die sich als Entwicklungsumgebung geradezu eignen um diverse elektronische Schaltungen zu entwickeln und zu testen. Wie schon erwähnt wird hier der FT232RL verwendet. Eine gute Alternative ist der CP2012, Allerdings wird dieser meist mit 5V Spannungversorgung ausgeliefert. Also Vorsicht bei der Beschaltung.
Wird ein solcher Adapter nun per USB an den PC angschlossen steht dieser meist als COM Schnittstelle zur Verfügung. Wer in dem Windows Gerätemanager einmal danach sucht, wird schnell den zugewiesenen COM-Port in Erfahrung bringen. Ist dieser einmal bekannt muss sich noch einen Seriellen Monitor oder ein ATComanndozeilen Interpreter besorgen um mit dem ESP kommunizieren zu können. Ideal ist hier die Arduino Software für den PC. Dies ist eine Programmierumgebung mit Seriellen Monitor der sich über das Menü unter Werkzeug aufrufen lässt. Zuvor muss jedoch der Com-Port unter dem gleichen Menü ausgewählt werden. Dabei zeigt Arduino schon die zur Verfügung stehenden COM-Ports an.So braucht dieser dann nur ausgewählt werden. Nun kann der Serielle Monitor gestartet werden. Zum Schluss muss noch die Baudrate unten rechts eingestellt werden. In älteren Firmware-Versionen des ESP mussten noch 57600 Baud eingestellt werden. In neueren Versionen läuft diese schon mit 115200 Baud. Wichtig ist auch das NL als auch CR an das Zeilenende gesetzt wird wenn ein AT-Commando abgesetzt wird. Dies lässt sich im Feld daneben einstellen. Nun ist alles soweit vorbereitet das der FT232RL mit dem ESP8266 verbunden werden kann. Dazu muss die Spannungsversorgung verbunden werden und die beiden Kommunikationsport RX und TX. Dabei werden RX und TX zwischen den beiden vertauscht da sonst beide auf der identischen Leitung senden und Empfangen. Wer sich hier mit RS232 ein wenig auskennt wird das schon Kennen.
ESP 8266 im Programmiermodus und Normalbetrieb
der ESP8266 kennt zwei Grundlegende Betriebsmodi. Der erste ist der Normalbetrieb. Wurde der ESP zuvor programmiert oder ein Script hoch geladen, kann der ESP im Normalbetrieb dieses Script abarbeiteEs ist jedoc wichtig das Port_ CH_PD anVCC / 3,3V liegt. Dies ist für ihn das Signal das das Script ausgeführt werden soll. Man kann also den Start des Script auch elektrisch auslösen. Dieser muss dann aber die ganze Zeit an 3,3V+ anliegen.
Die Möglichkeitenim Betrieb sind dann vielzählig. Hier gibt es dann noch weitere Unterarten des Betriebs. Als Client oder Server. Dies wird jedoch mit Hilfe des Scriptes gesteuert.
Im Programmiermodus wird der ESP mittels passender Verdrahtung versetzt. In diesem Modus könne Scripte / Programme auf ihn hoch geladen werden. Um den ESP in den Programmiermodus zu versetzten muss der Anschluss / Port CH_PD mit VCC / 3,3V Spannung verbunden werden und GPIO_0 auf GND.. Bekommt er dann Strom wird der Programmiermodus eingleitet. Ein Neustart des ESP kann jederzeit mit RST (Reset) auf Masse ausgelöst werden.
Vorraussetzung zur Kummunikation mit em ESP8266.
Für den ESP gibt es diverse Programmierbroards und Entwicklungsplattformen wie oben schon erwähnt. Wer ein wenig Erfahrung mit Elektronmik hat, kann sich aber am besten selbst einen Adapter bauen mit dem die Programmierung und Test dann erheblich enfacher ablaufen. Ist der ESP8266 dann mit dem PC und dem Adapter verbunde, können die Einstellungen abgeruden werden. Dabei ist die Kommunikation mit dem ESP oft garnicht so einfach. Je nach Lieferant, Firmware und Einstellungen kann die Baudrate über den COM-Port zwischen 9600 und 115200 Baud liegen. Dies muss oft erst umständlich ausgeüftelt werden. Doch zunächst sollte der ESP entsprechednd verdarhtet werden. Dann kann man sich um die Kommunikationseinstellungen kümmern. Enstprechend weiter unten mehr dazu
ESP8266 Programmiere / Verbinden
Um nun den ESP Programmieren zu können müssen wir ihn in den Programmiermodus versetzten. Dazu wird der Port CH_PD des ESP mit der VCC verbunden verbunden. Sowie GPIO0 mit Masse. Um nun noch Dtaen über die serielle Schnittstelle austauschen zu können Muss TXD und RXD mit der jeweiligen Gegeseite des Adüater vom Computer oder einem anderen Gerät angeschlossen werden. Also RXD vom ESP mit TXD vom Computer und TXD vom ESP mit RXD vom Computer. Um nun den ESP beim einschalten direkt in den Programmiermodus zu versetzen muss RST ebenfalls mit GND berunden werden. Ist dies nicht der Fall geht er in den normalen Betrieb und arbeitet das Script ab.
Grafische Beschaltungplan für den Programmiermodus

Eine Übersicht der ESP’s können Sie dem Bild entnehmen, welches von der Quelle https://www.heise.de/developer/artikel/Arduino-goes-ESP8266-3240085.html stammt.
Grundsätzlich wird er ESP8266 mit 3,3V betrieben und darf nicht mit 5 V oder noch höheren Spannungen betrieben werden. Auch hier sind einige wenige Ausnahmen im Internet erhältlich. Wer den ESP8266 also programmieren möchte, sollte sich hier zunächst über die Spannungsversorgung im klaren sein und sich entsprechendes Zubehör parat haben. Bei der Programmierung über einen PC ist die Spannungsversorgung über die USB Schnittstelle oft schon zu hoch.Hier lohnt sich sich die Anschaffung spezieller RS-232 Adapter. Welche inzwischen direkt für den ESP8266-01 erhältlich sind und direkt aufgesteckt werden können

Quelle: Google Images
Ist der ESP mit dem FTD232 verbunden kann der USB-Port mit dem Rechner verbunden werden. Aufgrund der Leitsungsaufnahme von bis zu 300mA des ESP und bis zu 70mA des FTD232 sollte desie Versorgung über einen USB 2.0 Anschluss eigentlich abgedeckt, sofern ein USB Port 2.0 einzelnd verwendet wird und somit die maximale 500mA liefert. Doch Vorsicht!. Bei manchen Computern oder Hubs ist die Gesamtleistung mehrerer Ports oft auf maximal 500mA geschaltet. Wer einen USB 3.0 Anschluss hat, sollte vielleicht diesen verwenden. Norm ist hier 750mA.
Ist nun die Software Arduino mit dem Seriellen Monitor geöffnet, sollte der ESP im Monitor einige Wilde Zeichen ausgeben, gefolgt von einem ready oder ok. Wer nicht auf Anhieb eine Kommunikation hin bekommt sollte möglichst feste Steckverbdindungen verwenden. Evtl auch noch mal Arduino neu starten oder die Spannungsversorgung prüfen und nachmessen. Häufig ist aber nur die passende Baudrate auf dem COM-Port zu finden. Da der ESP je nach Hersteller evtl. eine anderre Firmware besitzt kann die Baudrate im ESP oft bei 9600 Baud anfangen. Kommt keine Kommunikation zustande sollte man Stufenweise die Baudrate hoch setzen. Mit dem Befehl AT in der Eingabezeile des seriellen Monitors sollte dann eigentlich ein ok zurück kommen. Oft muss die Software oder der ESP aber neu gestartet werden um den Befehl sauber empfangen zu können nachdme ie Baudrate angepasst wurde. Entsprechen folgen nun weitere wichtige At Befehle mit dem der ESP abgefragt oder eingestellt werden kann.
Mit dem Befehl AT+CWMODE? wird abgefragt in welchem Modus sich der ESP befindet. Der ESP kennt drei Modes:
1 = Client
2 = AP (Access Point)
3 = Client + AP
Je nach Einsatzzweck muss man des ESP in den entsprechenden Modus versetzen. Alternativ kann auch eine neue Firmware aufgespielt werden die andere Einsätze besser realisiert. Weitere Info’s dazu später.
Um den Modus zu ändern wird wieder ein AT Befehl abgesetzte:
AT+CWMODE=3
Wer seinen ESP auf diese Weise neu starten möchte kann dies mit dem Befehl:
AT+RST
Wir wissen nun also Grob wie wir mit dem ESP kommunizieren können. Wer mehr Befehle wissen will kann sich die Liste hier anschauen.
Um den ESP nun jedoch mit einem bestehenden WLAN zu verbinden sollte sich zunächst eine Liste der Verfügbaren WLAN-Netze ausgeben lassen mit:
AT+CWLAP
Wer den ESP hier noch in keinen Modus versetzt hat wird ein Error als Antwort bekommen. Also erst mit AT+CWMODE=3 ineinen Modus versetzen. Dann kann die Abfrage der Verfügugbaren Netzwerke erneut abgesetzt werden. AT+CWLAP, Aufgelistet werden evtl. mehrere Zeilen in folgender Form:
+CWLAP: (3” FRITZ!Box 7362 SL”,-90,”34:81:c4:b7:12:d6”,1,25,0)
+CWLAP: (4,”EasyBox-271921”,-94”,b4:a5:c1:41:12;19”,1,-11,0)
Wer sich nun mit einem der Netzwerke verbinden möchte sollte folgenden Befehl anwenden:
AT+CWJAP=”FRITZ!Box”,”WLAN-Schlüssel”
Klappt die Verbindung sollte kurz darauf folgende Meldung ausgegeben werden:
AT+CWPJAP=”FRITZ!Box”,”WLAN-Schlüssel”
WIFI CONNECTED
WIFI GOT IP
OK
Mit folgendem Befehl lässt sich auch die bestehende Verbindung abfragen:
AT+CWJAP?
Möchte man die aktuelle IP des ESP mit Netzwerk ermitteln kann man dies mit:
AT+CIFSR
Um die Version des ESP ab zu fragen geben sie folgendes ein:
AT+GMR
weitere Befehle lassen sich unter http://thomaspfeifer.net/esp8266_wlan_seriell_modul_at_kommandos.htm einsehen.
Eine Komplette Befehlsrefernz ist hier zu finden: https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf
Beispiel Script: https://arduino-hannover.de/2014/12/11/wifi-kochbuch-mit-esp8266/
Wer nun jedoch in Arduino direkte Sketche / Programmierunterstützung haben will, sollte noch entsprechende Zusatzmodule in der Anwendung Arduinoe IDE installieren. Gehen Sie dazu im Menü und Datei auf Voreinstellungen. Unter in der leeren Textbox mit der Beschriftung “Zusätzliche Boardverwaklter-URLs; “ geben Sie folgendes ein: http://arduino.esp8266.com/stable/package_esp8266com_index.json.
Klicken sie auf ok und gehen Anschließend im Menü Werkzeuge auf Board: “xxxxxx” und wählen oben die Funktion Boardverwalter aus. Gebens Sie als Suchbegriff ESP8266 ein. Es wird ein Zusatzpaket aufgelistet welches Sie installieren sollten. Anschließen wählen Sie unter Board:”xxxx” wieder die ESP Version welche Sie nutzen. Oder einfach Generic ESP8266 Modul, Danach sollten Sie den ESP8266 einfach programmieren können und die Scripte auf den ESP mit den Symbolen hochladen können.
Um nun ein Beispiel-Script auf den ESP zu laden öffnen Sie diese Beispiel Datei über das Menü Datei / Beispiel/ESP8266/Blink. Laden Sie es anschließen mit der hochladen Schaltfläche ind Arduino auf den ESP.
ESP vom Programmiermodus in den regulären Betrieb versetzen:
Um das hochgeladene Sketch nun auf dem ESP laufen zu lassen braucht nur den Port GPIO0 wieder trennen und den Port RESET mit kurz mit Masse zu verbinden Oder kurz die Stromzufuhr trennen und wieder zu führen. Dann startet der ESP neu. Dadurch das der Port GPIO0 nicht mehr an Masse hängt, (Zustand: Low) geht dieser in den den Sketch Betrieb und arbeitet das Sketch ab. In dem Fall des Sketch Blink wird er die integrierte LED an und wieder aus geschalten.
Achtung! Der Port CH_PD muss dabei mit VCC verbunden bleiben, sonst passiert gar nichts. Hier nochmals die entsprechende Beschaltung für den regulären Betrieb:
Zudem sind zu belegen:
|
CH_PD |
auf |
3.3V |
= |
Start / Programmiermodus |
|
GPIO0 |
auf |
GND |
= |
Programmiermodus |
|
VCC |
auf |
3.3V |
= |
Spannungsversorgung |
|
GND |
auf |
GND |
= |
Masse |
|
RXD |
auf |
RXD |
= |
Kommunikation |
|
TXD |
auf |
TXT |
= |
Kommunikation |
|
|
|
|
|
|
|
RST |
auf |
GND |
= |
Neustart |
Projekte rund um Elektronik, Server, Windows und mehr