Der ESP8266 von Espressif und die ArduinoIDE
Vor nicht allzu langer Zeit habe ich die kleinen WLAN-Modulen für mich entdeckt.
Erstmal allgemein zu den ESP8266:
Die Module bestehen aus einem SoC mit einem Core von Tensila und einem kompletten WLAN-Transceiver für 2,4GHz.
Der Core ist ein 32Bit mit 80MHz getaktet, kann teilweise auch mit 160MHz takten.
Auf dem Chip sind rund 80kB RAM, ein Bootloader im ROM, ein 10Bit D/A-Wandler und etliche in Hardware unterstützte Peripherie, die als GPIO-Pins außen verfügbar sind.
Die von mir bisher bentzten Module sind folgende:

ESP8266-01
Der ESP8266-01 war das erste verfügbare Modul. Es hat nur wenige zugängliche I/O.
Verfügbar sind:
TX (GPIO0), RX (GPIO3) für die serielle Schnittstelle.
Die aufgespielte AI-Thinker-Software bietet die Möglichkeit, mit dem Modul zu kommunizieren, z.B. von einem AVR-µC.
GPIO0 wird benötigt, um die Firmware des ESP neu zu flashen, kann aber auch (mit Einschränkungen) als normaler I/O genutzt werden.
GPIO2 kann ebenfalls als I/O genutzt werden.
CH_PD ist der Enable-Eingang des Moduls. Bei Low-Pegel ist das Modul abgeschaltet und verbraucht nur eineig µA Strom.
Zum Betrieb muß CH_PD auf High-Pegel liegen, man kann es direkt mit den 3,3V fest verbinden, wenn man nicht die Absicht hat, das Modul abzuschalten.
Die I/O sind NICHT 5V-tolerant, auch wenn es manche Modul scheinbar überleben!
Als Pegelwandler z.B. zu einem 5V Arduino nutze ich fast immer folgende Beschaltung:
ESP an stabile 3,3V, 100µ am Modul zwischen Vcc und GND, CH_PD an 3,3V
TX vom ESP direkt zum AVR (der H-Pegel des ESP reicht dem 5V-AVR)
RX des ESP über 3,3k an 3,3V und eine Schottky-Diode mit Anode am ESP-RX und Kathode am TX des AVR.
Bei High-Pegel am AVR sperrt die Diode und der ESP sieht 3,3V-Highpegel vom PullUp.
Bei 115200 Baud stören auch die üblichen "Dupont"-Kabel nicht.
Diese Beschaltung ist auch schnell genug, um z.B. die Leitungen einer SD-Karte mit 8MHz SPI-Clock stabil zu treiben, halbwegs kurze Leitungen vorausgesetzt.
Meine Nutzung der AI-Thinker-Software hat nie über ein paar Tests mit einem Terminalprogramm und dem ESP am CP2102-USB-Adapter am PC hinausgeführt...
Die Module haben nur einen 4MBit-Flash, also 512kB Programmspeicher verfügbar.
Meine inzwischen nachbestellten aktuellen ESP8266-01 haben einen 8MBit-Flash, also 1MB Programmspeicher.
Damit sind Webserver, MQTT-Client, OTA-Update und 128kB SPIFFS gut machbar, für platzsparenden Sachen also immernoch ideal.
Leider kommen die -01 Version mit angelöteter Stiftleiste, die paßt in kein Steckbrett und kostet Platz.
Bei mir sie also wenn nötig gekürzt oder ausgelötet.

ESP8266-07
Die -07 Version hat den Vorteil, daß mehr I/O-Pins verfügbar sind.
Nachteil bei meinen alten Modulen ist, daß sie nur über einen 4MBit-Flash verfügen und damit Update über OT nur begrenzt nutzbar ist.
Der Vorteil ist die Möglichkeit, eine externe Antenne anszuschließen.
Man sollte also alte WLAN-Router vor dem Entsorgen darauf prüfen, ob die Antenne samt Buchse und Kabel nicht gut für einen ESP nutzbar sind...

ESP8266-12
Bei der -12 Version sind noch zusätzlich an der Unterkante I/Os rausgeführt, die jedoch nicht universsell nutzbar sind.
Sie gehöhren zur Schnittstelle, an der der Programmflash angeschlossen ist.
Entscheidender Vorteil des -12 ist es, daß er mit einerm 32MBit-Flash ausgeliefert wird, man hat also 4MB zur Verf&uunl;gung.
Das SDK läßt zur Zeit nur maximal 1MB asl Programmspeicher zu, man kann also die verbleibenden 3MB nur als SPIFFS nutzen.
Bei meinem Webserver liegen da dann die HTML-Dateien usw.

ESP8266-03
Inzwischen habe ich auch mal die -03 Version mitbestellt.
Verblüffend ist erstmal die geringe Größe des Moduls
Es sind weniger I/O rausgefühert als bei -07 und -12, netterweise ist aber die komplette SPI-Schnittstelle dabei.
Was die Entwickler bewegt hat, RESET nicht auf das ohnehin freie Pad zu routen, werden wohl nur diese wissen...
Oben links unter der Antenne sind 2 kleine Lötpads, das obere ist REset, das untere ist mit GPIO16 verbunden.
Eine Brücke dort sorgt also zumindest daür, daß man den Sleep-Mode nutzen kann
Ich habe es allerdings vorgezogen, den Reset-Lötpunkt (der obere) mit dem freien Pad recht zu verbinden.
Mit kleiner Lötspitze und einem Stück dünnen Lackdraht ist das recht gut machbar.
Hinweis:
Bei allen aktuell gelieferten -01/-07 und -03 ist inzwischen ein 8MBit-Flash bestückt, also 1MB.
Damit ist z.B. die Kombination OTA-Update, HTTP-Server und MQTT-Client sehr gut nutzbar.
Letzte Änderung am 17.03.2016