- Lập trình OTA là gì?
- ESP8266 NodeMCU
- Thành phần bắt buộc
- Chuẩn bị NodeMCU để nhận Cập nhật OTA không dây
- Chương trình đèn LED nhấp nháy ESP8266 để chuyển OTA
- Nhấp nháy đèn LED trên ESP8266 thông qua cập nhật OTA
Lập trình OTA là gì?
Lập trình OTA (Qua mạng) là một quy trình cho phép các thiết bị nâng cấp chương trình cơ sở hoặc phần mềm không dây mà không cần bất kỳ quyền truy cập vật lý nào. Nó sử dụng công nghệ không dây như Wi-Fi, Bluetooth, GPRS hoặc 4G / 3G thay vì giao tiếp nối tiếp có dây. OTA được sử dụng để lập trình lại các thiết bị như vi điều khiển, điện thoại di động, máy tính, set-top box, v.v. Các bản cập nhật OTA thường được gửi để cập nhật phần mềm, giải quyết lỗi, thêm một số tính năng, v.v. Với việc sử dụng ngày càng nhiều các thiết bị IoT, OTA được chuyển bằng cách sử dụng các dải tần có tốc độ truyền dữ liệu thấp (868 MHz, 900 MHz, 2400 MHz).
Ở đây trong hướng dẫn này, chúng tôi sẽ gửi bản cập nhật OTA cho ESP8266 NodeMCU để nhấp nháy đèn LED.
ESP8266 NodeMCU
NodeMCU là một nền tảng IoT mã nguồn mở. Nó bao gồm phần sụn chạy trên SoC Wi-Fi ESP8266 hỗ trợ Wi-Fi giá rẻ của Espressif Systems và phần cứng dựa trên mô-đun ESP-12. Nó có các chân GPIO, SPI, I2C, ADC, PWM VÀ UART. Nó có thể được lập trình với Arduino IDE. Trên bo mạch NodeMCU có IC CP2102 cung cấp chức năng USB sang TTL. Để tìm hiểu thêm về ESP8266, hãy kiểm tra các dự án dựa trên ESP8266 khác.
Thành phần bắt buộc
- NodeMCU ESP8266
- Cáp Micro USB
- Arduino IDE
Chuẩn bị NodeMCU để nhận Cập nhật OTA không dây
Đầu tiên kết nối NodeMCU ESP8266 với PC bằng cáp micro USB. Sau đó, để tải lên phần sụn bằng OTA, chúng tôi cần tải lên bản phác thảo nối tiếp bằng micro USB để tạo địa chỉ IP ESP. Đây là bước cần thiết để tải lên chương trình cơ sở không dây vào lần sau. Chọn cổng nối tiếp mà cáp được gắn vào từ Công cụ -> Cổng .
ESP8266 đi kèm với các thư viện và ví dụ có thể được truy cập trực tiếp từ Arduino IDE. Mở Arduino IDE và sau đó Mở ví dụ BasicOTA.
Chỉnh sửa bản phác thảo bằng cách thay thế “your-ssid” và “your-password” bằng SSID Wi-Fi và mật khẩu của bạn, sau đó tải lên bản phác thảo
Mở màn hình nối tiếp sau khi tải lên chương trình thành công. Đặt Baud Rate là 115200 trên Serial Monitor và nhấn nút Reset trên NodeMCU ESP8266. Việc kết nối NodeMCU ESP8266 với Wi-Fi sẽ mất một chút thời gian vì nó sẽ kiểm tra thông tin đăng nhập Wi-Fi. Nếu SSID và mật khẩu chính xác thì NodeMCU ESP8266 sẽ được kết nối với Wi-Fi và địa chỉ IP của ESP sẽ hiển thị trên màn hình nối tiếp.
Chương trình đèn LED nhấp nháy ESP8266 để chuyển OTA
Mã hoàn chỉnh để chuyển chương trình LED nhấp nháy qua OTA được đưa ra ở cuối, ở đây chúng tôi sẽ giải thích một số phần quan trọng của mã.
Nhập các thư viện cần thiết là bước đầu tiên để viết mã. Thư viện ESP8266WiFi.h cung cấp các quy trình Wi-Fi cụ thể của ESP8266 cần thiết để kết nối với mạng. Ngoài ra, nó cung cấp các phương pháp và thuộc tính để vận hành ESP8266 ở chế độ trạm hoặc chế độ điểm truy cập mềm. ESP8266mDNS.h cho phép phác thảo để đáp ứng các truy vấn DNS đa hướng.
#include
Xác định các biến cho SSID và mật khẩu của mạng Wi-Fi mà ESP sẽ được kết nối. Chúng tôi phải kết nối PC và ESP của mình với cùng một mạng Wi-Fi.
#ifndef STASSID #define STASSID "your- ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * mật khẩu = STAPSK;
ESP8266 được đặt làm chế độ trạm và kết nối Wi-Fi được bắt đầu bằng cách cung cấp thông tin xác thực. Phải mất một thời gian để ESP kết nối với mô-đun Wi-Fi. Nếu SSID và mật khẩu chính xác, nó sẽ được kết nối với Wi-Fi và nếu SSID và mật khẩu không đúng thì nó sẽ khởi động lại sau mỗi 1 giây.
Serial.begin (115200); // Đặt Baud Rate thành 115200 Serial.println ("Khởi động"); // Bước kết nối ESP với Wi-Fi WiFi.mode (WIFI_STA); // Đặt ESP làm chế độ trạm WiFi.begin (ssid, password); // Thông tin đăng nhập Wi-Fi trong khi (WiFi.waitForConnectResult ()! = WL_CONNECTED) // Việc kết nối ESP với wi-fi mất một chút thời gian, vì vậy hãy đợi cho đến khi kết nối được { Serial.println ("Kết nối không thành công! Đang khởi động lại…"); chậm trễ (1000); ESP.restart (); }
Địa chỉ IP của ESP được in trên màn hình nối tiếp khi kết nối với mô-đun Wi-Fi. WiFi.localIP () cung cấp địa chỉ IP của ESP.
Sau khi tải lên mã thành công, hãy mở màn hình nối tiếp ở 115200 Baud Rate. Nhấn nút đặt lại và sau vài giây, bạn sẽ có thể thấy địa chỉ IP của ESP trên Màn hình nối tiếp. Bây giờ bạn sẽ có thể tải lên phần sụn không dây.
Nhấp nháy đèn LED trên ESP8266 thông qua cập nhật OTA
Trước khi tải lên bản phác thảo tiếp theo, hãy chuyển đến Công cụ và thay đổi PORT thành địa chỉ IP ESP để tải lên phần sụn không dây lên NodeMCU.
Bây giờ tải lên bản phác thảo dưới đây về đèn LED nhấp nháy trên NodeMCU không dây bằng Arduino IDE và đảm bảo rằng PC và ESP của bạn được kết nối với cùng một mạng Wi-Fi và ESP được cung cấp bởi một số nguồn điện.
Sau khi tải mã lên thành công, đèn LED trên NodeMCU ESP8266 sẽ bắt đầu nhấp nháy sau mỗi 1 giây. Bạn cũng có thể đặt tên máy chủ và mật khẩu trong bản phác thảo để bảo mật trong khi tải lên chương trình cơ sở trên ESP.