Trong quá khứ, các bản cập nhật phần sụn trong hệ thống nhúng là một nhiệm vụ quan trọng. Nhưng hầu hết các thiết bị IoT và các thiết bị nhúng được kết nối qua Internet để cập nhật phần sụn từ xa bởi các nhà phát triển. Các thiết bị có thể kết nối với Internet có lợi ích của việc cập nhật bản thân. Vì vậy, loại chương trình phần sụn này trong ESP32 được gọi là OTA (không trung), giúp giữ cho các thiết bị nhúng được cập nhật với sự can thiệp của người dùng tối thiểu. Ngoài ra, Over-the-Air cung cấp rất nhiều tính năng và là một kỹ thuật hiệu quả về chi phí cho các nhà phát triển để thực hiện cập nhật thiết bị của họ. Bài viết này khám phá Firmware OTA Cập nhật thủ tục qua bảng phát triển ESP32.
Lập trình OTA trong ESP32/ ESP32 OTA là gì?
ESP32 OTA là khả năng tải lên hoặc cập nhật một chương trình mới vào quy trình bảng phát triển ESP32 qua Internet mà không cần kết nối với máy tính. Ngoài ra, quá trình này cũng có thể giảm thời gian cần thiết để cập nhật mọi mô -đun ESP trong bảo trì. Do đó, nó cho phép cập nhật không dây qua Internet hoặc các loại mạng không dây khác.
Bảng phát triển ESP32 chú ý đến bản cập nhật chương trình cơ sở bằng cách tải xuống bằng cách sử dụng nó bằng cách sử dụng giao thức như HTTPS, MQTT hoặc HTTP. Sau đó, nó xác minh và đưa nó vào một phân vùng được phân bổ trong bộ nhớ của bảng ESP32. Cập nhật OTA rất có ý nghĩa đối với các thiết bị nhúng hoặc thiết bị IoT, đặc biệt khi các thiết bị khó truy cập hoặc ở các vị trí từ xa.
Các bộ phận lõi OTA của ESP32
ESP32 OTA sử dụng các thành phần chính khác nhau để cập nhật phần sụn mà không cần kết nối thiết bị. Do đó, các phần cốt lõi của OTA này giúp truyền và nhận cập nhật. Ngoài ra, AsynceleGantota (hoặc) các thư viện & khung OTTPS ESP HTTPS từ Espressif rút ngắn quy trình thực hiện.
Phân vùng dữ liệu của OTA
Phân vùng này trong bộ nhớ flash của bảng ESP32 chỉ đơn giản là lưu trữ thông tin được cập nhật của OTA, như hình ảnh phần sụn & một bộ đếm để theo dõi khe nào được ghi vào gần đây.
Cơ chế giao tiếp
Cập nhật OTA chủ yếu phụ thuộc vào các giao thức giao tiếp không dây như Bluetooth hoặc WiFi, nơi Bluetooth được sử dụng để cập nhật bản địa hóa và nhỏ hơn và WiFi thường được sử dụng.

