- Was ist ESP8266?
- Grundlagen der WiFi-Theorie:
- Programmierarten mit ESP8266:
- Hardware zum Programmieren des ESP8266-Moduls:
- Erforderliche Materialien:
- Schaltungserklärung:
- Bauvorstand zum Programm ESP8266:
Das Internet der Dinge und die Heimautomation waren in den letzten Tagen ein sehr gehyptes Thema. Es klingt wirklich cool, etwas Eigenes zu bauen, das mit dem World Wide Web kommunizieren und von überall auf der Welt aufgerufen werden kann, nicht wahr?
Aber warte!!! Es klingt auch kompliziert ???….
Ich dachte, es würde immense Zeit und Geschicklichkeit erfordern, Dinge zu bauen, die mit dem Internet interagieren können. NEIN, ich habe mich völlig geirrt, dank dieses fantastischen Moduls namens ESP8266 von Espressif Systems. Mit diesem Modul können Sie jetzt ganz einfach Ihre Türen für IoT-Projekte öffnen. Dieses kostengünstige, kleine Modul kann Wunder wirken und ist wirklich einfach und benutzerfreundlich, vorausgesetzt, wir befolgen die richtigen Schritte.
Dieses Tutorial soll Ihnen dieses ESP8266-01-Modul vorstellen und Ihnen den Einstieg erleichtern. Vielleicht haben Sie Ihr Modul bereits mitgebracht und sind beim Versuch, es zu verwenden, hängen geblieben. Dann sind Sie nicht allein, keine Sorge, viele Leute finden es sehr schwierig, mit dem Modul zu beginnen, da es für dieses Modul keine richtige Anleitung oder Dokumentation gibt. Dies ist der Grund für dieses Tutorial. Befolgen Sie die Anweisungen hier und Sie sollten in der Lage sein, Ihr ESP8266-01-Modul in kürzester Zeit zum Laufen zu bringen. Hier verwenden wir das serielle FTDI USB-zu-TTL-Adaptermodul, um den ESP8266 zu programmieren. Überprüfen Sie das detaillierte Video am Ende des Tutorials.
Bevor wir uns mit dem Thema befassen, werden einige Grundlagen zum ESP8266-01-Modul behandelt.
Was ist ESP8266?
Die meisten Leute nennen ESP8266 als WIFI-Modul, aber es ist tatsächlich ein Mikrocontroller. ESP8266 ist der Name des Mikrocontrollers, der von Espressif Systems, einem Unternehmen mit Sitz in Shanghai, entwickelt wurde. Dieser Mikrocontroller kann WIFI-bezogene Aktivitäten ausführen und wird daher häufig als WIFI-Modul verwendet.
Es gibt viele Arten von ESP8266-Modulen, von ESP8266-01 bis ESP8266-12. Das Tutorial, das wir im Tutorial verwenden, ist das ESP8266-01, weil es das billigste und leicht verfügbare ist. Alle ESP-Module haben jedoch nur einen ESP-Prozessortyp. Was sich unterscheidet, ist nur der Typ des verwendeten Breakout-Barden. Das Breakout-Board von ESP8266-01 hat nur 2 GPIO-Pins, während es in anderen Boards höher ist.
Die vollständige Spezifikation des Moduls ist in der folgenden Tabelle angegeben
Stromspannung |
3,3V |
Derzeitiger Verbrauch |
10uA-170mA |
Maximaler Stromverbrauch beim Blinken |
800mA |
Flash-Speicher |
16 MB (512 KB normal) |
Prozessor |
Tensilica L106 32 Bit |
Prozessorgeschwindigkeit |
80-160 MHz |
RAM |
32K + 80K |
GPIO |
17 (aber die meisten sind gemultiplext) |
Analog-Digital-Wandler |
1 (10 Bit) |
Maximale TCP-Verbindungen |
5 |
Okay, einige Dinge, die Sie an der Spezifikation überrascht haben könnten, sind: JA, das ESP8266-Modul wird mit einem ADC-Wandler geliefert und verbraucht beim Flashen Ihres Geräts einen sehr hohen Strom von 0,8 A.
Überprüfen Sie auch unsere verschiedenen ESP8266-basierten interessanten IoT-Projekte.
Grundlagen der WiFi-Theorie:
TCP (Transfer Control Protocol), IP (Internet Protocol), UDP (User Datagram Protocol), AP (Access Point), Station (Sta), SSID (Service Set Identifier), API (Application Programming Interface), Webserver…..
Sind alle oben genannten Begriffe für Sie sinnvoll?
Falls ja. Dann, BINGO, können Sie diesen Teil überspringen und zum nächsten Abschnitt übergehen.
Wenn nein. Dann müssen Sie einer der vielen Elektrotechniker sein, die gerade die meisten dieser Begriffe durchgesehen haben, so wie ich es getan habe, als ich zum ersten Mal in all diese Dinge eingeführt wurde. Lassen Sie uns also alle diese Begriffe schnell durchgehen, denn nur dann könnten wir in die Welt von IOT eintreten.
Transfer Control Protocol (TCP):
Die meisten von uns würden wissen, was dies bedeutet. Ja, dies sind die Regeln, nach denen das Internet funktioniert. Da ESP8266 die Möglichkeit hat, WIFI-Verbindungen einzurichten. Auf hohem Niveau ist Wi-Fi die Möglichkeit, über eine drahtlose Verbindung an den TCP / IP-Verbindungen teilzunehmen. Sie können Ihr ESP so einstellen, dass es mit dem TCP / IP-Protokoll oder dem UDP-Protokoll arbeitet.
UDP (User Datagram Protocol):
UDP ist auch eine andere Art von Internetprotokoll. Diese Art der Kommunikation ist schneller als TCP, jedoch weniger genau. Der Grund dafür ist, dass TCP während seiner Kommunikation eine Bestätigung verwendet, UDP jedoch nicht. TCP wird hauptsächlich in Netzwerken verwendet, in denen eine hohe Zuverlässigkeit erforderlich ist. UDP wird an Orten eingesetzt, an denen Geschwindigkeit Vorrang vor Zuverlässigkeit hat. Beispielsweise wird UDP bei Videokonferenzen verwendet, da selbst wenn einige Pixel nicht übertragen werden, die Videoqualität nicht so stark beeinträchtigt wird, die Geschwindigkeit jedoch sehr wichtig ist.
Die meisten ESP8266-Projekte und -Codes arbeiten mit TCP / IP. UDP wird am wenigsten gestört.
Zugangspunkt (AP) und Station (STA):
Sobald Sie mit dem ESP-Modul arbeiten, werden Sie häufig auf diese beiden Begriffe stoßen. Angenommen, Sie und Ihr Freund möchten auf Ihren Smartphones im Internet surfen. Da er jedoch keine aktive Internetverbindung hat, entscheiden Sie sich, Ihren Hotspot einzuschalten, und Ihr Freund stellt eine Verbindung dazu her. Hier ist Ihr Telefon, das die Internetverbindung herstellt, der Access Point (AP), und das Telefon Ihres Freundes, das das Internet verwendet, wird als Station (STA) bezeichnet.
Das ESP8266-Modul kann in drei Modi verwendet werden: AP-Modus, STA-Modus oder sowohl im STA- als auch im AP-Modus (kombiniert).
Service Set Identifier (SSID):
Dies ist ein ziemlich einfacher Begriff. Fast alle von uns haben WIFI verwendet. Der Name des Wi-Fi-Netzwerks wird als SSID bezeichnet. Wenn eine Station mehrere Zugangspunkte hat, mit denen eine Verbindung hergestellt werden kann, sollte die Station wissen, mit welchem Zugangspunkt sie verbunden werden soll. Daher erhält jeder Zugangspunkt (Access Point, AP) eine Identität, die als SSID bezeichnet wird.
Anwendungsprogrammierschnittstelle (API):
Einfach ausgedrückt ist eine API ein Messenger, der Ihre Anforderungen aufnimmt, verarbeitet und Ihrem System das gewünschte Ergebnis zurückgibt. Die meisten Aktivitäten im Internet verwenden APIs, z. B. wenn Sie einen Flug buchen, einen Online-Kauf tätigen usw. Jede Website verknüpft Sie mit einer API, in der ein Teil der Arbeit wie Anmelden, Bezahlen usw. für Sie erledigt wird Dort.
ESP8266 verwendet API, um mit der Welt des Internets zu kommunizieren. Zum Beispiel, wenn es die Zeit, das Klima oder was auch immer wissen möchte, das es in Form einer API für die entsprechende Website anfordern soll. Diese Website erhält die Anfrage und gibt das gewünschte Ergebnis an unser ESP-Modul zurück.
Webserver:
Ein Webserver ist dafür verantwortlich, den Inhalt einer Website anzuzeigen. Alle Inhalte dieser bestimmten Website werden auf ihren Webserver geladen. Es gibt dedizierte Computer, deren Aufgabe es ist, nur als Webserver zu fungieren. Wir können unseren ESP8266 auch so programmieren, dass er als Webserver fungiert und von überall auf der Welt eine Verbindung zu ihm herstellt.
Okay, das ist genug für uns, um loszulegen. Nun lassen Sie uns unsere Hände auf die Hardware erhalten.
Programmierarten mit ESP8266:
Es gibt zwei Möglichkeiten, mit Ihrem ESP8266-Modul zu arbeiten. Dieses Tutorial hilft Ihnen, mit beiden zu beginnen. Eine Möglichkeit ist die Verwendung der AT-Befehle. Der andere Weg ist die Verwendung der Arduino IDE. Lassen Sie uns verstehen, was es bedeutet.
Auf allen werkseitig ausgelieferten ESP8266-Modulen ist eine Standard-Firmware (SDK + API) geladen. Diese Firmware hilft Ihnen, das ESP8266-Modul über AT-Befehle zu programmieren.
Die andere Möglichkeit besteht darin, das ESP8266-Modul direkt mit der Arduino IDE (Karte nicht erforderlich) und ihren Bibliotheken zu programmieren. Alle Projekte können mit beiden Methoden durchgeführt werden. Wenn Sie jedoch die Arduino IDE zum Programmieren Ihres ESP8266 verwenden, können Sie möglicherweise keine AT-Befehle verwenden, da das Standard-SDK möglicherweise beschädigt ist. In diesem Fall müssen Sie Ihr ESP mit den Standardeinstellungen flashen. Wir werden das in einem anderen Tutorial behandeln.
Hardware zum Programmieren des ESP8266-Moduls:
ESP8266 ist ein Modul mit 8 Anschlüssen. Der Stift aus demselben ist unten gezeigt.
Leider ist dieses Modul nicht Steckbrett-freundlich und daher können wir es nicht direkt auf unser Steckbrett montieren. Im Gegensatz zu Arduino ist kein USB-zu-Seriell-Treiber integriert. Daher müssen wir "FTDI USB to TTL Serial Adapter Module" verwenden, um mit ihm zu kommunizieren. Stellen Sie sicher, dass die FTDI-Karte auch mit 3,3 V betrieben werden kann. Diejenige, die wir in diesem Tutorial verwenden, wird unten gezeigt.
Wie wir wissen, sollten wir den ESP8266 jetzt mit 3,3 V einschalten. Der Stromverbrauch beträgt jedoch 0,8 A, sodass er möglicherweise nicht wie erwartet funktioniert, wenn er über unser FTDI-Breakout-Board mit Strom versorgt wird. Daher müssen wir unseren eigenen Stromkreis bauen. Hier haben wir LM317 für die Stromversorgung verwendet; Die Details zur Herstellung der kompletten Hardware finden Sie in späteren Abschnitten.
Erforderliche Materialien:
- Perf Board
- ESP8266-01
- FTDI Breakout Board
- LM317
- 0.1uf Kondensator
- 10uf Kondensator
- Barrel Jack
- Bergstik männlich und weiblich
- Druckknopf
- Kabel anschließen
- 12V Adapter zur Stromversorgung der Karte.
Schaltungserklärung:
Das Schema der Tafel ist unten gezeigt
Einige haben möglicherweise versucht, Ihr ESP direkt über Ihr FTDI mit Strom zu versorgen, und es funktioniert, aber die folgenden Gründe sprechen dafür, ein eigenes Board mit wenigen zusätzlichen Komponenten zu bauen:
- Nur wenige FTDI-Karten können genügend Strom für das ESP-Modul liefern. Nur wenige ESP-Module verbrauchen während des Flashens möglicherweise viel Strom als die anderen. Daher ist es immer sicher, eine eigene Stromquelle zu haben, und es ist einfacher, einen Stromkreis auf dem Dot Board anstelle des Steckbretts zu integrieren.
- Wir sollten das ESP-Modul immer zurücksetzen, bevor wir den Code hochladen. Der Aufbau einer eigenen Karte hilft uns dabei, das Modul einfach zurückzusetzen. Wir haben den Druckknopf verwendet, um ESP8266 zurückzusetzen.
- Der GPIO0-Pin muss bei der Programmierung mit Arduino geerdet und bei Verwendung von AT-Befehlen frei gelassen werden. Dies kann leicht umgeschaltet werden, wenn wir ein eigenes Board bauen. Wir haben einen Jumper zum Umschalten zwischen dem AT-Befehlsmodus und dem Arduino IDE-Programmiermodus verwendet.
- Die gesamte Programmierung erfolgt über die serielle Kommunikation . Wenn Sie ein Steckbrett verwenden, können einige lose Terminals einen Fehler auf halbem Weg verursachen und uns zwingen, das Modul zu flashen, um wieder damit zu arbeiten.
Davon abgesehen können Sie zwischen der Verwendung eines Steckbretts und der Erstellung eines eigenen Boards für die Programmierung des Moduls wählen. Wenn Sie das Steckbrett weiterhin verwenden möchten, kann dieselbe oben gezeigte Schaltung mit Ihrem Steckbrett erstellt werden. Nur das Erscheinungsbild wird unterschiedlich sein, alle anderen Anweisungen in diesem Tutorial gelten gleich.
Bauvorstand zum Programm ESP8266:
Hier bauen wir also die Karte, um das ESP8266-Modul zu programmieren, das über einen eigenen Stromkreis zum Einschalten des ESP8266 verfügt.
Wie gesagt, unser Modul benötigt beim Programmieren ca. 800mA. Daher haben wir unser eigenes Leistungsmodul unter Verwendung eines variablen Spannungsreglers LM317 konstruiert, da der Quellenstrom des LM317 fast 1,2 A beträgt. Die Eingangsspannung des LM317 beträgt 12 V und wird mit einem 12 V 2A-Wandadapter angegeben. Der Ausgang des LM317 wird unter Verwendung der Widerstände von 220 Ohm und 360 Ohm konstant auf 3,3 V geregelt. Weitere Informationen zu LM317 finden Sie auch in unserem Batterieladekreis mit LM317.
Die Formeln zur Berechnung der Ausgangsspannung des LM317 sind nachstehend aufgeführt:
Vout = 1,25 * (1+ (R2 / R1))
Wobei R1 220 Ohm und R2 360 Ohm beträgt.
Das ESP8266-Modul wird gemäß den in der folgenden Tabelle gezeigten Pins angeschlossen.
Pin Nr. |
ESP-Pin-Name |
Verbunden |
1 |
Boden |
Masse des FTDI-Moduls |
2 |
GPIO2 |
Frei gelassen oder zur späteren Verwendung mit dem Bergstick verbunden |
3 |
GPIO0 |
Wechseln Sie zum Umschalten zwischen den Programmiermodi |
4 |
Rx |
Tx des FTDI-Moduls |
5 |
Tx |
Rx des FTDI-Moduls |
6 |
CH_PH |
3,3 V vom LM317 |
7 |
Zurücksetzen |
Drucktaste zum Zurücksetzen des Moduls |
8 |
Vcc |
3,3 V vom LM317 |
Um leicht zwischen dem AT-Befehlsmodus und dem Arduino-Programmiermodus umzuschalten, habe ich einen Schalter (Jumper) platziert, der den GPIO 0 bei Verwendung der Arduino IDE auf Masse zieht und ihn bei Verwendung der AT-Befehle schwebend lässt.
Es gibt einen Druckknopf, der beim Drücken das ESP-Modul zurücksetzt. Dies erfolgt durch einfaches Verbinden des RST-Pins des ESP-Moduls mit der Erdungsschiene über den Druckknopf. Jedes Mal, bevor wir unser ESP-Modul programmieren, sollten wir es zurücksetzen.
Sobald Sie die Schaltung zusammengebaut haben, sollte sie ungefähr so aussehen.
Ich habe ein Perf-Board verwendet, aber Sie können bei Interesse auch ein Steckbrett verwenden (wie oben beschrieben). Der vollständige Aufbau und die Erklärung sind im folgenden Video dargestellt.
Sobald Sie mit den Verbindungen fertig sind. Schalten Sie die Karte ohne die ESP- und FTDI-Karten ein und prüfen Sie, ob an den Klemmen Vcc und Ground der Position der ESP-Module 3,3 V richtig anliegen. Stellen Sie nun sicher, dass sich Ihre FTDI-Karte im 3,3-V-Modus befindet, und verbinden Sie Ihre FTDI- und ESP-Module mit Ihrer Karte.
Schalten Sie Ihren Adapter ein und schließen Sie ihn an Ihr Board an. Das ESP-Modul sollte rot leuchten.
Schließen Sie dann Ihre FTDI-Karte mit einem Mini-USB-zu-USB-Kabel an Ihren Computer an und navigieren Sie zum Geräte-Manager auf Ihrem Computer. Die FTDI-Karte sollte wie unten gezeigt an Ihren COM-Anschluss angeschlossen sein:
Jetzt ist es an der Zeit, unser ESP8266-Modul zu programmieren. Sie können mit den AT-Befehlen beginnen und dann mit der Arduino IDE fortfahren. Vergessen Sie nicht, unsere anderen ESP8266-basierten Projekte zu überprüfen .