ESP8266 WiFi-Modul für Dummies
Übersicht über das ESP8266 WiFi-Modul
Der ESP8266 ist ein wirklich nützliches, billiges WiFi-Modul zur Steuerung von Geräten über das Internet. Es kann mit einem Mikrocontroller wie dem Arduino arbeiten oder es kann so programmiert werden, dass es alleine arbeitet.
Das Internet der Dinge (IoT) wurde gerade viel billiger und einfacher gemacht!
Der ESP8266 wird mit einer werkseitig installierten Firmware geliefert, mit der Sie ihn mit Standard-AT-Befehlen steuern können. Sie können auch einfach Ihren eigenen Code erstellen und hochladen, was ihn äußerst leistungsfähig und flexibel macht.
Der ESP8266 wurde 2014 eingeführt und erfreut sich immer größerer Beliebtheit. Es gibt nur einen ESP8266-Prozessor, der sich jedoch auf vielen verschiedenen Breakout-Boards befindet. Diese unterscheiden sich alle in Bezug auf die freigelegten Pins, die Größe des Flash-Speichers usw. Diese Breakout-Boards haben sich im Laufe der Jahre rasant weiterentwickelt und es gibt viele Informationen im Internet. Dies ist sowohl ein Segen als auch ein Fluch, da einige der Ratschläge veraltet oder einfach falsch sind.
Infolgedessen habe ich 3 Tage gebraucht, bis ich etwas tun konnte! Einige Menschen haben Glück, aber für mich war es ein Kampf, etwas zum Laufen zu bringen. Manchmal dachte ich, ich hätte es gebrochen, aber mit etwas Ausdauer wurde es immer wieder lebendig!
Ich habe es endlich zum Singen und Tanzen gebracht und es stellt sich heraus, dass es einfacher ist als ich dachte!
Ich habe alle nützlichen Informationen, die ich gefunden habe, an einem Ort zusammengefasst und dachte, ich würde dies in einer Anleitung teilen. Dies wird Sie hoffentlich schnell mit allen grundlegenden Funktionen zum Laufen bringen, die Sie benötigen.
In dieser Anleitung sehen wir uns das ESP-01 Breakout Board an.
Der gleiche Ansatz sollte jedoch für die meisten (wenn nicht alle) Varianten des ESP gelten.
Schritt 1: Das ESP-01 auf den Punkt gebracht