Kiến trúc máy khách-máy chủ
Một máy khách, như một ứng dụng di động hoặc PC, bắt đầu cập nhật và gửi phần sụn đến máy chủ ESP32.
Thư viện & Khung
AsynceleGantota & Thư viện OTA HTTPS ESP cung cấp các chức năng được xây dựng sẵn để xử lý quy trình OTA và rút ngắn sự phát triển.
Bộ tải khởi động
Bộ tải khởi động này xử lý quá trình chuyển đổi sang phần sụn mới nhất sau khi cập nhật OTA thành công.
OTA an toàn
Các bản cập nhật OTA an toàn liên quan đến việc xác minh hình ảnh chữ ký phần sụn để đảm bảo tính toàn vẹn và tính xác thực của nó.
Về bản chất, các bản cập nhật OTA của ESP32 liên quan đến sự kết hợp của phần mềm (phân vùng, thư viện và phần sụn) và giao thức truyền thông (Wi-Fi hoặc Bluetooth). Do đó, nó cập nhật liền mạch phần sụn của thiết bị mà không cần truy cập vật lý.
Đang làm việc
Lập trình OTA của ESP32 cho phép phần mềm/phần mềm ESP32, cập nhật không dây lên máy tính mà không có kết nối vật lý. Vì vậy, điều này có thể được thực hiện bằng cách gửi một hình ảnh phần sụn mới qua một mạng như Wi-Fi và sau đó viết nó vào bộ nhớ flash của ESP32. Do đó, ban phát triển ESP32 khởi động lại và phần sụn mới nhất đang chạy.
Thực hiện OTA ESP32
Để thực hiện các bản cập nhật qua không trung cho Hội đồng Phát triển ESP32, một bản phác thảo OTA cơ bản phải được tải lên. Sau đó, một máy chủ web được sử dụng để tải lên phần sụn mới nhất. Vì vậy, toàn bộ việc cài đặt quy trình OTA ESP32 này liên quan đến thiết lập kết nối Wi-Fi, cài đặt thư viện và sau đó, một tệp nhị phân được biên dịch được tải lên bảng ESP32.
Quy trình từng bước của triển khai OTA ESP32:
- Đầu tiên, cần cài đặt gói bảng ESP32 trong Arduino IDE.
- Sau đó, bao gồm các thư viện cụ thể và các thư viện cần thiết khác của ESP32.
- Bản phác thảo OTA cơ bản phải được tải lên, thường chứa một máy chủ web chủ yếu để cập nhật OTA.
- Mở trình duyệt và cho phép địa chỉ IP máy chủ web của ESP32.
- Chọn tệp .bin trong giao diện máy chủ web mà bạn muốn tải lên.
- Nhấp vào nút Tải lên để bắt đầu cập nhật OTA.
- Bây giờ ESP32 được kết nối với mạng Wi-Fi của bạn.
- Mở AARD sẽ khởi động lại thông qua phần sụn mới được tải lên.
- Thư viện Arduinoota phải được sử dụng trong lõi ESP32 để đơn giản hóa quy trình OTA.
- Bạn cũng có thể sử dụng ví dụ basicota được cung cấp bởi thư viện hoặc tạo ứng dụng OTA của riêng bạn.
- Bây giờ, thư viện Arduinoota chỉ đơn giản cho phép bạn tải lên OTA phác thảo mới nhất vào ESP32 của bạn.
Sử dụng một máy chủ web
- Trong thư viện arduino ESP32, ví dụ Otawebupdater cung cấp giao diện web để tải lên phần sụn.
- Bản phác thảo được biên dịch để tạo tệp .bin, sau đó nó có thể được tải lên thông qua máy chủ web.
- Kỹ thuật này cho phép cập nhật OTA đơn giản và dễ tiếp cận hơn.
- Ngoài ra, hãy đảm bảo rằng bạn có tối thiểu hai phân vùng OTA trong bảng ESP32 của bạn.
- Sử dụng các kỹ thuật khác như đám mây Arduino IoT, chủ yếu để cập nhật OTA.
- Quy trình OTA ghi đè lên phần sụn hiện có trong phân vùng OTA chuyên dụng bằng cách đảm bảo phần sụn chạy vẫn ổn định.
ESP32 OTA giao tiếp với Arduino
Tính năng chính của bộ vi điều khiển hỗ trợ WiFi (ESP32 & ESP8266 ) là lập trình OTA. Các thiết bị này nâng cấp phần mềm không dây của họ. Sử dụng OTA, một bản cập nhật có thể được gửi đến các bộ vi điều khiển khác nhau trên một mạng tương tự. Tính năng này được sử dụng để gửi các bản cập nhật để giải quyết các lỗi bằng cách bao gồm một số tính năng cho một số bộ vi điều khiển, hộp set-top, máy tính, điện thoại di động, v.v.
Nói chung, các bản cập nhật OTA đóng vai trò chính trong Internet của mọi thứ Để cập nhật các thiết bị kết nối Internet từ xa với các cài đặt và phần mềm mới. Ở đây chúng tôi sẽ sử dụng lập trình OTA với bảng ESP32 trong Arduino IDE với trình cập nhật web OTA.
Các thành phần cần thiết cho giao tiếp OTA của ESP32 với bảng Arduino bao gồm bảng ESP32 và Arduino IDE.

