Heute gibt es eine m.E. brandheiße Neuigkeit! – Man kann jetzt den ESP8266 WLAN Microcontroller mit der Arduino IDE programmieren. Der folgende Text fasst meine Erfahrungen auf Deutsch zusammen. Es findet sich im Prinzip alles irgendwo auch sonst im Netz.
ESP8266?
In der Bastel- und Internet of things Community gibt es schon seit einigen Monaten viele Beiträge zu einem neunen Microcontroller namens ESP8266.
Das ist ein Microcontroller der gleich ein eingebautes WLAN und einen TCP/IP Stack und UDP Support mitbringt. Entsprechende Module bekommt man bei ebay aus China für 2,60..2,80€ inkl. Porto geschickt.
Neben der sogenannten AT Firmware und der NodeMCU Firmware gibt es jetzt eine Erweiterung der Arduino IDE. Damit kann man die ESP8266 Module wie Arduinos in der Arduino IDE programmieren. Und darum soll es hier gehen.
Arduino IDE erweitern:
Auf github die Erweiterung der Arduino Entwicklungsumgebung herunterladen. Ich habe das mit der aktuellen IDE Version 1.63 gemacht.
Auf https://github.com/esp8266/arduino die arduino-esp8266-master.zip herunterladen. Das im Zip enhaltene Verzeichnis arduino-esp8266-master im Windows Dokumenten Verzeichnis unter Arduno\hardware (typischerweise C:\Users\User\Documents\Arduino\hardware) ablegen. Damit nix schief geht: Das Verzeichnis arduino-esp8266-master liegt dann in Arduino\hardware
Das war auch schon die ganze Installation.
Update 14.07.2015:
Die Installation ist mittlerweile überarbeitet und vereinfacht worden; siehe hier: https://github.com/esp8266/Arduino
Ab der Arduino IDE 1.6.4 (ich habe 1.6.5 genommen) – hier kurz auf Deutsch:
In der Arduino IDE im Menü Datei die Voreinstellungen öffnen.
Dort http://arduino.esp8266.com/stable/package_esp8266com_index.json in das Feld Additional Board Manager URLs eintragen.
Jetzt im Menü Werkzeuge -> Platine den Eintrag Boardsmanager wählen.
Hier die ESP8266 Erweiterung installieren (tyischerweise ganz unten).
ACHTUNG: Die Arduino IDE 1.6.6 läuft bisher nicht mit der ESP8266 Erweiterung. Die aktuellen Versionen laufen.
Installation prüfen:
Nach der Installation kann man dann im Menü Platine weiter unten das Board „Generic ESP8266 module“ auswählen. Es erscheinen jetzt auch die Beispiele für das ESP Board. Ich habe mit Beispiele->ESP8266WiFi->WiFiWebServer gestartet.
Eine Interface Platine bauen:
Die Interface Platine erlaubt es, die ESP8266 Module an ein FTDI Interface anzuschließen. Ein solches Interface haben die meisten Arduino Nutzer herumliegen und es ist für ein paar Euro zu bekommen. Ich habe folgenden Schaltplan entwickelt – wobei entwickelt hoch gegriffen ist.
Die Schaltung orientiert sich an vielen Vorschlägen im Netz. Als Stecker für die ESP8266 Module habe ich eine Print Pfostenbuchse (2×4) genommen und das ganze auf einer Lochplatine aufgebaut.
Wichtig ist, dass die ESP8266 Module 3.3V für die Spannungsversorgung und die Pegel nutzen. Wer 5V nimmt, muss neu bestellen! – Die die ESP8266 Module kurzfristig bis zu 200mA ziehen können, ist der 3.3V Ausgang der FTDI Chips dafür nicht geeignet. Man muss also das FTDI Interface auf 5V stellen (falls es einstellbar ist), damit man die volle Stromversorgung des USB Ports nutzen kann. Die 3.3V erzeugt dann ein LM1117 Festspannungsregler.
Weiterhin sind in der Schaltung zwei Taster für Reset und den GPIO0 eingebaut. Zieht man den GPIO0 über einen Reset auf Masse, so geht das ESP8266 Board in den Programmiermodus.
Praktischer formuliert: Reset-Taster drücken und gedrückt halten. Während dessen GPIO0 drücken und gedrückt halten. Jetzt den Reset Taster loslassen und danach den GPIO0 Taster.
Jetzt ist das Board im Programmiermodus.
Das Board programmieren:
Das geht im Prinzip genauso wie einen Arduino mit der Arduino Entwicklungsumgebung zu programmieren. Wir müssen allerdings vor jedem Programmiervorgang das ESP8266 Board in den Programmiermodus bringen (also Reset und dan GPIO0 drücken und dann erst Reset und dann GPIO0 loslassen). Danach in aller Ruhe die Pfeiltaste in der Arduino-Entwicklungsumgebung starten. Der Code sollte nach dem Übersetzen hochgeladen und gestartet werden.
Der Serielle Monitor in der Arduino IDE funktioniert auch; Baudrate auf 115200 Baud stellen.
Ach ja: Im oben genannten Beispiel im Code bitte die eigene SSID und das WLAN Passwort eintragen.
Funktioniert’s?
Im seriellen Monitor den Start des ESP8266 Moduls mit der eigenen Firmware verfolgen. In der Ausgabe wird die IP Adresse des Moduls angezeigt, wenn das Board sich erfolgreich verbinden konnte. Nehmen wir mal an es wird die IP 192.168.178.40 angezeigt. Dann in einem Webbrowser im PC folgende Seiten aufrufen:
http://192.168.178.40/gpio/0
und
http://192.168.178.40/gpio/1
Mit diesen URLs wird GPIO2 des ESP8266 an oder ausgeschaltet. Wer mag kann eine Lowpower LED mit Vorwiderstand anschließen und per Browser an und ausschalten.
Ein Webserver für 2,60€ ist schon ein Kracher 🙂
P.S.: Wenn die Kommunikation mit dem ESP8266 nicht klappt, kann das an dem Spannungsteiler liegen, der eine Billig-Variante eines 3.3V 5V Levelshifters ist. Gegebenenfalls mal mit den Widerstandswerten spielen.
Moin,
hier ist eine wie man mit einem RS232-Adapter der Steuersignale RTS und DTR unterstützt den Flash-Vorgang automatisieren kann. Über diese beiden Seuersignale kontrolliert die Upload-Software Reset und gpio-0.
Guter Hinweis. Ich würde aber mit den Pegeln aufpassen und die Schaltung so besser nicht einsetzen. In der Schaltung wird eine rote LED zur Spannungsregelung genommen. Das ist zwar im Prinzip richtig gedacht (5V-1.6V=3,4V), aber der ESP kann über 200mA ziehen. Das passt nicht – da kann ich nur abraten.
Weiterhin findet keine Pegelwandlung für die RX, TX, DTR und RTS Signale auf 3,3V statt. Es ist relativ wahrscheinlich, dass hier die LED und ggf auch der ESP auf Dauer den Weg in die ewigen Jagdgründe finden.
Wenn man die Schaltung wie oben beschrieben mit Spannungsteilern aufbaut und für DTR und RTS auch Spannungsteiler einbaut, sollte es vernünftig gehen.
Danke für Ihre Artikel.
Ich habe nach Ihre Anleitung Arduino installiert und ESP8266 angeschlossen. Hat alles funktioniert. Hier sind meine ersten Sketche http://esp8266-server.de/ Eine Relais im AP und Station Modus.
Prima, wenn es geholfen hat und viel Erfolg mit der Seite.
Hier ist eine Lösung mit nur einem einzigen USB-Kabel. Der ESP8266 wird auf den Sockel gesetzt und benötigt keine weiteren Kabel oder Pegelwandler, da alles auf der Platine untergebracht ist:
http://www.forum-raspberrypi.de/Thread-projekt-esp8266-mit-programmieradapter-sehr-einfach-programmieren-flashen
Auch eine Variante – sicherlich für Leute interessant, die weniger selbst löten wollen.
Die Schaltung scheint sehr ähnlich zu dem Vorschlag in diesem Beitrag. Nur ist dabei der FTDI basierte USB/RS232 Wandler einfach auf die Adapterplatine gelötet worden. Ich habe ein Kabel genommen, weil der FTDI Adapter dann auch noch zum proggen von Arduinos ohne onboard USB geeignet ist. Wer mag kann das auch mit dem oben stehenden Vorschlag fest verlöten und kommt effektiv auf das selbe raus.
Immer wieder wird behauptet, dass die Signalpegel auf 3,3V zu begrenzen sind. Kann den keiner mehr ein Datenblatt lesen? Daraus geht eindeutig hervor: IOs sind 5V-tolerant.
Erster Kommentar und schon auf Angriff gebürstet?
Das Datenblatt sagt jedenfalls das hier:
Die maximaler Inputspannung eines GPIO ist klar mit 3.3V angegeben. Weiterhin steht unter der Tabelle, dass eine Absicherung eingebaut ist, die einen HW Defekt verhindern soll, wenn die Spannungen zu gross werden. Schlägt der snapback zu, muss man je nach Implementierung den Chip von der Spannung trennen, damit der GPIO wieder sauber funktioniert. Das Datenblatt sagt auch nicht, dass man bei >3.3V ein definiertes Schaltverhalten hat.
Weiterhin ist zu bedenken, dass eine logische Null nicht exakt 0V entspricht. Logisch high & low kommen sich ohne Spannungteiler ggf sehr nahe (vgl. Min VOH und VIH).
Ergo: Zwischen Chip geht kaputt und Schaltung funktioniert sauber gibt’s einen Unterschied. Da es um zwei Widerstände geht, investiere ich die gerne für ein sauberes Verhalten. Im Einzelfall mag es auch ohne Spannungsteiler gehen. Das ist dann halt mehr Glückssache.
P.S.: Den LM1117 bitte keinesfalls weglassen.
gerne hätte ich hier auch eine Lösung vorgestellt. Leider komme ich mit meinem Board nicht weiter.
ESP8266 WIFI Serial Dev Development Board
http://www.ebay.de/itm/311429494316?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Mit Arduino kann ich Programme aufspielen. Blink läuft; kann auch die Blinkfrequenz ändern. Bei WifiScan kommen im Monitor Meldungen vom Suchen und dann immer nicht gefunden. Wenn ich einProgramm für einen Accesspoint lade kann ich kein entsprechendes WLAN finden.
Ich hätte auch bei allen Versuchen nur einen Strom von maximal 60 mA messen können.
In anderen Beiträgen habe ich etwas vom Flaschen des ESP-12 gelesen. Ist das zwingende Voraussetzung bevor man mit Arduino arbeitet?
Gruß
Günter
Der ESP12 kann definitiv genauso programmiert werden, wie die -01er Version. Es läuft auch der selbe Code. Der einzige Unterschied ist, dass mehr Pins herausgeführt sind und bei den 12er Board meistens die Chipvariante mit 4MB Flash verbaut ist.
Wie Du es beschreibst könnte die Ursache trivial sein. Man muss bei allen ESP Varianten den CH_PD Pin auf 3,3V ziehen, um das WLAN anzuschalten. In dem hier vorgestellten Programmierboard als auch in dem Blogbeitrag zum ESP-12 ist das auch nochmal im Schaltplan zu sehen.
Es könnte nun sein, dass Dein Breakout Board genau diese Verbindung nicht hat und Du diese selbst herstellen musst.
Viel Erfolg
Stefan
Hallo Stefan,
danke für die schnelle Antwort. Dass bei der SW für den Flash bei allen Typen des 8266 gleich sein kann, hilft mir erstmal schon sehr viel weiter. Den CH_PD-Pin habe ich geprüft, der hat 2,25V. Habe ihn auch nochmal vorsichtshalber nach Vcc gebrückt. Leider Brachte das auch keinen Erfolg. Beim Flash habe ich mit dem nodemcu-fasher-master fehlerfrei flashen können. Es kam aber keine ready-Meldung.
Bei dem esp8266_flascher kommt bei 99% ein Fehler ohne weitere Hinweise. Dann kommt aber im Monitor die ready-Meldung. AT-Befehle zeigen die Version, lassen den MODE einstellen, bei AT+CWLAP wird aber kein WLAN gefunden.
Merkwürdig ist auch, dass der Strom nie über 60 mA ansteigt.
Braucht der WLAN-Sender eigentlich SW um Strom zu ziehen?
Vielleicht habe ich ja auch das Glück, das gleich mein allererstes Modul fehlerhaft ist?
Gruß Günter
entschuldigung natürlich 3,25v
Die AT FIrmware habe ich schon seit Monaten nicht mehr benutzt. Da bin ich relativ ahnungslos. Richtig Spass macht der ESP erst, wenn man ihn mit einer eignen Firmware ausrüstet. Z.B. mit der Arduino IDE.
Der Stromverbrauch passt schon ganz grob. Der ESP kann kurzzeitig über 250mA ziehen. Das sind aber extrem kurze Peaks. Deshalb sollte man auch einen Stützkondensator verbauen. Im Mittel sind es bis zu 80mA. Hier hat das jemand recht schon nachgemessen:
http://blog.hekkers.net/2015/03/20/esp8266-current-power-usage-charts/
Wenn gar kein WLAN kommt und auch der Access Point Mode nicht klappt, dann hat vielleicht wirklich das Modul einen Hau.
Hallo Stefan,
habe jetzt ein neues Modul bei einem anderen Anbieter bestellt, das soll morgen eintreffen. Dann kann ich ja mal sehen, ob sich andere Ergebnisse zeigen.
Mit der Arduino IDE habe ich auch getestet. Habe bisher nicht so deutlich lesen können, ob dies SW alternativ zu der Firmware von esp8266_flascher ist oder ob esp8266_flascher eine Basis-SW für die Arduino-SW ist.
Die langen Übersetzungs- und Ladezeiten und die Speicherbelegung lassen eher den Schluss zu, das auch bei Arduino die Firmware gleich mitgeladen wird.
Da sehe ich dann allerdings die Möglichkeit 7 verschiedene Platinen einzustellen.
unter anderen:
Generic ESP
ESP 12
ESP 12E
In den meisten Beschreibungen wird Generic ESP angesprochen.
Bei dem Angebot zu meinem Modul finde ich aber die Bezeichnung ESP-12.
Das alles hat mich etwas verunsichert.
Gruß, Günter
Hallo Günter,
der ESP8266 ist immer der selbe. Die Boards unterscheiden sich nur im Layout / herausgeführen Pins und im verbauten SPI Flash Baustein. So kommt der ESP8266-01 mit einem 512k Flash. Alle ESP8266-12 die ich bisher in die FInger bekommen habe, hatten einen 4M Flash Baustein.
Die in der Arduino IDE einstellbaren Boards unterscheiden sich nur in den Defaults (Taktrate, Flash etc). Du kannst die Werte auch manuell setzen. Generell kannst Du aber immer mit einer Einstellung für ein zu kleines Flash arbeiten (also Generic ESP mit 512k).
Der esp Flasher ist die SW, um eine Firmware auf den ESP aufzuspielen. Wenn Du mit der Arduino IDE arbeitest, wird das Basis SDK von Espressif mit aufgespielt. Ebenso setzen NodeMCU oder auch die ATFirmware darauf auf.
Gruss Stefan
Hallo Stefan,
das bringt mich jetzt um 2 große Schritte weiter. Habe leider das neue Modul noch nicht bekommen.
Es gibt dann aber auch noch ein Problem mit der Arduino SW.
Mit dem esp8266_flascher bekomme ich die ready-Meldung; mit Arduino ist mir das noch nicht gelungen.
Habe Arduino 1.6.5 und über Voreinstellungen: „http://arduino.esp8266.com/package_esp8266com_index.json“
die AdOns für ESP installiert.
Es sind 7 Boards für ESP einstellbar und auch viele Beispiele verfügbar. Sieht für mich ok aus.
Das Hochladen funktioniert ohne Fehlermeldung. Müsste doch auch mit einem leeren Sketch dann zumindest die ready-Meldung kommen.
Beim Blink-Sketsch blinkt die LED, es wird also mit Sicherheit was hochgeladen.
Könnte dann vielleicht mit meinem Espressif etwas nicht ok sein?
Gruss Günter
Hallo Günther,
offenbar kannst Du Arduino Sketches hochladen. Prima. Du bekommt da aber keine „ready“ Anzeige. Die musst Du Dir dann schon selbst programmieren 🙂
Die AT Firmware ist dafür gebaut, per serieller Schnittstelle angesprochen zu werden. Deshalb sendet sie auch ein Ready zurück. IMHO ist diese Firmware aber ziemlich nutzlos, weil man dann mit dem ESP ohne einen weiteren Microcontroller oder PC nichts anfangen kann. Und aus eigener Erfahrung kann ich Dir sagen, dass es sehr fehleranfällig ist, die AT Kommandos und deren Feedbacks per Programmcode aus einem anderen Microcontroller zu verwalten (man programmiert sich einen Wolf mit Stringparsing).
Wenn Du mit der Arduino IDE arbeitest, hast Du das SDK von Espressif mit im Bauch. Das SDK ist aber nicht die AT Firmware. Der Vorteil ist hier, dass Du die Kontrolle über den Mikrocontroller hast und Dich nicht mit dem AT Zeug herumschlagen musst. Wenn der ESP dann mit z.B. einem Arduino interfacen soll, kannst Du dafür eine serielle Kommunikation zwischen den beiden Mikrocontrollern aufsetzen. Das habe ich z.B. bei der Markisensteuerung so gemacht.
Gruss Stefan
Hallo Stefan,
habe jetzt das neue Modul bekommen. Es funktioniert sehr schön. Habe auch schon einige Beispiele mit Arduino zum Laufen gebracht.
Nochmals vielen Dank für die Hilfe und die guten Tips
Gruß Günter
Freut mich. Danke für die Rückmeldung.
Hallo 🙂
Wo finde ich denn den Beispiel Code für die direkte GPIO ansteuerung via IP (URL)?
Oben steht ja dieser Satz, aber irgendwie fehlt da etwas…
„Ach ja: Im oben genannten Beispiel im Code bitte die eigene SSID und das WLAN Passwort eintragen.“
Ich verstehe die Frage offen gesagt nicht so ganz. Dennoch der Versuch einer Antwort: Den GPIO kann man wie auch oben steht mit folgenden URLs schalten.
http://192.168.178.40/gpio/0
http://192.168.178.40/gpio/1
(musst natürlich die IP einsetzen, die der ESP in Deinem Netzwerk bekommen hat).
Alternativ kannst Du auch auf das Beispiel hier wechseln. Da hast Du dann Knöpfe auf einer vom ESP erzeugten Website.
https://blog.thesen.eu/stabiler-http-1-1-wlan-webserver-mit-dem-esp8266-microcontroller/
Hallo,
kann jemand sagen ob die Fehler in der Version 1.6.6 behoben sind und diese für die NodeMCU funktioniert?
Ich finde nur diese zum download.
Wo könnte ich die 1.6.5 downloaden?
Vielen Dank norman!
Die Arduino IDE und NodeMCU sind zwei komplett getrennte Ansätze. Bei der Erweiterung der Arduino IDE programmierst Du den ESP8266 wie einen Arduino mit WiFi Shield. Das ist C++ Code, der wird übersetzt und auf den ESP geladen.
Bei NodeMCU wird die Arduino IDE überhaupt nicht verwendet. Die NodeMCU Firmware lädt einen Interpreter auf den ESP und Du programmierst dann in Lua. Ich bin kein Fan von dem Lua Ansatz und halte einen Interpreter auf der kleinen CPU auch für nicht so ideal. Deshalb habe ich mich damit nicht tiefergehend beschäftigt.
Falls doch relevant: Die Arduino IDE 1.6.5 kannst Du auf der arduino.cc Seite laden. Es gibt da einen Link für ältere Versionen.
Hallo,
ich hab das alles so nachgebaut (3.3V Spannungsquelle und „Pegel-Wandler“) und sogar schon eine eigene Webseite zum laufen bekommen 🙂
Leider hat mein ESP-Board heute aufgehört „Serial“ mit mir zu sprechen und ich kann es auch nicht mehr mit der Arduino Software (1.6.5) mit neuen Programmen bespielen. Die blaue LED hab ich seither auch nicht mehr blinken gesehen.
Weiß jemand woran das liegen könnte, bzw wie ich das ESP-Board wieder zum laufen bekomme?
Grüße,
Andy
Wenn sich das Board mit Reset und GPIO0 nicht mehr in den Programmiermodus befördern läßt, befürchte ich dass Du den Grund in der Hardware suchen musst. Es könnte an der 3.3V Spannungsversorgung liegen. Der ESP8266 zieht ja kurzfristig einiges an Strom. Ansonsten checke mal Deinen Pegelwandler, ob der wirklich 3.3V produziert.
Es kann natürlich auch mal sein, dass Du ein ESP Board mit schlechter Qualität erwischt hast. Mein Langläufer ESP8266 ist seit Ende April dauerhaft in einem Außengehäuse am Haus online. Geschwitzt und geforen hat er also auch schon 🙂
Gruss Stefan
Hallo,
erst einmal schönen Dank für die ausführliche Anleitung.
Ich habe nach ihrer Anleitung einen ESP8266 neu geflasht. Der ESP8266 bekommt auch in dem seriellen Monitor von Arduino nach Serverstart die IP angezeigt. Aber wenn ich im Browser zum Beispiel 192.168.2.112/gpio/1 eingebe
steht im Seriellen Monitor immer :
WIFI connected
Server started
192.168.2.112
new client
GET /gpio/1 HTTP/1.1
Client disonnected
Wissen sie warum ich keine Verbindung bekomme ?
Besten Dank schon mal im Voraus.
Sebastian
Hallo Sebastian,
ich bin nicht sicher, was „keine Verbindung“ bedeutet. In diesem einfachen Beispiel wird ein GPIO Pin umgeschaltet. Evtl. ist das Beispiel hier intuitiver:
https://blog.thesen.eu/stabiler-http-1-1-wlan-webserver-mit-dem-esp8266-microcontroller/
Viel Erfolg,
Stefan
Hi, danke für die beschreibung ich werde mal deine anleitung versuchen,
habe es jetzt mal mit einer anderen versucht und erhalte jedes mal den fehler.
error: espcomm_open failed
ist das ein indiz dafür, dass das esp sich nicht im programmier modus befindet?
Der Fehler kommt vermutlich unten in der Arduino IDE, wenn Du versuchst den Code zu übertragen. Dann ist wie Du vermutest der Esp nicht im Programmiermodus oder es sind Einstellungen falsch (Com Port, Bitrate,…).
Hammer,
Vielen Dank, danke für die beschreibung und den Schaltplan, ich hab zum glück noch ein Arduino so konnte ich dein Schaltplan bissle umbauen und nur die buttons verwenden.
Hab meinen Arduino als externe und zusätzliche stromquelle verwendet,
anschließend funktionierte es.
Vielen Dank und weiter so !!!!
echt genial
Hallo, durch Zufall kam ich auf diese Seite als ich nach ESP8266 suchte.
Ich find die IP-Steckdose „IP-Relais mit Wlan“ genial und so schön übersichtlich.
Was mir noch fehlen würde wären Eingänge oder mindestens einer damit man auch etwas auswerten kann.
Gibt es da eine Lösung? Auch eine passende App für das Handy wäre auch toll.
Ich werde mir die IP Steckdose mal nachbauen, muss nur noch ESP8266 bestellen.
Danke und weiter viel Erfolg.
Grüße.
Hallo Bogomir,
Du kannst die GPIOs des ESPs auch zum Einlesen verwenden. Das geht genauso wie beim Arduino. Wenn Du eines der größeren ESP Boards benutzt, hast Du auch einen ADC Eingang.
Wegen der App: Solange die Webinterface so einfach sind, kannst Du die html Seite als Link auf den Homescreen setzen. Als App nutze ich noch andfhem mit einem Pi der fhem ausführt (ggf mal in die Kommentare zur Markisensteuerung schauen).
Gruss Stefan
Hallo Stefan
ich habe in diesen Tagen komplett neu begonnen die „Arduoino/ESP8266“-Welt kennen
zu lernen…
Arduino uno Rev 3 / ESP8266-01 aufgebaut und verbunden
Arduino getestet : OK
in der Arduino-IDE betreffend ESP8266 ergänzt (Voreinstellungen und Boardmanager)
ESP_Webserver_HTTP11,ino heruntergeladem
SSID und Kennwort für meine Fritzbox angepaßt
für dieses Statement #include die betr. Datei heruntergeladen
beim Compileren kommt Fehlermeldung: exit Status 1 / Fehler beim Kompilieren …
ich vermute mal, dass ich die Ordnerverzeichnisse nicht richtig angeordnet habe,
bzw. die einzelnen SW-Komponenten nicht in die „richtigen“ Ordner gebracht habe.
Wie müßte denn eine „geordnete“ Ordner-Struktur aussehen ?
(was muss wo hinterlegt werden???)
Bitte um Hilfe und vorab schon mal besten Dank
Gruß
Günter (aus Lichtenfels)
Hallo Günter,
es ist sicher nicht richtig, nur eine Include Datei herunterzuladen. Damit erzeugst Du keine vollständige Entwicklungsumgebung. Du hast allerdings über die Boardmanager die Installation schon erledigt. Hast Du denn das Board auch auf esp8266 gestellt, bevor Du compiliert hast? – Das ändert die Entwicklungsumgebung passend ab, so dass die Include Dateien und später auch die Libs zum linken passend parat stehen,
Gruss Stefan
Hallo Stefan
vielen Dank für deine Antwort
Jetzt gleich noch eine andere Frage:
Verbindung ARDUINO UNO ESP8266 betreffend TX und RX
bei meinen Recherchen bin ich in vielen Beiträgen wiederholt auf 2 Varianten gestoßen
Variante 1
Arduino – RX verbinden mit ESP8266 – RX / Arduino-TX mit ESP8266-TX
Variante 2
Arduino – RX verbinden mit ESP8266 – TX / Arduino-TX mit ESP8266-RX
Was ist nun richtig ???
In manchen Beispielen wird auch darauf hingewiesen, dass der auf dem
Arduino-Board befindliche AVR-µC entfernt werden soll ( muss ? ), wenn man
über das Board den ESP8266 programmieren möchte.
Ist das korrekt ?
Gruß
Günter (aus Lichtenfels)
Hallo Günter,
die Verbindung der beiden Boards kommt darauf an, was Du machen willst. Wenn Arduino und ESP miteinander sprechen sollen, dann TX<->RX und umgekehrt. Allerdings unbedingt auf die unterschiedlichen Level achten. Der ESP läuft mit 3.3V; der Arduino normalerweise mit 5V.
Du willst offenbar programmieren. Ich entnehme dem Text, dass Du ein Arduino Board zum Programmieren des ESP zweckentfremden willst. Ich habe das noch nicht gemacht. Von der Theorie her:
– Arduino Microcontroller entfernen; sonst reagieren ja beider Microcontroller auf den seriellen Input
– Arduino Platine mit 3.3V betreiben
– TX/TX und RX/RX verbinden
– die oben angegebene Reset und GPIO Schaltung anbauen, sonst geht der ESP nicht in den Programmiermodus.
Klingt mir alles eher komplex. Warum baust Du nicht einfach die oben beschriebene Programmierplatine?
Gruss Stefan
Hallo Stefan
ich habe deinen Rat befolgt und das esp8266-Modul anhand deiner Schaltung augebaut.
Dann habe ich das unten stehende Programm „geladen“..
void setup() {
pinMode(BUILTIN_LED, OUTPUT);
}
void loop() {
digitalWrite(BUILTIN_LED, LOW);
delay(1000);
digitalWrite(BUILTIN_LED, HIGH);
delay(5000);
}
.. und die blaue LED blinkt !!!!
Also scheint es soweit in Ordnung zu sein.
Mutig (!!!) habe ich mir dann das Programm
>> HTTP 1.1 Webserver for ESP8266
heruntergeladen, (SSID und Kennwort für meine Fritzbox angepaßt), compiliert und in das ESP8266-Modul geladen (Fritz-Box fungiert bei mir als WLAN-Router)
Hätte jetzt erwartet, dass im Serial Monitor entsprechende Verbindungs-Informationen
auftauchen;
aber leider werden nur Punkte, Sonderzeichen (je nach verwendeter Baud-Rate) gezeigt
und keine Informationen wie IP_Nr. o.ä.
Anscheinende fehlen mir da noch ein paar Handgriffe bzw. Einstellungen (aber welche ?)
Kannst du mir nochmals weiterhelfen ?
sonntäglichen Gruß
Günter
Prima – dann kannst Du schon mal erfolgreich Programme compilieren und auf den ESP übertragen.
Wenn im seriellen Monitor nur ….. Punkte kommen, dann versucht er das WLAN zu verbinden, kommt aber nicht rein. Schau mal genau nach Tippfehlern in der SSID oder im Passwort.
Hallo Stefan
vielen Dank für deine schnelle Antwort
SSID oder Passwort nochmals kontrolliert — alles OK
mit der Einstellung > Debug Level: alle < (im Menü Werkzeuge)
bekomme ich jetzt laufend folgende Meldungen
…….wifi evt: 1
STA disconnect: 2
……….wifi evt: 1
STA disconnect: 2
……….wifi evt: 1
STA disconnect: 2
Was ist zu tun ?
Gruß
Günter
Hallo Stefan
Problem gelöst / Entwarnung
ich hatte als password bisher mein Benutzerpassword eingetragen
das war ein Missverständnis meinerseits …
denn jetzt habe ich den sog. WLAN-Netzwerkschlüssel (WPA2) – eine 20-stellige Zahl
eingetragen…
… und kaum macht man alles richtig .. schon funktioniert es auch — also alles ok
bis (bestimmt) zum nächsten Mal
Gruß und vielen Dank für deine Hilfe
Günter
🙂
Gibt es denn irgendeine Möglichkeit, den verbauten EPS8266-Typ zu äußerlich zu erkennen (1/3/11/12E/F) . Ich habe bisher keinen gefunden. Aber man sollte doch einen entspr. Typenvermerk des Herstellers erwarten ?!
Hi Wolfman,
Ich konnte bei meinen Esp-12 Boards auf der Unterseite die Variante finden (F, Q etc). Leider ist diese Beschriftung nach dem Auflöten auf ein Adapterboard nicht mehr sichtbar.
Die Boardvarianten wie 1,12 usw unterscheiden sich optisch stark. Hier gibt es eine Übersicht:
http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family
Gruss Stefan
Hallo Stefan,
gibt es neue Information zu der nutzbaren Programmversion? 2015 wurde immer Version 1.6.5 empfohlen.
Bei der Installation unter Linux Mint 17.3 kann der Controler für das ESP wegen eines CRC Fehlers nicht installiert werden. Ich kann jetzt nicht sagen, ob das ein Problem unter Linux ist oder ob bestimmte Versionen von Arduino und ESP Controler nicht harmonieren. Hast du da Erfahrungen oder kannst eine Empfehlung geben?
Danke!
Gruß,
Jens
Hallo Jens,
man kann mittlerweile auch die neueren IDEs verwenden. Ich habe die 1.6.9 laufen. Mit Linux habe ich die Arduino IDE noch nicht betrieben. Scheint laut github Threads ein Paketproblem bei Linux zu sein.
Gruss Stefan
Hi Stefan,
Als ESP8266 Neuling habe ich heute die üblich schmerzhaften Erfahrungen mit dem Board gemacht,…
Ich habe eine Villa in Thailand die vermietet wird und möchte einige Daten von dort damit hier abrufen können.
Angefangen von gleichnamigen ESP8266 libraries, die dann mit den Beispielen nicht kompilierten über dann mehrfach vorhandene über ein Abstellen der USB Ports am Laptop bis Neustart, über den Ausfall des WLAN (mein WLAN wurde trotz mehrfachen Neustart des Routers nicht mehr gefunden), über eine massive Instabilität des ESP der sich bei jedem booten /Reset irgendwie anders verhalten hat, Programmierung über die SDK mal beendet hat, mal nicht,.. war so ziemlich alles dabei..Mein Höhepunkt war ein „connected“ und eine IP die ich dann nicht pingen oder im Browser ansprechen konnte…. Meine Geduld wurde heute ziemlich strapaziert. .. Dann habe ich deine Treads gefunden. Deine Besipiele kompillieren fehlerfrei (am Board habe ich sie noch nicht getestet, aber du hast mir wieder einen Ansatz gegeben. Ich habe keine konkrete Frage an dich. Ich wollte mich einfach bedanken dass du dir die Mühe gemacht hast das alles zu posten und ich hebe gesehen wie geduldig und konstruktiv du auf Beginnerfragen antwortest, ohne die üblichen „schon mal die Suchfunktion verwendet“ Kommentare…. Du scheinst ein echt klasser Kerl zu sein…!!! EIn herzliches Danke dafür im Namen aller die sich gerade durch die Basics kämpfen…
VG Peter
Freut mich, wenn Dir die Infos geholfen haben.
Gruss Stefan