- Es unterstützt das 802.11 b / g / n-Protokoll
- Es kann eine Verbindung zu Ihrem Router herstellen und als Client arbeiten, oder es kann selbst ein Zugangspunkt sein oder beides!
- Es ist IP-adressierbar und kann ein Webserver sein
- Die „Standard“ -Version verfügt über 2 digitale Pins, die für die Ein- oder Ausgabe verwendet werden können. ZB: zum Ansteuern von LEDs oder Relais. Diese Pins können auch für PWM verwendet werden. Bei anderen Versionen sind mehr Stifte freigelegt. Zum Beispiel das ESP-12, das eine gute Option ist, wenn Sie mehr Pins benötigen. In beiden Fällen ist die Programmierung immer noch dieselbe.
- Der Analogeingang ist auch auf dem ESP8266-Chip (ADC / TOUT) verfügbar, jedoch nicht auf dem ESP-01 verkabelt.
- Es kann mit einem Arduino kombiniert oder so programmiert werden, dass es alleine arbeitet
- Es gibt verschiedene Tools und Entwicklungsumgebungen (IDEs), um dies zu programmieren.
- Und es hat noch viel mehr….
In dieser Demo fungiert der ESP8266 als Webserver, auf dem eine Webseite gehostet wird, mit der Sie über WLAN interagieren können.
Mit dieser Demo können Sie Ihr eigenes Hausautomationsprojekt starten und es über das Internet steuern!
Schritt 2: Was Sie brauchen
Lassen Sie uns zunächst sehen, ob wir es zum Laufen bringen können.
Viele Websites empfehlen, die Firmware erneut zu flashen und verschiedene Tools zu verwenden. Das müssen Sie noch nicht tun.
Wir werden die Firmware durch unseren eigenen Code ersetzen. In einer anderen Anleitung: Die einfache Anleitung zum Flashen Ihrer ESP8266-Firmware Ich zeige Ihnen, wie Sie sie auf eine aktualisierte Werksversion zurücksetzen können. Wenn Sie den ESP8266 nur mit Ihrem eigenen Code programmieren - wie wir es in dieser Demo tun werden -, benötigen Sie keine werkseitige Firmware. Ihr Code ist die Firmware.
Wir werden die Arduino IDE als Programmierwerkzeug verwenden, aber wir brauchen kein Arduino selbst. Der ESP8266 verfügt über alle Funktionen, die wir benötigen.
Hinweis: Nach dem Hochladen Ihres eigenen Codes reagiert Ihr ESP8266 nicht mehr auf AT-Befehle. Ihr Code hat die Firmware ersetzt. Mit Ihrem Code und der ESP8266-Bibliothek in der Arduino IDE haben Sie Zugriff auf eine größere Anzahl von Befehlen. Siehe die Dokumentation hier: //www.arduino.cc/en/Reference/WiFi
Sie können die Firmware auf dem ESP8266 wiederherstellen, um bei Bedarf zu den AT-Befehlen zurückzukehren. Siehe meine andere Anleitung: Die einfache Anleitung zum Flashen Ihrer ESP8266-Firmware.
NB : Es ist ein 3, 3-V-Modul und nicht 5-V. Das ESP-01 ist robuster als ich dachte, aber Sie sollten es richtig einrichten, insbesondere wenn Sie es mit einem 5-V-USB-zu-Seriell-Programmierer oder einem Mikrocontroller verwenden, da Sie es sonst braten können!
Was du brauchen wirst:
- Ein ESP8266 natürlich (verwenden Sie die ESP-01-Variante oder passen Sie Ihre Verkabelung entsprechend an)
- Steckbrett
- 3, 3-V-USB-zu-Seriell-Programmierer wie der FTDI Basic (manchmal auch als UART: Universal Asynchronous Receiver / Transmitter bezeichnet). Einige werden mit einem Jumper geliefert, um zwischen 5 V und 3, 3 V umzuschalten.
- Breadboard-Überbrückungsdrähte
- Ein separates 3, 3-V-Netzteil. Sie benötigen einen, da der ESP8266 viel mA (manchmal> 250 mA) kauen kann. Der 3, 3-V-Ausgang des seriellen Programmiergeräts oder des Arduino reicht nicht aus. Ohne eine separate Stromversorgung kann Ihr ESP fehlerhaft sein und Sie werden Zeit damit verschwenden, Code hochzuladen.
- LED, Druckknopf, 330-Ohm-Widerstand, 10-kOhm-Widerstand, 0, 1-µF-Kondensator über dem Netzteil (Standard).
- Fügen Sie dem Schaltkreis einen Logikpegelwandler hinzu, wenn Sie einen Mikrocontroller oder einen FTDI-Programmierer mit 5 V verwenden
Wenn Sie einen ESP8266 mit integriertem USB-Anschluss haben, müssen Sie keinen dieser Probleme lösen. Der Wemos D1 Mini ist eine gute Alternative. Siehe dies: //www.wemos.cc/product/d1-mini.html
Schritt 3: Die Komponenten im Detail




