كيفية تحديث البرامج الثابتة ESP32 عبر -AIR (OTA) باستخدام خادم Aduino IDE & Web

جرب أداة القضاء على المشاكل





في الماضي ، يتم تحديثات البرامج الثابتة في أنظمة مضمنة كانت مهمة حرجة. ولكن يتم توصيل معظم أجهزة إنترنت الأشياء والأجهزة المدمجة عبر الإنترنت لتحديث البرامج الثابتة عن بعد من قبل المطورين. تستفيد الأجهزة القادرة على الاتصال بالإنترنت من تحديث نفسها. لذلك هذا النوع من البرامج الثابتة في ESP32 يشار إلى OTA (على الهواء) ، مما يساعد على الحفاظ على الأجهزة المدمجة محدثة مع الحد الأدنى من تدخل المستخدم.  بالإضافة إلى ذلك ، يوفر الهواء الكثير من الميزات وهو تقنية فعالة من حيث التكلفة للمطورين لإجراء تحديث أجهزتهم. يستكشف هذا المقال البرامج الثابتة OTA التحديث الإجراء على مجلس تطوير ESP32.


ما هي برمجة OTA في ESP32/ ESP32 OTA؟

ESP32 OTA هي القدرة على تحميل أو تحديث برنامج جديد في عملية تطوير ESP32 عبر الإنترنت دون الاتصال بجهاز كمبيوتر. بالإضافة إلى ذلك ، يمكن لهذه العملية أيضًا تقليل الوقت المطلوب لتحديث كل وحدة ESP في الصيانة. وبالتالي ، فإنه يسمح بالتحديثات اللاسلكية عبر الإنترنت أو أنواع أخرى من الشبكات اللاسلكية.



يولي مجلس تطوير ESP32 الانتباه إلى تحديث البرامج الثابتة عن طريق تنزيله باستخدام بروتوكولات مثل HTTPS ، MQTT ، أو HTTP. بعد ذلك ، يتحقق ويومض في قسم مخصص داخل ذكرى لوحة ESP32.  تعد تحديثات OTA مهمة للأجهزة المدمجة أو أجهزة إنترنت الأشياء ، خاصةً عندما يصعب الوصول إلى الأجهزة أو في المواقع البعيدة.

ESP32 OTA الأجزاء الأساسية

يستخدم ESP32 OTA مكونات رئيسية مختلفة لتحديثات البرامج الثابتة دون توصيل الجهاز جسديًا. وبالتالي ، فإن الأجزاء الأساسية من هذا OTA تساعد في نقل التحديثات واستلامها. بالإضافة إلى ذلك ، تقوم Asyncelegantota (OR) بمكتبات ومكتبات ESP HTTPS OTA من ESPRESIF تقصير إجراء التنفيذ.



قسم البيانات من OTA

هذا القسم ضمن ذاكرة فلاش ESP32 من لوحة ESP32 يخزن ببساطة المعلومات المحدثة لـ OTA ، مثل صورة البرامج الثابتة ومكافحة لتتبع الفتحة التي تمت كتابتها مؤخرًا.

آلية الاتصال

تعتمد تحديثات OTA بشكل أساسي على بروتوكولات الاتصالات اللاسلكية مثل بلوتوث أو WiFi ، حيث يتم استخدام Bluetooth لمزيد من التحديثات الموضعية والأصغر ، ويتم استخدام WiFi بشكل شائع.

  PCBWAY

بنية خادم العميل

يبدأ العميل ، مثل تطبيق الهاتف المحمول أو الكمبيوتر الشخصي ، التحديث ويرسل البرامج الثابتة إلى خادم ESP32.

المكتبات والأطر

توفر مكتبات Asyncelegantota و ESP HTTPS OTA وظائف تم إنشاؤها مسبقًا للتعامل مع إجراء OTA وتقصير التطوير.

محمل التمهيد

يعالج محمل التمهيد هذا الانتقال إلى أحدث البرامج الثابتة بعد تحديث OTA ناجح.

أوتا آمنة

تتضمن تحديثات OTA الآمنة التحقق من صورة توقيع البرامج الثابتة لضمان سلامتها وأصوليتها.

