- Wat is OTA-programmering?
- ESP8266 NodeMCU
- Componenten vereist
- NodeMCU voorbereiden om OTA-update draadloos te ontvangen
- ESP8266 Knipperend LED-programma voor OTA-overdracht
- Knipperende LED op ESP8266 via OTA-update
Wat is OTA-programmering?
OTA-programmering (Over the Air) is een proces waarmee apparaten hun firmware of software draadloos kunnen upgraden zonder enige fysieke toegang. Het maakt gebruik van draadloze technologie zoals Wi-Fi, Bluetooth, GPRS of 4G / 3G in plaats van bedrade seriële communicatie. OTA wordt gebruikt om de apparaten zoals microcontrollers, mobiele telefoons, computers, settopboxen enz. Te herprogrammeren. OTA-updates worden doorgaans verzonden om de software bij te werken, de bugs op te lossen, enkele functies toe te voegen enz. Met het toenemende gebruik van IoT-apparaten wordt OTA overgedragen met frequentiebanden met een lage datatransmissiesnelheid (868 MHz, 900 MHz, 2400 MHz).
Hier in deze tutorial sturen we een OTA-update naar ESP8266 NodeMCU om een LED te laten knipperen.
ESP8266 NodeMCU
NodeMCU is een open source IoT-platform. Het bevat firmware die draait op de goedkope Wi-Fi-compatibele ESP8266 Wi-Fi SoC van Espressif Systems, en hardware die is gebaseerd op de ESP-12-module. Het heeft GPIO-, SPI-, I2C-, ADC-, PWM- EN UART-pinnen. Het kan worden geprogrammeerd met Arduino IDE. Aan boord heeft NodeMCU CP2102 IC die USB naar TTL-functionaliteit biedt. Voor meer informatie over ESP8266, bekijk andere ESP8266-gebaseerde projecten.
Componenten vereist
- NodeMCU ESP8266
- Micro USB-kabel
- Arduino IDE
NodeMCU voorbereiden om OTA-update draadloos te ontvangen
Verbind eerst de NodeMCU ESP8266 met de pc via een micro-USB-kabel. Om de firmware vervolgens met OTA te uploaden, moeten we de schets serieel uploaden met behulp van micro-USB om het ESP IP-adres te genereren. Dit is de noodzakelijke stap om de firmware de volgende keer draadloos te uploaden. Selecteer de seriële poort waarop de kabel is aangesloten via Tools -> Port .
ESP8266 wordt geleverd met bibliotheken en voorbeelden die rechtstreeks toegankelijk zijn vanuit Arduino IDE. Open Arduino IDE en vervolgens Open BasicOTA-voorbeeld.
Bewerk de schets door "uw-ssid" en "uw-wachtwoord" te vervangen door uw Wi-Fi SSID en wachtwoord en upload vervolgens de schets
Open de seriële monitor na het succesvol uploaden van het programma. Stel de baudrate van 115200 in op de seriële monitor en druk op de resetknop op NodeMCU ESP8266. Het verbinden van de NodeMCU ESP8266 met Wi-Fi duurt even omdat de Wi-Fi-inloggegevens worden gecontroleerd. Als de SSID en het wachtwoord correct zijn, wordt de NodeMCU ESP8266 verbonden met Wi-Fi en wordt het IP-adres van de ESP weergegeven op de seriële monitor.
ESP8266 Knipperend LED-programma voor OTA-overdracht
De volledige code voor het overbrengen van het knipperende LED-programma via OTA wordt aan het einde gegeven, hier leggen we een belangrijk deel van de code uit.
Het importeren van de vereiste bibliotheken is de eerste stap bij het schrijven van de code. De ESP8266WiFi.h- bibliotheek biedt ESP8266-specifieke Wi-Fi-routines die nodig zijn om verbinding te maken met een netwerk. Het biedt ook methoden en eigenschappen om ESP8266 in stationmodus of zachte toegangspuntmodus te bedienen. Met ESP8266mDNS.h kan sketch reageren op multicast DNS-vragen.
# omvatten
Definieer variabelen voor SSID en wachtwoord van het Wi-Fi-netwerk waarmee ESP moet worden verbonden. We moeten onze pc en ESP met hetzelfde wifi-netwerk verbinden.
#ifndef STASSID #define STASSID "uw-ssid" #define STAPSK "uw-wachtwoord" #endif const char * ssid = STASSID; const char * wachtwoord = STAPSK;
ESP8266 is ingesteld als stationmodus en Wi-Fi-verbinding wordt tot stand gebracht door inloggegevens op te geven. Het duurt even voordat ESP verbinding maakt met de Wi-Fi-module. Als SSID en wachtwoord correct zijn, wordt het verbonden met Wi-Fi en als SSID en wachtwoord niet correct zijn, wordt het elke seconde opnieuw opgestart.
Serial.begin (115200); // Zet de baudrate op 115200 Serial.println ("Booting"); // Stap om ESP te verbinden met de Wi-Fi WiFi.mode (WIFI_STA); // Stel ESP in als stationmodus WiFi.begin (ssid, wachtwoord); // Wi-Fi-referenties terwijl (WiFi.waitForConnectResult ()! = WL_CONNECTED) // Het verbinden van ESP met wifi duurt even, dus wacht tot het verbinding maakt { Serial.println ("Verbinding mislukt! Opnieuw opstarten…"); vertraging (1000); ESP.restart (); }
Het IP-adres van de ESP wordt op de seriële monitor afgedrukt als verbinding met de Wi-Fi-module. WiFi.localIP () geeft het IP-adres van ESP.
Open na het uploaden van de code de seriële monitor met een baudsnelheid van 115200. Druk op de resetknop en na enkele seconden ziet u het ESP IP-adres op de seriële monitor. Nu kunt u de firmware draadloos uploaden.
Knipperende LED op ESP8266 via OTA-update
Ga voor het uploaden van de volgende sketch naar Tools en verander PORT naar ESP IP-adres voor het draadloos uploaden van de firmware naar de NodeMCU.
Upload nu de onderstaande schets van knipperende LED op NodeMCU draadloos met behulp van Arduino IDE en zorg ervoor dat uw pc en ESP zijn verbonden met hetzelfde Wi-Fi-netwerk en ESP wordt gevoed door een stroombron.
Nadat de code met succes is geüpload, begint de LED op NodeMCU ESP8266 elke seconde te knipperen. U kunt ook de hostnaam en het wachtwoord in de schets instellen voor beveiliging tijdens het uploaden van firmware naar ESP.