Mã OTA
Mã OTA cho Hội đồng Phát triển ESP32 được đưa ra dưới đây.
#include
#include
const char* host = Hồi ESP32 SSID = XXX XXX; Mật khẩu = xxxx
Máy chủ WebServer (80);
/* trang đăng nhập*/
Const char* logindex =
Tiết
'
/*
* Trang chỉ mục máy chủ
*/
const char* serverindex =
Cấm Hồi;
/*
* Hàm thiết lập
*/
void setup (void) {
Nối tiếp.begin (115200);
// Kết nối với mạng WiFi
Wifi.begin (ssid, mật khẩu);
Serial.println (Hồi giáo);
// Chờ kết nối
while (wifi.status ()! = wl_connected) {
độ trễ (500);
Serial.print (Hồi.);
}
Serial.println (Hồi giáo);
Serial.print (kết nối với người khác);
Serial.println (ssid);
Serial.print (địa chỉ IP IP: Hồi);
Serial.println (wifi.localip ());
/*Sử dụng mdns cho độ phân giải tên máy chủ*/
if (! mdns.begin (host)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239
Serial.println (lỗi Thiết lập lỗi MDNS Đáp ứng!
while (1) {
Độ trễ (1000);
}
}
Serial.println (người phản ứng MDNS bắt đầu);
/ *Trang chỉ mục trả về được lưu trữ trong server Index */
server.on ((//, http_get, [] () {
server.sendHeader (kết nối trực tuyến, người đóng cửa);
server.send (200, văn bản/HTML, LoginIndex);
});
server.on ('/server Index, http_get, [] () {
server.sendHeader (kết nối trực tuyến, người đóng cửa);
server.send (200, văn bản/HTML, ServerIndex);
});
/ *Xử lý tệp phần mềm tải lên */
server.on (“/cập nhật”, http_post, [] () {
server.sendHeader (kết nối trực tuyến, người đóng cửa);
server.send (200, văn bản/đồng bằng, (update.haserror ())?
ESP.Restart ();
} {
Httpupload & upload = server.upload ();
if (upload.status == upload_file_start) {
Serial.printf (bản cập nhật của người dùng: %s \ n, tải lên.filename.c_str ());
if (! update.begin (update_size_unknown)) {// Bắt đầu với kích thước tối đa có sẵn kích thước
Cập nhật.printerror (sê -ri);
}
} if if (upload.status == upload_file_write) {
/* firmware flash vào ESP*/
if (update.write (upload.buf, upload.currentsize)! = upload.currentSize) {
Cập nhật.printerror (sê -ri);
}
} if if (upload.status == upload_file_end) {
if (update.end (true)) {// true để đặt kích thước thành tiến trình hiện tại
Serial.printf (Cập nhật thành công: %u \ nrebooting, \ n, tải lên.totalsize);
} khác {
Cập nhật.printerror (sê -ri);
}}}
máy chủ.begin ();
}
void loop (void) {
server.handleclient ();
độ trễ (1);
}
Lập trình OTA làm việc
Để sử dụng tính năng lập trình OTA, một bản phác thảo cần được tải lên thông qua cổng nối tiếp. Bản phác thảo này bao gồm mã HTML để tạo trình cập nhật web OTA. Sau đó, bạn có thể dễ dàng tải lên mã với trình duyệt. Khi mã được tải lên thông qua một cổng nối tiếp, một máy chủ web sẽ được tạo ở nơi bạn có thể chọn và tải lên một bản phác thảo mới thông qua trình duyệt web.
Kết nối bảng ESP32 với máy tính xách tay để tải mã chính, sau đó mở Arduino IDE và chọn loại bảng làm bộ ESP32 Dev & chọn đúng cổng nối tiếp.
Sửa đổi tên của Wi-Fi & Mật khẩu trong mã gốc.
Mã OTA phải được tải lên bảng ESP32 của bạn. Khi mã được tải lên thành công, hãy mở màn hình nối tiếp. Sau đó, tốc độ baud của 115200 phải được thay đổi trên màn hình nối tiếp. Nhấn nút đặt lại phía trên mô -đun ESP32 và nó phải in địa chỉ IP của bảng ESP32.
Mở trình duyệt mặc định để dán địa chỉ IP ESP32. Vì vậy, nó phải mở trang máy chủ web cho OTA. Ở đây tên người dùng & mật khẩu theo mặc định là quản trị viên. Bây giờ, nhập chi tiết đăng nhập, nhấp vào trang đăng nhập và sau đó một tab mới sẽ mở để tải lên mã.
Thuận lợi
Những lợi thế của OP32 OTA bao gồm những điều sau đây.
- Cách tiếp cận tập trung này cho phép một bản cập nhật duy nhất lan truyền vào các ESP32 khác nhau trên một mạng tương tự.
- OTA cho phép nâng cấp phần sụn từ xa mà không sử dụng quyền truy cập vật lý vào bảng phát triển để làm cho nó hoàn hảo cho việc triển khai IoT.
- OTA loại bỏ yêu cầu của các kết nối vật lý để cập nhật bảng ESP32 bằng cách đơn giản hóa quy trình cập nhật, đặc biệt là các thiết bị không thể truy cập hoặc từ xa.
- Các bản cập nhật có thể đạt được từ xa, làm giảm thời gian dành cho bảo vệ và vận hành.
- Một nguồn duy nhất gửi các bản cập nhật cho nhiều ESP32 trên mạng tương tự và hợp lý hóa quy trình cập nhật cho các triển khai lớn.
- OTA cho phép cập nhật đồng thời một số thiết bị bằng cách làm cho nó rất hiệu quả cho các dự án quy mô lớn.
- Các bản cập nhật có thể được lên kế hoạch và thực hiện trong giờ ngoài giờ, điều này làm giảm sự cố cho hoạt động của thiết bị.
- Các bản cập nhật OTA bao gồm các bản vá và cải tiến bảo mật bảo vệ khỏi các lỗ hổng.
- Chức năng OTA có thể được tích hợp vào các dự án dựa trên ESP32 với các thư viện Arduinoota.
- Lập trình OTA cho phép bạn cập nhật một chương trình mới vào ESP32 mà không có bất kỳ kết nối nào với máy tính.
Bất lợi
Các Nhược điểm của ESP32 OTA bao gồm những điều sau đây.
- Hình ảnh nhà máy của bảng ESP32 không chứa khả năng OTA. Do đó, trước tiên, bạn cần tải lên phần sụn này thông qua kết nối nối tiếp trước khi bạn sử dụng các bản cập nhật OTA.
- Ngoài ra, một số mô hình ESP32 cũ hơn có giới hạn bộ nhớ, đặc biệt là các mô hình có 1MB bộ nhớ flash.
- Mỗi bản phác thảo được tải lên vào bảng ESP32 phải chứa mã cần thiết để cho phép chức năng OTA. Thiết bị không có mã này sẽ không còn có sẵn để cập nhật OTA thông qua máy chủ web.
- Nhiều bảng ESP32 hiện đại có đủ bộ nhớ, nhưng các mẫu ESP32 nhỏ hơn hoặc cũ hơn có thể đáp ứng các hạn chế thông qua OTA, đặc biệt nếu bản phác thảo được tải lên gần giới hạn bộ nhớ hiện có.
- Nếu người dùng tải lên mã không có mật khẩu, thiết bị có thể không thể truy cập được cho các bản cập nhật OTA trong tương lai, có thể yêu cầu tải lại bản phác thảo OTA cần thiết thông qua nối tiếp.
- Mặc dù người dùng có thể thêm tên người dùng và một từ bí mật cho sự an toàn, biện pháp này có thể không bảo vệ đầy đủ trang tải lên OTA khỏi truy cập trái phép nếu ai đó xác định URL cụ thể.
- Việc thực hiện không đúng mã OTA có thể dẫn đến các vấn đề tiềm năng, vì nó có thể vô hiệu hóa chức năng OTA trong tương lai.
Ứng dụng
Các ứng dụng của ESP32 OTA bao gồm những điều sau đây.
- Các ứng dụng OTA của ESP32 cho phép phần sụn của thiết bị cập nhật từ xa mà không có bất kỳ kết nối vật lý nào với thiết bị. Vì vậy, điều này chủ yếu là hữu ích cho các thiết bị IoT được cài đặt ở các vị trí không thể tiếp cận, giảm thời gian chết và chi phí bảo trì. OTA cho phép cập nhật phần mềm, sửa lỗi và cải tiến tính năng được triển khai nhanh chóng và hiệu quả.
- Các bản cập nhật OTA của ESP32 rất cần thiết trong các ứng dụng khác nhau, chủ yếu trong các hệ thống nhúng và triển khai IoT ..
- Những cập nhật này rất có ý nghĩa đối với các hệ thống tự động hóa công nghiệp Bảo trì và nâng cấp mà không cần tắt toàn bộ quá trình.
- OTA cho phép các thiết bị nhà thông minh nhận được nâng cấp phần sụn từ xa bằng cách đảm bảo các cải tiến hiệu suất và tính năng tốt nhất.
- Các bản cập nhật OTA rất có ý nghĩa để cập nhật các hệ thống chương trình cơ sở & giám sát cảm biến từ xa, bằng cách đảm bảo chúng duy trì chính xác & chức năng.
- Cập nhật OTA cung cấp một phương pháp phù hợp để xử lý và giữ các thiết bị trong bất kỳ ứng dụng IoT nào, bất cứ nơi nào truy cập từ xa là không thực tế hoặc giới hạn.
- Người dùng cập nhật khóa thông minh, camera bảo mật và hệ thống bảo mật để đảm bảo chúng vẫn an toàn và hoạt động.
- Các ngành công nghiệp sử dụng ESP32 OTA để cập nhật phần mềm và hệ thống máy móc trong các quy trình tự động hóa.
- Kỹ thuật viên cập nhật phần mềm thiết bị trong các trạm thời tiết, giám sát môi trường và các ứng dụng từ xa.
- OTA này cập nhật phần mềm trong thiết bị trang trại thông minh, hệ thống thủy lợi, v.v.
- Nó quản lý và cập nhật các thiết bị nhà thông minh từ xa trong tự động hóa nhà như khóa, hệ thống bảo mật, đèn thông minh, v.v.
Phần kết luận:
Như vậy, Cập nhật OTA ESP32 cung cấp Một phương thức thuận tiện để cập nhật phần sụn và các tệp khác không dây trên các thiết bị ESP32 bằng cách xóa các kết nối vật lý. Vì vậy, phương pháp này chủ yếu hữu ích cho việc triển khai từ xa và giảm bảo trì bằng cách cho phép sửa lỗi và cải tiến các tính năng mà không cần kết nối vật lý. Cập nhật OTA ESP32 cung cấp một kỹ thuật có giá trị để duy trì và cập nhật các thiết bị ESP32 từ xa, đơn giản hóa bảo trì và rút ngắn quá trình cập nhật. Đây là một câu hỏi cho bạn: Bảng ESP32 là gì?