ESP-01
Ich habe mein ESP-01 erhalten von: //netram.co.za/2720-wifi-serial-transceiver-module-esp8266.html
Sie können sich die verschiedenen Versionen hier ansehen: //www.esp8266.com/wiki/doku.php?id=esp8266-module-family
Steckbrett-Netzteil
Eine gute Stromversorgung scheint ein entscheidender Aspekt für den ESP8266 zu sein. Ein Steckbrett-Netzteil ist sehr nützlich, insbesondere wenn Sie mit gemischten Spannungen arbeiten. Die hier gezeigte liefert 3, 3 V und 5, 5 V und wird direkt an Ihr Steckbrett angeschlossen. Ich hätte schon vor langer Zeit eine haben sollen! Der ESP8266 kann viel mA kauen (manchmal> 300 mA). Wenn Ihr ESP neu startet oder unzuverlässig erscheint, benötigen Sie ein separates Netzteil für das ESP (behalten Sie jedoch eine gemeinsame Basis). Schließen Sie auch einen Kondensator an 3, 3 V und Masse an, um Spitzen zu minimieren und einen kleinen Stromspeicher bereitzustellen.
//netram.co.za/938-breadboard-power-supply-5v33v.html
USB-zu-Seriell-Programmierer
Besorgen Sie sich einen, der 3, 3 V unterstützt oder einen 3, 3 V / 5 V-Jumper hat. Wenn Sie nur 5 V haben, sollten Sie einen bidirektionalen Logikpegelwandler zwischen dem Programmierer und dem ESP8266 verwenden. Der FTDI Basic hat einen 3, 3V / 5V-Jumper auf der Rückseite:
//netram.co.za/2842-ftdi-basic-usb-to-ttl-programmer.html
//netram.co.za/2679-logic-level-converter-bi-directional.html
Logic Level Converter
Bidirektional 5V & 3, 3V. Dies ist nur erforderlich, wenn Sie einen seriellen 5-V-Programmierer verwenden.
Breadboard Jumper
Fügen Sie einige JST-Jumper hinzu, da diese praktisch sind, um Module mit Stiften anzuschließen und sie dann mit dem Steckbrett zu verbinden. Schließen Sie zu diesem Zweck einige männliche bis weibliche Kabel ein. Das ESP-01 ist nicht für Steckbretter geeignet, daher benötigen Sie diese.
Schritt 4: Das Breadboard-Layout

Mit Blick auf das Steckbrett ist der FTDI-Programmierer das rote Brett oben und der ESP8266-01 unten. Der FTDI-Programmierer benötigt nur 3 angeschlossene Drähte: das Erdungskabel und den RX to TX und den TX to RX am ESP. Auf der linken Seite befindet sich das Steckbrett-Netzteil (es wird normalerweise an das Steckbrett angeschlossen).
NB: Die Qualität der Stromversorgung des ESP ist einer der wichtigsten Faktoren. Es gibt einen kleinen Kondensator (0, 1 uF) zwischen 3, 3 V und Masse, um Spitzen zu minimieren. Wenn Sie Probleme bei der Programmierung Ihres ESP haben, ist dies möglicherweise Ihr Netzteil. Was hilft, ist das Hinzufügen eines weiteren größeren Kondensators über 3, 3 V und Masse. zB: 10uF.
Schritt 5: Die Pinbelegung des ESP-01

Das Bild oben von den Pinbelegungen des ESP8266 ist im gesamten Netz zu finden. Ich denke, es könnte aus Neil "Kolbans Buch über ESP8266" stammen. Dies ist eine fantastische Ressource und steht als PDF-Download unter folgender Adresse zur Verfügung: //leanpub.com/ESP8266_ESP32. Es ist 400 Seiten lang und wurde im November 2016 aktualisiert. Wenn Sie sich ernsthaft mit der Entwicklung von ESP8266 beschäftigen, ist dies das richtige Buch. Es ist kostenlos, aber spenden Sie, wenn Sie können.
Hinweise zur Verkabelung des Steckbretts:
- Die Drähte sind zur besseren Übersicht an der Vorderseite des ESP-01 angeschlossen. Befestigen Sie sie von hinten an denselben Stiften. Der ESP-01 ist nicht Steckbrett-freundlich und JST-Stecker-Stecker sind praktisch zum Anschließen.
- GPIO 0 muss zum Programmieren niedrig gehalten werden. Dies sollte entfernt werden, wenn Sie das FTDI entfernen und den ESP8266 über eine eigene Stromversorgung betreiben.
- CH_PD sollte immer hoch gehalten werden.
- Der RESET-Pin wird mit einem 10-kOhm-Widerstand hochgehalten und durch die RESET-Taste auf Masse gebracht, wodurch der Chip neu gestartet wird. Drücken Sie jedes Mal RESET, bevor Sie Code hochladen, und jedes Mal, wenn Sie GPIO 0 verbinden oder trennen. Die Reset-Taste erspart Ihnen viel Ärger.
Wenn Sie den Stromkreis einschalten, sollte die rote LED am ESP-01 aufleuchten und die blaue LED kurz blinken. Später beim Hochladen von Code zum ESP sollte die blaue LED während des Vorgangs kontinuierlich blinken. Alle anderen LED-Kombinationen deuten auf ein Problem hin.
NB : Wenn Sie den seriellen Programmierer entfernen und den ESP selbst ausführen möchten, stellen Sie sicher, dass Sie GPIO 0 vom Boden trennen und die RESET-Taste drücken, da der ESP sonst möglicherweise nicht ordnungsgemäß funktioniert.
Schritt 6: Schema

