- Was ist OTA-Programmierung?
- ESP8266 NodeMCU
- Erforderliche Komponenten
- Vorbereiten der NodeMCU für den drahtlosen Empfang des OTA-Updates
- ESP8266 Blinkendes LED-Programm für OTA-Übertragung
- Blinken der LED am ESP8266 durch OTA-Update
Was ist OTA-Programmierung?
OTA-Programmierung (Over the Air) ist ein Prozess, mit dem Geräte ihre Firmware oder Software ohne physischen Zugriff drahtlos aktualisieren können. Es verwendet drahtlose Technologie wie Wi-Fi, Bluetooth, GPRS oder 4G / 3G anstelle der kabelgebundenen seriellen Kommunikation. OTA wird verwendet, um Geräte wie Mikrocontroller, Mobiltelefone, Computer, Set-Top-Box usw. neu zu programmieren. OTA-Updates werden im Allgemeinen gesendet, um die Software zu aktualisieren, Fehler zu beheben, einige Funktionen hinzuzufügen usw. Mit der zunehmenden Verwendung von IoT-Geräten wird OTA mit übertragen Frequenzbänder mit niedriger Datenübertragungsrate (868 MHz, 900 MHz, 2400 MHz).
Hier in diesem Tutorial senden wir ein OTA-Update an ESP8266 NodeMCU, um eine LED zu blinken.
ESP8266 NodeMCU
NodeMCU ist eine Open Source IoT-Plattform. Es enthält Firmware, die auf dem kostengünstigen Wi-Fi-fähigen ESP8266 Wi-Fi SoC von Espressif Systems ausgeführt wird, und Hardware, die auf dem ESP-12-Modul basiert. Es verfügt über GPIO-, SPI-, I2C-, ADC-, PWM- und UART-Pins. Es kann mit Arduino IDE programmiert werden. Die integrierte NodeMCU verfügt über einen CP2102-IC, der USB-zu-TTL-Funktionen bietet. Weitere Informationen zu ESP8266 finden Sie in anderen ESP8266-basierten Projekten.
Erforderliche Komponenten
- NodeMCU ESP8266
- Micro-USB-Kabel
- Arduino IDE
Vorbereiten der NodeMCU für den drahtlosen Empfang des OTA-Updates
Verbinden Sie zuerst die NodeMCU ESP8266 mit einem Micro-USB-Kabel mit dem PC. Um die Firmware mit OTA hochzuladen, müssen wir die Skizze seriell mit Micro-USB hochladen, um die ESP-IP-Adresse zu generieren. Dies ist der notwendige Schritt, um die Firmware beim nächsten Mal drahtlos hochzuladen. Wählen Sie unter Extras -> Anschluss die serielle Schnittstelle aus, an die das Kabel angeschlossen ist.
ESP8266 enthält Bibliotheken und Beispiele, auf die direkt über die Arduino IDE zugegriffen werden kann. Öffnen Sie die Arduino IDE und anschließend das BasicOTA-Beispiel.
Bearbeiten Sie die Skizze, indem Sie "your-ssid" und "your-password" durch Ihre Wi-Fi-SSID und Ihr Kennwort ersetzen und dann die Skizze hochladen
Öffnen Sie den seriellen Monitor, nachdem Sie das Programm erfolgreich hochgeladen haben. Stellen Sie die Baudrate von 115200 am seriellen Monitor ein und drücken Sie die Reset-Taste am NodeMCU ESP8266. Das Verbinden von NodeMCU ESP8266 mit Wi-Fi dauert einige Zeit, da die Wi-Fi-Anmeldeinformationen überprüft werden. Wenn die SSID und das Kennwort korrekt sind, wird die NodeMCU ESP8266 mit Wi-Fi verbunden und die IP-Adresse des ESP wird auf dem seriellen Monitor angezeigt.
ESP8266 Blinkendes LED-Programm für OTA-Übertragung
Der vollständige Code zum Übertragen des blinkenden LED-Programms über OTA ist am Ende angegeben. Hier erklären wir einen wichtigen Teil des Codes.
Das Importieren der erforderlichen Bibliotheken ist der erste Schritt beim Schreiben des Codes. Die ESP8266WiFi.h- Bibliothek bietet ESP8266-spezifische Wi-Fi-Routinen, die für die Verbindung mit einem Netzwerk erforderlich sind. Außerdem bietet es Methoden und Eigenschaften für den Betrieb des ESP8266 im Stationsmodus oder im Soft Access Point-Modus. Mit ESP8266mDNS.h kann die Skizze auf Multicast-DNS-Abfragen antworten.
#einschließen
Definieren Sie Variablen für die SSID und das Kennwort des Wi-Fi-Netzwerks, mit dem ESP verbunden werden soll. Wir müssen unseren PC und ESP mit demselben Wi-Fi-Netzwerk verbinden.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * password = STAPSK;
ESP8266 ist als Stationsmodus eingestellt und die Wi-Fi-Verbindung wird durch Angabe von Anmeldeinformationen initiiert. Es dauert einige Zeit, bis ESP eine Verbindung zum Wi-Fi-Modul hergestellt hat. Wenn SSID und Passwort korrekt sind, wird eine Verbindung zu Wi-Fi hergestellt. Wenn SSID und Passwort nicht korrekt sind, wird es alle 1 Sekunde neu gestartet.
Serial.begin (115200); // Baudrate auf 115200 Serial.println setzen ("Booting"); // Schritt zum Verbinden von ESP mit dem Wi-Fi WiFi.mode (WIFI_STA); // ESP als Stationsmodus einstellen WiFi.begin (ssid, password); // Wi-Fi-Anmeldeinformationen während (WiFi.waitForConnectResult ()! = WL_CONNECTED) // Das Verbinden von ESP mit Wi-Fi dauert einige Zeit. Warten Sie also, bis die Verbindung hergestellt ist. { Serial.println ("Verbindung fehlgeschlagen! Neustart…");; Verzögerung (1000); ESP.restart (); }}
Die IP-Adresse des ESP wird auf dem seriellen Monitor als Verbindung zum Wi-Fi-Modul angegeben. WiFi.localIP () gibt die IP-Adresse von ESP an.
Öffnen Sie nach dem erfolgreichen Hochladen des Codes den seriellen Monitor mit einer Baudrate von 115200. Drücken Sie die Reset-Taste und nach einigen Sekunden wird die ESP-IP-Adresse auf dem seriellen Monitor angezeigt. Jetzt können Sie die Firmware drahtlos hochladen.
Blinken der LED am ESP8266 durch OTA-Update
Bevor Sie die nächste Skizze hochladen, gehen Sie zu Extras und ändern Sie PORT in ESP-IP-Adresse, um die Firmware drahtlos auf die NodeMCU hochzuladen.
Laden Sie nun die unten angegebene Skizze der blinkenden LED auf NodeMCU drahtlos mit Arduino IDE hoch und stellen Sie sicher, dass Ihr PC und ESP mit demselben Wi-Fi-Netzwerk verbunden sind und ESP von einer Stromquelle gespeist wird.
Nach dem erfolgreichen Hochladen des Codes beginnt die LED an der NodeMCU ESP8266 alle 1 Sekunde zu blinken. Sie können aus Sicherheitsgründen auch den Hostnamen und das Kennwort in der Skizze festlegen, während Sie Firmware auf ESP hochladen.