في جوهرها ، تتضمن تحديثات ESP32 OTA مجموعة من البرامج (الأقسام والمكتبات والبرامج الثابتة) وبروتوكولات الاتصال (Wi-Fi أو Bluetooth). وبالتالي ، فإنه يقوم بتحديث البرامج الثابتة للجهاز بسلاسة دون وصول فعلي.

عمل

تتيح برمجة ESP32 OTA للبرامج الثابتة/البرامج الثابتة في ESP32 تحديثها لاسلكيًا إلى جهاز كمبيوتر دون اتصال فعلي. لذلك يمكن القيام بذلك عن طريق إرسال صورة برامج ثابتة جديدة عبر شبكة مثل Wi-Fi ، وبعد ذلك كتابتها في ذاكرة الفلاش الخاصة بـ ESP32. وبالتالي ، يتم إعادة تشغيل مجلس إدارة ESP32 وأحدث البرامج الثابتة.

تنفيذ ESP32 OTA

لتنفيذ التحديثات المفرطة في مجال التطوير ESP32 ، يجب تحميل رسم OTA الأساسي. بعد ذلك ، يتم استخدام خادم الويب لتحميل أحدث البرامج الثابتة. لذلك ، يتضمن هذا التثبيت الكامل لإجراء ESP32 OTA إعداد اتصال Wi-Fi ، وتثبيت المكتبة ، وبعد ذلك ، يتم تحميل ملف ثنائي متجمع في لوحة ESP32.

إجراء خطوة بخطوة لتنفيذ ESP32 OTA:

  • أولاً ، تحتاج إلى تثبيت حزمة لوحة ESP32 داخل Arduino IDE.
  • بعد ذلك ، قم بتضمين المكتبات المحددة وغير الأخرى اللازمة لـ ESP32.
  • يجب تحميل رسم OTA الأساسي ، والذي يحتوي عادةً على خادم ويب بشكل أساسي لتحديثات OTA.
  • افتح المتصفح واترك عنوان IP لخادم الويب الخاص بـ ESP32.
  • اختر ملف .bin في واجهة خادم الويب التي ترغب في تحميلها.
  • انقر فوق زر التحميل لبدء تحديث OTA.
  • الآن يتم توصيل ESP32 بشبكة Wi-Fi الخاصة بك.
  • سيتم إعادة تشغيل Open Aard من خلال البرامج الثابتة التي تم تحميلها حديثًا.
  • يجب استخدام مكتبة Arduinoota في Core ESP32 لتبسيط إجراء OTA.
  • يمكنك أيضًا استخدام مثال Basicota المقدم من المكتبة أو إنشاء تطبيق OTA الخاص بك.
  • الآن ، تتيح لك مكتبة Arduinoota ببساطة تحميل أحدث رسم OTA في ESP32.

استخدم خادم الويب

  • في مكتبة Arduino ESP32 ، يوفر مثال Otawebupdater واجهة ويب لتحميل البرامج الثابتة.
  • يتم تجميع الرسم لإنشاء ملف .bin ، بعد ذلك يمكن تحميله من خلال خادم الويب.
  • تتيح هذه التقنية تحديثات OTA بسيطة وأكثر سهولة.
  • بالإضافة إلى ذلك ، تأكد من أن لديك ما لا يقل عن أقسام OTA داخل لوحة ESP32.
  • استخدم تقنيات أخرى مثل Arduino IoT Cloud ، وخاصة لتحديثات OTA.
  • يطالب إجراء OTA البرامج الثابتة الحالية ضمن قسم OTA مخصص من خلال ضمان بقاء البرامج الثابتة قيد التشغيل مستقرة.

ESP32 OTA التواصل مع Arduino

الميزة الرئيسية لتكوين WiFi-الذي تم تمكينه (ESP32 & ESP8266 ) هو برمجة OTA. هذه الأجهزة ترقية البرامج الثابتة الخاصة بهم لاسلكي. باستخدام OTA ، يمكن إرسال تحديث إلى العديد من متحكمها الموجود على شبكة مماثلة. تُستخدم هذه الميزة لإرسال تحديثات لحل الأخطاء من خلال تضمين بعض الميزات إلى العديد من المتحكمين ، وصناديق الإعداد ، وأجهزة الكمبيوتر ، والهواتف المحمولة ، إلخ.

