- Co to jest programowanie OTA?
- ESP8266 NodeMCU
- Wymagane składniki
- Przygotowanie NodeMCU do bezprzewodowego odbioru aktualizacji OTA
- ESP8266 Program migającej diody LED dla transferu OTA
- Miganie diody LED na ESP8266 poprzez aktualizację OTA
Co to jest programowanie OTA?
Programowanie OTA (Over the Air) to proces, który umożliwia urządzeniom aktualizację oprogramowania układowego lub oprogramowania bezprzewodowo bez fizycznego dostępu. Wykorzystuje technologię bezprzewodową, taką jak Wi-Fi, Bluetooth, GPRS lub 4G / 3G, zamiast przewodowej komunikacji szeregowej. OTA służy do przeprogramowywania urządzeń takich jak mikrokontrolery, telefony komórkowe, komputery, dekodery itp. Aktualizacje OTA są zazwyczaj wysyłane w celu aktualizacji oprogramowania, usunięcia błędów, dodania niektórych funkcji itp. Wraz ze wzrostem wykorzystania urządzeń IoT OTA jest przesyłane za pomocą pasma częstotliwości o małej szybkości transmisji danych (868 MHz, 900 MHz, 2400 MHz).
Tutaj, w tym samouczku, wyślemy aktualizację OTA do ESP8266 NodeMCU, aby zamrugać diodą LED.
ESP8266 NodeMCU
NodeMCU to platforma IoT typu open source. Zawiera oprogramowanie układowe działające na niedrogim układzie SoC ESP8266 Wi-Fi z obsługą Wi-Fi firmy Espressif Systems oraz sprzęt oparty na module ESP-12. Posiada piny GPIO, SPI, I2C, ADC, PWM i UART. Można go zaprogramować za pomocą Arduino IDE. Na pokładzie NodeMCU ma układ CP2102, który zapewnia funkcjonalność USB do TTL. Aby dowiedzieć się więcej o ESP8266, sprawdź inne projekty oparte na ESP8266.
Wymagane składniki
- NodeMCU ESP8266
- Kabel Micro USB
- Arduino IDE
Przygotowanie NodeMCU do bezprzewodowego odbioru aktualizacji OTA
Najpierw podłącz NodeMCU ESP8266 do komputera za pomocą kabla micro USB. Następnie, aby wgrać firmware przy pomocy OTA, musimy seryjnie wgrać szkic używając micro USB do wygenerowania adresu IP ESP. Jest to niezbędny krok, aby następnym razem bezprzewodowo przesłać oprogramowanie sprzętowe. Wybierz port szeregowy, do którego jest podłączony kabel w menu Narzędzia -> Port .
ESP8266 zawiera biblioteki i przykłady, do których można uzyskać bezpośredni dostęp z Arduino IDE. Otwórz Arduino IDE, a następnie otwórz przykład z BasicOTA.
Edytuj szkic, zastępując „twój-ssid” i „twoje-hasło” swoim identyfikatorem SSID Wi-Fi i hasłem, a następnie prześlij szkic
Otwórz monitor szeregowy po pomyślnym załadowaniu programu. Ustaw prędkość transmisji na 115200 na monitorze szeregowym i naciśnij przycisk Reset na NodeMCU ESP8266. Połączenie NodeMCU ESP8266 z Wi-Fi zajmuje trochę czasu, ponieważ sprawdza poświadczenia Wi-Fi. Jeśli identyfikator SSID i hasło są poprawne, NodeMCU ESP8266 połączy się z Wi-Fi, a adres IP ESP zostanie wyświetlony na monitorze szeregowym.
ESP8266 Program migającej diody LED dla transferu OTA
Kompletny kod do przesyłania programu migającej diody LED przez OTA podany jest na końcu, tutaj wyjaśniamy ważną część kodu.
Importowanie wymaganych bibliotek jest pierwszym krokiem podczas pisania kodu. Biblioteka ESP8266WiFi.h zapewnia specyficzne procedury Wi-Fi ESP8266 potrzebne do połączenia z siecią. Zapewnia również metody i właściwości działania ESP8266 w trybie stacji lub w trybie miękkiego punktu dostępu. ESP8266mDNS.h umożliwia szkicowi odpowiadanie na zapytania DNS multiemisji.
#zawierać
Zdefiniuj zmienne dla SSID i hasła sieci Wi-Fi, do której ma być podłączony ESP. Musimy podłączyć nasz komputer i ESP do tej samej sieci Wi-Fi.
#ifndef STASSID #define STASSID "twój-ssid" #define STAPSK "twoje-hasło" #endif const char * ssid = STASSID; const char * hasło = STAPSK;
ESP8266 jest ustawiony jako tryb stacji, a połączenie Wi-Fi jest inicjowane przez podanie poświadczeń. Połączenie ESP z modułem Wi-Fi zajmuje trochę czasu. Jeśli identyfikator SSID i hasło są poprawne, zostanie podłączony do Wi-Fi, a jeśli identyfikator SSID i hasło nie są poprawne, będzie się restartować co 1 sekundę.
Serial.begin (115200); // Ustaw prędkość transmisji na 115200 Serial.println ("Booting"); // Krok, aby połączyć ESP z Wi-Fi WiFi.mode (WIFI_STA); // Ustaw ESP jako tryb stacji WiFi.begin (ssid, hasło); // Poświadczenia Wi-Fi while (WiFi.waitForConnectResult ()! = WL_CONNECTED) // Łączenie ESP z Wi-Fi zajmuje trochę czasu, więc poczekaj, aż się połączy { Serial.println ("Połączenie nie powiodło się! Ponowne uruchomienie…"); opóźnienie (1000); ESP.restart (); }
Adres IP ESP jest wydrukowany na monitorze szeregowym jako połączenie z modułem Wi-Fi. WiFi.localIP () podaje adres IP ESP.
Po wgraniu kodu pomyślnie otwórz monitor szeregowy z szybkością transmisji 115200. Naciśnij przycisk resetowania, a po kilku sekundach będziesz mógł zobaczyć adres IP ESP na monitorze szeregowym. Teraz będziesz mógł bezprzewodowo przesłać oprogramowanie układowe.
Miganie diody LED na ESP8266 poprzez aktualizację OTA
Przed załadowaniem następnego szkicu przejdź do Narzędzia i zmień PORT na adres IP ESP, aby przesłać oprogramowanie układowe bezprzewodowo do NodeMCU.
Teraz prześlij poniższy szkic migającej diody LED na NodeMCU bezprzewodowo za pomocą Arduino IDE i upewnij się, że twój komputer i ESP są podłączone do tej samej sieci Wi-Fi, a ESP jest zasilane przez jakieś źródło zasilania.
Po pomyślnym przesłaniu kodu dioda LED na NodeMCU ESP8266 zacznie migać co 1 sekundę. Możesz również ustawić nazwę hosta i hasło w szkicu ze względów bezpieczeństwa podczas przesyłania oprogramowania układowego do ESP.