ich möchte bei meinem nächsten Projekt Daten über WLAN an einen externen Server (Webservice) schicken. Dazu habe ich für meinen Arduino Uno Rev3 ein D1 ESP8266 Mini WLAN (Wemos) Modul bestellt. Zu dem Modul habe ich nun eine Verständnisfrage. In allen Beispielen die ich so finden konnte, wird das Modul direkt über die IDE programmiert. Wenn ich das Modul mit dem Arduino Uno verkabelt habe, wo programmiere ich dann meine eigentliche Logik der WLAN-Verbindung und meine eigentliche Programmlogik? Muss ich das zwingend auf dem ESP8266 machen, oder kann ich es auch einfach verkabeln und dann den Arduino Uno programmieren? Bin etwas verwirrt
Wenn man unbedingt den Arduino mit dabei haben möchte dann gibt es folgende Möglichkeiten:
Über die sogenannte "AT-Firmware" des ESP8266 die Daten zum ESP8266 übertragen.
Nachteil: sehr unflexibel und umständlich.
Den ESP8266 doch mit der Arduino-IDE programmieren aber nur um über die serielle Schnittstelle die Daten an den ESP8266 zu übertragen.
Nachteil: zusätzlicher Programmieraufwand für diese Kommunikation über die serielle Schnittstelle.
Und daraus ergibt sich:
Den ESP8266 als Arduino-Ersatz betrachten. Beim Programmieren des ESP8266 läuft das genau gleich ab wie wenn du einen Arduino programmierst. Die Unterschiede
es gibt zusätzlich WLAN-Befehle.
der ESP8266 arbeitet mit 3,3V statt 5V
Alle Funktionen die das Projekt hat direkt auf dem ESP8266 programmieren.
Der Speicherplatz reicht dafür locker aus. Der ESP8266 hat mehr flash und mehr RAM und eine höhere Taktfrequenz.
Gründe die jetzt doch eventuell für den Arduino sprechen könnten:
Es werden viele AD-Wandler-Eingänge benötigt. Der ESP8266 hat nur einen.
Und man möchte die Arduino-Schaltung unbedingt weiter nutzen.
Lösung mit ESP8266: einen I2C-AD-Wandler-Chip dazunehmen wie zum Beispiel ADS1115
Ein selbtgeschriebenes Programm das auf den ESP8266 geflasht wird um die WLAN-Verbindung aufzubauen und dann Daten zu senden ist weniger Aufwand als Klimmzüge mit der "AT-Firmware" zu veranstalten. Und auch die Daten per serieller Schnittstelle vom Arduino auf den ESP8266 zu übertragen ist im Vergleich zur "AT-Firmware" vergleichweise einfach.