Schritt 7: Verwenden des Arduino anstelle eines seriellen Programmiergeräts
Sie können auch ein Arduino anstelle Ihres USB-zu-Seriell-Programmiergeräts verwenden.
Ein paar Dinge zu beachten:
- Auf einem 5V Arduino liegt der digitale Ausgang bei 5V und dies könnte Ihren ESP2866 braten. Verwenden Sie also entweder einen 3, 3-V-Arduino- oder einen Logikkonverter-Chip
- Der 3, 3-V-Vout auf dem Arduino reicht nicht aus, um Ihren ESP8266 anzutreiben, und Sie könnten unzuverlässige Ergebnisse erzielen. Verwenden Sie vorzugsweise eine andere 3, 3-V-Versorgung.
- Als empfohlene Vorgehensweise laden Sie immer eine leere Skizze auf Ihr Arduino hoch, bevor Sie andere Geräte anschließen, um unvorhersehbare Ergebnisse zu vermeiden. Eine leere Skizze hat leere Setup- () und Loop- () Funktionen.
- Wenn Sie ein Arduino Uno verwenden, verfügt es nur über ein Hardware-TX & RX-Paar. Um gleichzeitig mit dem ESP8266 und dem seriellen Monitor zu kommunizieren, müssen Sie auch die SoftwareSerial-Include-Datei verwenden. Früher war die Baudrate begrenzt, jetzt kann sie theoretisch eine Baudrate von bis zu 115200 unterstützen. Ein Mega 2560 verfügt über mehr Hardware-TX- und RX-Pins, sodass dies ein besserer Weg sein könnte.
- Und schließlich und vor allem : Schauen Sie sich die TX- und RX-Pins des Arduino genau an. Sie werden feststellen, dass sie Pfeile neben sich haben. Der TX-Pin hat einen Pfeil, der von ihm weg zeigt. Was dies sagt, ist TX IN! Was dies wirklich bedeutet ist, dass der TX-Pin tatsächlich der RX-Pin ist! Und ebenso ist der RX-Pin tatsächlich der TX-Pin! Wenn Sie den Arduino als seriellen Adapter mit einem anderen Gerät verwenden, müssen Sie RX mit RX und TX mit TX verbinden. Diese Nuance habe ich erst nach mehreren Stunden Schmerz entdeckt! Warum-oh-warum haben sie es so bezeichnet?
Während ich Fragen stelle: Warum der ESP-01 mit so wenigen nützlichen Pinbelegungen hergestellt wurde, verblüfft mich auch! Es ist immer noch ein guter Ausgangspunkt, aber wenn Sie etwas mehr brauchen, dann entscheiden Sie sich für das ESP-12.
Probieren Sie einen ESP-12 mit integriertem USB aus, um die Sache wirklich einfach zu machen:
//www.wemos.cc/product/d1-mini.html
Schritt 8: Programmieren mit der Arduino IDE
Es gibt verschiedene Tools zum Programmieren des ESP8266, aber die Arduino IDE (Integrated Development Environment) ist für die meisten Leute bei weitem die einfachste.
Um den ESP8266 mit der Arduino IDE zu programmieren, müssen Sie die neueste Version herunterladen, falls Sie diese noch nicht haben, und dann die ESP8266-Unterstützung installieren. Beachten Sie, dass Sie nur die Arduino-Programmierumgebung verwenden und keine Arduino-Hardware selbst benötigen.
Um die Arduino IDE herunterzuladen, gehen Sie zu: //www.arduino.cc/en/Main/Software
Starten Sie die Arduino IDE und wählen Sie den Boards Manager…
Schritt 9: Richten Sie den ESP2866 Board Manager ein

Starten Sie die Arduino IDE und wählen Sie den Boards Manager unter Tools / Board aus.
Schritt 10: Installieren Sie den ESP2866 Board Manager

