It's always troublesome to update firmware for your IoT projects? Tried Arduino BasicOTA examples, but never get it to work? Then you must try AsyncElegantOTA! It's very easy to use and I've succeed the first time I try it.
For those of you do not have time to watch it all, here is the video timeline for your quick reference.
Video Timeline:
00:13 Tutorial summary 00:53 What's OTA & Why 01:25 Tutorial begin 01:36 Install AsyncElegantOTA library 02:32 Download ESPAsyncWebServer & ESPAsyncTCP 02:57 Ensure Arduino board is capable of OTA 03:41 Where to place downloaded libraries 04:09 Open sample AsyncElegantOTA sketch 04:52 Upload sketch 05:05 Open serial monitor to see ESP8266 IP address 05:36 Access to ESP8266 from browser 06:10 Update ESP8266 firmware from browser 06:31 Where to find .bin file in VS Code 06:54 How to create .bin file in Arduino IDE 08:16 OTA update ESP8266 firmware 09:01 Next video tutorial - How to combine ESP8266 project with AsyncElegantOTA library
Library URL:
- AsyncElegantOTA: https://github.com/ayushsharma82/AsyncElegantOTA
- ESPAsyncWebServer: https://github.com/me-no-dev/ESPAsyncWebServer
- ESPAsyncTCP: https://github.com/me-no-dev/ESPAsyncTCP
- For ESP32, you need the AsyncTCP library: https://github.com/me-no-dev/AsyncTCP
References:
- AsyncElegantOTA library author blog: https://randomnerdtutorials.com/esp8266-nodemcu-ota-over-the-air-arduino/
- Create you first Arduino Web server: https://hardnote.net/2020/08/21/esp-arduino-asyncwebserver-build-first-webpage/
Direct Download URL:
- AsyncElegantOTA:
https://github.com/ayushsharma82/AsyncElegantOTA/archive/refs/heads/master.zip - ESPAsyncWebServer:
https://github.com/me-no-dev/ESPAsyncWebServer/archive/refs/heads/master.zip - For ESP8266, you need ESPAsyncTCP:
https://github.com/me-no-dev/ESPAsyncTCP/archive/refs/heads/master.zip - For ESP32, you need the AsyncTCP library:
https://github.com/me-no-dev/AsyncTCP/archive/refs/heads/master.zip
ESP8266/ESP32 AsyncElegantOTA Wi-Fi 更新韌體 (OTA)
IoT 專案更新韌體很麻煩? Arduino BasicOTA 一直無法試成功? 今天來分享一下, 使用 AsyncElegantOTA, 真是太好用了!沒時間看完全部影片的朋友, 可以由下列時間軸來快速翻閱! 00:13 影片大綱 00:53 什麼是 OTA & 為什麼需要 OTA 01:25 教學開始 01:36 安裝 AsyncElegantOTA 程式庫 02:32 下載 ESPAsyncWebServer & ESPAsyncTCP 程式庫 02:57 確認 Arduino 板子能做 OTA 03:41 下載程式庫安裝位置 04:09 打開 AsyncElegantOTA 示範程式 04:52 上傳程式到 ESP8266 05:05 打開 serial monitor 查詢 ESP8266 IP 地址 05:36 由流覽器連到 ESP8266 06:10 由流覽器更新 ESP8266 韌體 06:31 使用 VS Code - .bin 在什麼目錄 06:54 使用 Arduino IDE - .bin 如何產生 08:16 OTA 更新 ESP8266 韌體 09:01 下集預告 - 如何把 ESP8266 專案加上 AsyncElegantOTA library
程式庫下載位置:
- AsyncElegantOTA:
https://github.com/ayushsharma82/AsyncElegantOTA/archive/refs/heads/master.zip - ESPAsyncWebServer:
https://github.com/me-no-dev/ESPAsyncWebServer/archive/refs/heads/master.zip - ESP8266, 你需要這個 ESPAsyncTCP:
https://github.com/me-no-dev/ESPAsyncTCP/archive/refs/heads/master.zip - ESP32, 你需要用這個 AsyncTCP library:
https://github.com/me-no-dev/AsyncTCP/archive/refs/heads/master.zip
ESP8266 Sample Code:
#include <ESP8266WiFi.h> #include <ESPAsyncTCP.h> #include <ESPAsyncWebServer.h> #include <AsyncElegantOTA.h> const char* ssid = "........"; const char* password = "........"; AsyncWebServer server(80); void setup(void) { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(200, "text/plain", "Hi! I am ESP8266."); }); AsyncElegantOTA.begin(&server); // Start ElegantOTA server.begin(); Serial.println("HTTP server started"); } void loop(void) { }
ESP32 Sample Code:
#include <WiFi.h> #include <AsyncTCP.h> #include <ESPAsyncWebServer.h> #include <AsyncElegantOTA.h> const char* ssid = "........"; const char* password = "........"; AsyncWebServer server(80); void setup(void) { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(200, "text/plain", "Hi! I am ESP32."); }); AsyncElegantOTA.begin(&server); // Start ElegantOTA server.begin(); Serial.println("HTTP server started"); } void loop(void) { }
No comments:
Post a Comment