بشكل عام ، تلعب تحديثات OTA دورًا رئيسيًا في إنترنت الأشياء لتحديث الأجهزة المتصلة بالإنترنت عن بعد مع إعدادات وبرامج جديدة. سنستخدم هنا برمجة OTA مع لوحة ESP32 في Arduino IDE مع OTA Web Updater.

تتضمن المكونات المطلوبة لتواصل ESP32 OTA مع لوحة Arduino لوحة ESP32 و Arduino IDE.

  ESP32 OTA التواصل مع Arduino
 ESP32 OTA التواصل مع Arduino

رمز OTA

ويرد أدناه رمز OTA لمجلس تطوير ESP32 أدناه.

#include

#include

const char* host = 'esp32' ؛  ssid = 'xxx' ؛ كلمة المرور = 'xxxx' ؛

خادم الويب (80) ؛

/* صفحة تسجيل الدخول*/

const char* logindex =

''

'

'

'

'

'

'

'
'

'
'

'

'

'

'

'

'

'

'

'

'

'
'

'
'

'

'

'

'

'

'

'
'

'
'

'

'

'

'

'

'

'

'

'

'

'

esp32 صفحة تسجيل الدخول
'

'
'

'

اسم المستخدم:
كلمة المرور:
'

''

'' ؛

/*

* صفحة فهرس الخادم

*/

const char* serverIndex =

'' ؛

/*

* وظيفة الإعداد

*/