Suchen Sie den esp8266, wählen Sie ihn aus und klicken Sie auf Installieren.
Schritt 11: Arduino Preference Setup

Gehen Sie zu Datei / Einstellungen
Schritt 12: Boards Manager-URLs

Geben Sie im Feld Additional Boards Manager-URLs die URL für das ESP8266-Paket ein:
//arduino.esp8266.com/stable/package_esp8266com_index.json
Schritt 13: ESP8266-Setup in IDE

Wählen Sie das „Generic ESP8266 Module“ und kehren Sie erneut zum Boards Manager zurück
Schritt 14: ESP8266-Optionen

Richten Sie Ihre ESP-01-Optionen ein. Wählen Sie den entsprechenden COM-Anschluss für Ihren PC.
Schritt 15: Mit ESP8266 sprechen

Wenn Sie noch die Original-Firmware auf Ihrem ESP8266 haben, können Sie versuchen, mit dem seriellen Monitor darüber zu sprechen.
- Öffnen Sie den Arduino Serial Monitor:
- Wählen Sie die geeignete Baudrate aus, die normalerweise 115200 beträgt, aber je nach Firmware auf dem ESP bis zu 9600 betragen kann.
- Wählen Sie auch "Sowohl NL als auch CR". Dh: Neue Zeilen- und Wagenrücklaufzeichen nach jedem "Senden".
- Geben Sie AT ein und drücken Sie die Eingabetaste. Das ESP sollte mit OK zurückkommen. Wenn nicht, drücken Sie die RESET-Taste oder ziehen Sie das USB-Kabel ab und starten Sie erneut. Stellen Sie außerdem sicher, dass Sie den richtigen COM-Anschluss ausgewählt haben. Auch wenn Sie nicht die "Standard" -Firmware auf Ihrem ESP haben, versteht es möglicherweise den AT-Befehlssatz nicht. Dies ist noch nicht unbedingt ein Problem, da Sie dies später in dieser Anleitung mit Arduino-Code überschreiben werden.
- Geben Sie AT + GMR ein. Dies sollte mit den Versionsnummern der Firmware auf Ihrem ESP zurückkommen. In einer anderen Anleitung zeige ich Ihnen, wie Sie die neueste Version der "Factory" -Firmware wiederherstellen können (wenn Sie möchten).
Schritt 16: ESP8266 Arduino Code
Laden Sie die Codedatei (ESP8266_LED_Control.zip) herunter, entpacken Sie sie und öffnen Sie sie in der Arduino IDE.
Ändern Sie die Router-Einstellung auf Ihre. dh: Ändern Sie die Felder SSID und PASSWORD.
Stellen Sie sicher, dass Ihr Steckbrett richtig eingerichtet ist, und schließen Sie Ihr USB-Kabel an den seriellen Programmierer an.
NB: Wenn Sie die GPIO-Pins in Ihrem Code adressieren, sollten Sie die GPIO-Nummer verwenden. Beispiel: 2 für GPIO 2 und nicht die physikalische PIN-Nummer, die unterschiedlich sein wird.
Anhänge
ESP8266_LED_Control.zip herunterladen
Schritt 17: Hochladen Ihres Codes auf den ESP8266


Stellen Sie sicher, dass Sie ALLE Monitore für serielle Ports am selben Port geschlossen haben, wenn Sie sie verwenden. ZB: Tools wie CoolTerm. Öffnen Sie den Arduino Serial Monitor erneut, da Sie nach dem Laden die IP-Adresse des ESP sehen müssen.
NB : Um Ihren Code hochzuladen, muss GPIO 0 geerdet sein. Sie können es dort belassen, während Sie Ihren Code im Browser ausführen. Drücken Sie vor jedem Laden die RESET-Taste. Wenn der Upload fehlschlägt, überprüfen Sie Ihre Einstellungen und versuchen Sie, das USB-Kabel zu trennen und wieder anzuschließen. Versuchen Sie es ein paar Mal mit Strg & U. Wenn alles andere fehlschlägt, starten Sie Ihren PC neu. Manchmal sind die COM-Anschlüsse etwas durcheinander.
Die blaue LED am ESP sollte blinken, wenn der Code erfolgreich hochgeladen wurde. Der Fortschritt des Uploads sollte wie in den obigen Bildern aussehen.
NB : Wenn Sie den seriellen Programmierer entfernen und den ESP selbst ausführen möchten, stellen Sie sicher, dass Sie GPIO 0 vom Boden trennen und die RESET-Taste drücken, da der ESP sonst möglicherweise nicht ordnungsgemäß funktioniert.
Wenn sich Ihre ESP8266-Uploads unregelmäßig verhalten, verbessern Sie Ihre Stromversorgung.
Schritt 18: Lassen Sie uns sehen, was es tut

