Für manche nur ein WLAN-Modem, für andere ein genialer Baustein. Auf jeden Fall einen Blick wert, der ESP8266. Auch, wenn man nur die AT-Firmware nutzt., also diverse AT-Befehle sendet, um beispielsweise einen HTTP-Server oder Accesspoint aufzubauen.
Das geschieht dann im Zusammenspiel mit einem Rechner, lässt sich aber recht kompakt mit zum Beispiel einem Arduino Nano aufbauen. Um sich eine eigene Firmware zu bauen, gibt es ein SDK von Espressif. Manche versuchen sich auch im Standalone-Betrieb und entwickeln dahingehend… Unsere beiden briefmarkengroßen ESPs haben auch eine aktuelle Firmware, die 8-Pin-Variante hinkte etwas hinterher.
Im Folgenden soll also gezeigt werden, wie man einen ESP8266 ohne USB-zu-seriell-Adapter anspricht, zu diesem mittels Arduino-IDE AT-Befehle sendet und später das mit einem C-Sketch „automatisch“ tut.
Den ESP gibt es in verschiedenen Bauformen, wir haben sowohl die Variante mit 8-Pin-Konnektor (esp01) und dann zwei Bausteinchen der zweiten Bauform (esp07) erworben (und darauf gewechselt), auf der alle GPIO’s auf das normale Pinraster herausgelegt sind.
Die Platine ist bei der Versorgung und dem Pegel am seriellen Eingang nicht tolerant. Deshalb braucht es dort 3.3 Volt. Da rückwärts vom Arduino aber auch 3Volt-Signale richtig erkannt werden, reicht ein Spannungsteiler in genau eine Richtung. Und das wird dann am besten über einen Schaltplan klar. Und den gibts dann neben weiteren Details auf der Projekte-Seite unserer Homepage unter: http://www.smartewelt.de/sw4/?q=weiterearduino2
Da der ESP kurzzeitig bis zu 200mA verbrauchen kann, wird das über den 3V3-Ausgang des Nano mitunter etwas knapp (beim Uno und beim Mega geht das). Wenn ihr da viel Zeit beim Experimentieren sparen wollt (auch 220µ-Kondensator, wie oft beschrieben, je nach ESP-Modell mitunter nicht ausreichend), dann versorgt die Schaltung am besten gleich mit einer externen Quelle. Bei uns ein Spannungswandler von YwRobot, welcher sowohl 5V als auch 3.3V abgeben kann (siehe Bilder).
Jetzt wird ein Seriell-zu-Seriell Skript notwendig (zumindest haben wir das zuerst für unsere ersten Versuche auf dem Nano installiert, da wir keinen seriellen Adapter zur Verfügung hatten). Jedenfalls kann man dann bequem über die Arduino-IDE eine Reihe von AT-Befehlen zum ESP übertragen und die entsprechenden Antworten debuggen.
Wie wir die Softwareseite mittels unseres eigenen Skripts genau gelöst haben, dazu aber vielleicht später in einem Codeschnipsel und außerdem mehr im zweiten ESP-Projekt (hier zu finden). Hier noch unsere AT-Befehle im Einzelnen:
AT+CWMODE=1
AT+RST (vorherige Einstellung wird erst nach Reset übernommen)
AT+CWJAP=“ssid“,“passwd“ (Daten des eigenen WLAN)
AT+CIPSTO=30
AT+CIPMUX=1 (im Serverbetrieb muss gemuxt werden)
AT+CIPSERVER=1,port
Im letzten Bild sieht man dann schon, dass sich der ESP in der Liste unserer Wifi-Geräte mit einer diversen IP wiederfindet und wir ihn als „esp01“ benannt haben.
Jetzt kann mittels „AT+CIPSEND=…“ die Website bedient werden, welche wir unter Angabe der IP des ESP und des oben ausgewählten Ports (port) im Browser erreichen. Noch ist die Seite jedoch leer…