إعداد void (void) {

Serial.Begin (115200) ؛

// الاتصال بشبكة wifi

wifi.begin (ssid ، كلمة المرور) ؛

serial.println ('') ؛

// انتظر الاتصال

بينما (wifi.status ()! = wl_connected) {

التأخير (500) ؛

serial.print ('.') ؛

}

serial.println ('') ؛

serial.print ('متصل بـ') ؛

Serial.println (SSID) ؛

serial.print ('عنوان IP:') ؛

serial.println (wifi.localip ()) ؛

/*استخدم MDNs لدقة اسم المضيف*/

if (! mdns.begin (host)) {// c2e2f8f35ba56eedbbc296b8125c387d1182e239

serial.println ('خطأ في إعداد MDNS المستجيب!') ؛

بينما (1) {

التأخير (1000) ؛

}

}

serial.println ('بدأ المستجيب MDNS') ؛

/ *صفحة فهرس الإرجاع التي يتم تخزينها في ServerIndex */

server.on ('/' ، http_get ، [] () {

server.sendheader ('الاتصال' ، 'Close') ؛

server.send (200 ، 'text/html' ، loginIndex) ؛

}) ؛

server.on ('/serverIndex' ، http_get ، [] () {

server.sendheader ('الاتصال' ، 'Close') ؛

server.send (200 ، 'text/html' ، serverIndex) ؛

}) ؛

/ *معالجة ملف البرنامج الثابت */

server.on ('/update' ، http_post ، [] () {

server.sendheader ('الاتصال' ، 'Close') ؛

server.send (200 ، 'text/plain' ، (update.haserror ())؟ 'fail': 'ok') ؛

esp.restart () ؛

} {

httpupload & upload = server.upload () ؛

if (expload.status == upload_file_start) {

serial.printf ('التحديث: ٪ s \ n' ، expload.filename.c_str ()) ؛

if (! update.begin (update_size_unknown)) {// ابدأ بحجم الحد الأقصى المتاح

update.printerror (Serial) ؛

}

} آخر إذا (epload.status == upload_file_write) {

/* وميض البرامج الثابتة إلى ESP*/

if (update.write (expload.buf ، upload.currentsize)! = epload.currentsize) {

update.printerror (Serial) ؛

}

} آخر إذا (epload.status == upload_file_end) {

if (update.end (true)) {// true لتعيين الحجم على التقدم الحالي

serial.printf ('تحديث النجاح: ٪ u \ nrebooting ... \ n' ، expload.totalsize) ؛

} آخر {

update.printerror (Serial) ؛

}}}

server.begin () ؛

}

حلقة باطلة (void) {

server.handleClient () ؛

التأخير (1) ؛

}

البرمجة OTA العمل

لاستخدام ميزة برمجة OTA ، يجب تحميل رسم من خلال المنفذ التسلسلي. يتضمن هذا المخطط رمز HTML لعمل محدثات الويب OTA. في وقت لاحق ، يمكنك بسهولة تحميل الكود باستخدام المتصفح. بمجرد تحميل الرمز من خلال منفذ تسلسلي ، سيتم إنشاء خادم ويب حيث يمكنك تحديد وتحميل رسم جديد من خلال متصفح الويب.

قم بتوصيل لوحة ESP32 بالكمبيوتر المحمول لتحميل الكود الأساسي ، ثم افتح Arduino IDE واختر نوع اللوحة كـ ESP32 Dev Kit واختر المنفذ التسلسلي الصحيح.

قم بتعديل اسم Wi-Fi وكلمة المرور داخل الكود الأصلي.

يجب تحميل رمز OTA على لوحة ESP32 الخاصة بك. بمجرد تحميل الكود بنجاح ، افتح الشاشة التسلسلية. بعد ذلك ، يجب تغيير معدل باود 115200 على الشاشة التسلسلية. اضغط على زر إعادة الضبط أعلى وحدة ESP32 ، ويجب عليه طباعة عنوان IP للوحة ESP32.

افتح المتصفح الافتراضي على لصق عنوان IP ESP32. لذلك يجب أن تفتح صفحة خادم الويب لـ OTA. هنا اسم المستخدم وكلمة المرور افتراضيين هي المسؤول. الآن ، أدخل تفاصيل تسجيل الدخول ، انقر فوق صفحة تسجيل الدخول ، ثم سيتم فتح علامة تبويب جديدة لتحميل الرمز.

المزايا

تتضمن مزايا ESP32 OTA ما يلي.

  • يتيح هذا النهج المركزي تحديثًا واحدًا للانتشار في مختلف ESP32s على شبكة مماثلة.
  • يسمح OTA بترقيات البرامج الثابتة عن بُعد دون استخدام الوصول المادي إلى لوحة التطوير لجعلها مثالية لنشر إنترنت الأشياء.
  • يزيل OTA متطلبات الاتصالات المادية لتحديث لوحة ESP32 عن طريق تبسيط إجراء التحديث ، خاصة بالنسبة للأجهزة التي يتعذر الوصول إليها أو عن بُعد.
  • يمكن تحقيق التحديثات عن بُعد ، مما يقلل من الوقت الذي يقضيه في الحماية والتشغيل.
  • يرسل مصدر واحد تحديثات إلى العديد من ESP32s على شبكة مماثلة وتبسيط إجراء التحديث للنشر الضخمة.
  • يسمح OTA بالتحديثات المتزامنة لعدة أجهزة من خلال جعلها فعالة للغاية للمشاريع واسعة النطاق.
  • يمكن تخطيط التحديثات وتنفيذها في ساعات خارج أوقات الذروة ، مما يقلل من المتاعب في تشغيل الجهاز.
  • تشمل تحديثات OTA تصحيحات الأمان والتحسينات التي تحمي من نقاط الضعف.
  • يمكن دمج وظائف OTA في مشاريع تعتمد على ESP32 مع مكتبات Arduinoota.
  • تتيح لك برمجة OTA تحديث برنامج جديد في ESP32 دون أي اتصال بالكمبيوتر.

عيوب

ال عيوب ESP32 OTA تشمل ما يلي.

  • لا تحتوي صورة المصنع للوحة ESP32 على قدرة OTA. وبالتالي ، أولاً ، تحتاج إلى تحميل هذه البرامج الثابتة من خلال اتصال متسلسل قبل استخدام تحديثات OTA.
  • بالإضافة إلى ذلك ، تحتوي بعض نماذج ESP32 الأقدم على قيود على الذاكرة ، وخاصة تلك التي لديها 1 ميغابايت من ذاكرة الفلاش.
  • يجب أن يحتوي كل رسم تم تحميله في لوحة ESP32 على الكود المطلوب للسماح بوظائف OTA. لن يكون الجهاز بدون هذا الرمز متاحًا بعد الآن لتحديثات OTA من خلال خادم الويب.
  • تحتوي العديد من لوحات ESP32 الحديثة على ذاكرة كافية ، ولكن قد تفي نماذج ESP32 الأصغر أو الأقدم بالقيود من خلال OTA ، خاصةً إذا كان المخطط المحمّل بالقرب من حد الذاكرة الموجود.
  • إذا كان المستخدمون تحميل رمز بدون كلمة مرور ، فقد يصبح الجهاز غير قابل للوصول إلى تحديثات OTA المستقبلية ، وربما يتطلب إعادة تحميل رسم OTA الضروري عبر المسلسل.
  • على الرغم من أنه يمكن للمستخدمين إضافة اسم مستخدم وكلمة سرية للسلامة ، إلا أن هذا التدبير قد لا يحمي تمامًا صفحة تحميل OTA من الوصول غير المصرح به إذا كان شخص ما يحدد عنوان URL المحدد.
  • يمكن أن يؤدي التنفيذ غير السليم لرمز OTA إلى مشكلات محتملة ، لأنه قد يعطل وظائف OTA المستقبلية.

التطبيقات

تتضمن تطبيقات ESP32 OTA ما يلي.

  • تسمح تطبيقات ESP32 OTA للبرامج الثابتة للجهاز بالتحديث عن بُعد دون أي اتصال فعلي بالجهاز. لذلك هذا مفيد بشكل أساسي لأجهزة إنترنت الأشياء المثبتة في مواقع لا يمكن الوصول إليها ، مما يقلل من تكاليف التوقف والصيانة. يسمح OTA بتحديثات البرامج وإصلاحات الأخطاء وتحسينات الميزات بسرعة وكفاءة.
  • تعد تحديثات ESP32 OTA ضرورية في مختلف التطبيقات ، وخاصة في الأنظمة المضمنة ونشر إنترنت الأشياء ..
  • تعد هذه التحديثات مهمة لصيانة أنظمة الأتمتة الصناعية وترقيتها دون إيقاف العملية برمتها.
  • يسمح OTA للأجهزة المنزلية الذكية بتلقي ترقيات البرامج الثابتة عن بُعد من خلال ضمان أفضل أداء للأداء والميزات.
  • تعد تحديثات OTA مهمة لتحديث أنظمة البرامج الثابتة والمراقبة الخاصة بأجهزة الاستشعار عن بُعد ، من خلال ضمان أن تبقى دقيقة وعملية.
  • يوفر UTA Update طريقة مناسبة للتعامل مع الأجهزة والحفاظ عليها في أي تطبيق إنترنت الأشياء ، أينما كان الوصول عن بُعد غير عملي أو محدود.
  • يقوم المستخدمون بتحديث الأقفال الذكية وكاميرات الأمان وأنظمة الأمان لضمان بقائها آمنة وعملية.
  • توظف الصناعات ESP32 OTA لتحديث البرامج وأنظمة الآلات في عمليات التشغيل الآلي.
  • يقوم الفنيون بتحديث برامج الجهاز في محطات الطقس والمراقبة البيئية والتطبيقات عن بُعد.
  • يقوم برنامج OTA بتحديث البرنامج في المعدات الزراعية الذكية وأنظمة الري وما إلى ذلك.
  • إنه يدير وتحديث الأجهزة المنزلية الذكية عن بعد في أتمتة المنزل مثل الأقفال وأنظمة الأمان والأضواء الذكية ، إلخ.

خاتمة:

هكذا، توفر تحديثات ESP32 OTA طريقة مريحة لتحديث البرامج الثابتة والملفات الأخرى لاسلكيًا على أجهزة ESP32 عن طريق إزالة الاتصالات الفعلية. لذا فإن هذه الطريقة مفيدة بشكل أساسي للنشر عن بُعد وتقلل من الصيانة من خلال السماح بإصلاحات الأخطاء وتحسينات الميزات دون أي اتصال مادي. يوفر تحديث ESP32 OTA تقنية قيمة للحفاظ على أجهزة ESP32 وتحديثها عن بُعد ، وتبسيط الصيانة ، وتقصير عملية التحديث. هذا سؤال لك: ما هو لوحة ESP32؟