Wechseln Sie zum Arduino Serial Monitor und Sie sollten die IP-Adresse des ESP sehen. Sie können sich auch bei Ihrem Router anmelden und überprüfen, was dort angeschlossen ist. Das Gerät wird in der Liste der verbundenen IP-Adressen mit einem Namen wie ESP_1A6C4A angezeigt.
Während Sie sich in Ihrem Router befinden, können Sie jederzeit die IP-Adresse des ESP reservieren und eine Portweiterleitung einrichten, damit Sie von außerhalb Ihres Netzwerks eine Verbindung zum ESP herstellen können - wie im Büro.
Sie sollten so etwas wie oben sehen. Verwenden Sie diese IP-Adresse in Ihrem Browser.
Schritt 19: Probieren wir es aus

Nachdem Sie auf einige Links geklickt haben, wird die LED hoffentlich ein- und ausgeschaltet!
Sie sehen auch, dass es PWM kann und die LED dimmt.
Der ESP8266 kann auch Interrupts an den digitalen Pins verarbeiten und verfügt über einen analogen Eingang. Der analoge Eingangspin ist jedoch beim ESP-01 nicht freigelegt.
Internet Explorer funktioniert gut, aber aus irgendeinem Grund scheint FireFox mit dem ESP sehr langsam zu sein. Dies hat möglicherweise etwas mit der Einrichtung des HTTP-Headers zu tun.
Hinweis: Nach dem Hochladen Ihres eigenen Codes reagiert Ihr ESP8266 nicht mehr auf AT-Befehle. Ihr Code hat die Firmware ersetzt. Mit Ihrem Code und der ESP8266-Bibliothek in der Arduino IDE haben Sie Zugriff auf eine größere Anzahl von Befehlen. Siehe die Dokumentation hier: //www.arduino.cc/en/Reference/WiFi.
Sie können die Firmware auf dem ESP8266 wiederherstellen, um bei Bedarf zu den AT-Befehlen zurückzukehren. Siehe meine andere Anleitung: Die einfache Anleitung zum Flashen Ihrer ESP8266-Firmware.
Schritt 20: ESP-Ressourcen
"Kolbans Buch über ESP8266", aktualisiert im November 2016, ist für ernsthafte Enthusiasten.
Es ist mehr als 470 Seiten lang und hat eine unglaubliche Menge an Details. Sie können es kostenlos bekommen, aber spenden Sie, wenn Sie können.
//leanpub.com/ESP8266_ESP32
Er hat jetzt das ESP32 getrennt und ein neues Buch veröffentlicht:
//leanpub.com/kolban-ESP32
ESP32
"Wie der ESP8266 ist der ESP32 ein WiFi-kompatibler Mikrocontroller und bietet Unterstützung für Bluetooth Low Energy (dh BLE, BT4.0, Bluetooth Smart) und fast 30 E / A-Pins."
Siehe: //www.sparkfun.com/products/13907
ESP-Sites
//www.esp8266.com/wiki/doku.php?id=esp8266-module-family
//www.esp8266.com/
//iotbytes.wordpress.com/esp8266-pinouts/
//espressif.com/de/products/hardware/esp8266ex/resources
AT-Befehle
//www.itead.cc/wiki/ESP8266_Serial_WIFI_Module#AT_Commands
//espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf
Arduino Boards Manager
//randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/
//github.com/esp8266/Arduino
Hinweise zum Flashen der Firmware:
Ich habe eine Anleitung veröffentlicht, die Ihnen zeigt, wie Sie die werkseitige Firmware auf Ihren ESP8266 flashen.
Siehe: //www.instructables.com/id/The-Simple-Guide-to-Flashing-Your-ESP8266-Firmware/