جدول المحتويات:

استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO: 7 خطوات
استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO: 7 خطوات

فيديو: استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO: 7 خطوات

فيديو: استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO: 7 خطوات
فيديو: تثبيت البرامج الثابتة Multi-PAN (RCP) مع Zigbee و Thread على عصي Sonoff ZBDongle-E و ZB-GW04 2024, يوليو
Anonim
استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO
استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO
استعادة أو ترقية البرامج الثابتة على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO
استعادة أو ترقية البرامج الثابتة على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO
استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO
استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO
استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO
استعادة أو ترقية البرنامج الثابت على الوحدة النمطية ESP8266 (ESP-01) باستخدام Arduino UNO

جاءت الوحدة النمطية ESP-01 التي استخدمتها في الأصل مع برنامج ثابت أقدم من AI Thinker ، مما يحد من قدراتها نظرًا لأن العديد من أوامر AT المفيدة غير مدعومة.

من المستحسن عمومًا ترقية البرنامج الثابت الخاص بك لإصلاح الأخطاء وأيضًا اعتمادًا على الوظائف المطلوبة من وحدة ESP ، قد تكون هناك حاجة إلى مجموعة كاملة من أوامر AT المدعومة. يشرح هذا البرنامج التعليمي أيضًا كيفية استعادة أو تحديث برنامج Espressif الثابت الأصلي إذا حدث فوضى في برنامج ESP الثابت ، على سبيل المثال ، من خلال بعض أوامر AT الخاطئة. هذا ما حدث عندما حاولت تغيير معدل الباود الافتراضي من 115200 إلى 9600. لقد استخدمت الأمر التالي (بناءً على بحث سريع في Google):

في + IPR = 9600

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

تحذير: بناءً على تجربتي ، أنصح بشدة بعدم استخدام الأمر AT + IPR لتغيير معدل البث بالباود الخاص بك لأنه سيتطلب منك على الأرجح إعادة تحديث البرامج الثابتة الخاصة بك. ومع ذلك ، هناك العديد من المتغيرات المختلفة لوحدة ESP-01 ذات حجم فلاش مختلف وإصدار البرامج الثابتة للمصنع ، لذلك قد تختلف تجربتك.

لا تتوافق وحدة ESP-01 مع 5 فولت وتتطلب 3.3 فولت لتشغيلها ولكن أيضًا للعمل بشكل صحيح على المستوى المنطقي. للتواصل مع الكمبيوتر ، تحتاج الوحدة أيضًا إلى محول USB إلى محول تسلسلي. لذلك ، بدلاً من استخدام محول الجهد ومحول USB إلى محول تسلسلي ، قررت اختيار حل أبسط. نظرًا لأن لدي بالفعل Arduino UNO ، فقد استخدمت الأخير لتشغيل وحدة ESP-01 وإنشاء اتصال بين ESP-01 والكمبيوتر ، حيث تعمل بشكل فعال كجسر تسلسلي.

اللوازم

  1. وحدة ESP-01
  2. Arduino UNO (مع كابل USB)
  3. أسلاك العبور دوبونت
  4. اللوح

الخطوة 1: توصيلات الأسلاك

وصلات الأسلاك
وصلات الأسلاك
وصلات الأسلاك
وصلات الأسلاك
وصلات الأسلاك
وصلات الأسلاك

يمكن إجراء التوصيلات السلكية مع وحدة Arduino UNO و ESP-01 بسهولة باستخدام كبلات التوصيل ولوح التجارب. تم وصف الاتصالات بين لوحة تطوير Arduino ووحدة ESP في الجدول. لا يتم عكس اتصالات RX و TX في هذه الحالة ، نظرًا لأن الاتصال لا يحدث بين وحدة Arduino و ESP ولكن بين ESP والكمبيوتر. لذلك ، في هذه الحالة ، يتم استخدام لوحة Arduino UNO كجسر تسلسلي عبر محول USB الموجود على متنها إلى محول تسلسلي.

يجب أن يتم توصيل دبابيس RX بين لوحة Arduino ووحدة ESP من خلال مقسم الجهد ، نظرًا لأن ESP-01 يعمل على مستوى المنطق 3.3 فولت ويمكن أن يؤدي تلقي مستوى منطق 5 فولت من Arduino UNO إلى إتلاف وحدة ESP. يمكنك بناء مقسم جهد بسيط 3.3 فولت باستخدام مقاومين فقط كما هو موضح في الشكل. اختياريًا ، يمكنك استخدام محول المستوى المنطقي.

تحذير: بالنسبة للإعداد الخاص بي ، قمت فقط بتوصيل دبابيس RX مباشرة (غير مستحسن!) وعمل كل شيء ، ولكن إذا قررت التخلي عن تحويل مستوى المنطق ، فتابع على مسؤوليتك الخاصة!

لإنشاء اتصال أرضي مشترك ، يتم توصيل دبوس Arduino UNO الأرضي بوحدة ESP.

يتم استخدام Arduino UNO لتوفير طاقة 3.3 فولت مباشرة إلى دبوس VCC الخاص بوحدة ESP. قم بتوصيل دبوس 3.3 فولت باللوحة باستخدام سلك توصيل ، حيث سيتم استخدام 3.3 فولت ليس فقط من أجل دبوس VCC الخاص بـ ESP ولكن أيضًا دبوس CH_PD الخاص بـ ESP لتمكين شريحة ESP.

يتم توصيل دبوس RESET الموجود على Arduino UNO بالأرض لتجاوز أي كود تم تحميله عبر Arduino بحيث يتم إرسال الرمز بدلاً من ذلك من الكمبيوتر إلى ESP-01.

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

الخطوة 2: تحقق من إصدار البرنامج الثابت

تحقق من إصدار البرنامج الثابت
تحقق من إصدار البرنامج الثابت

للعثور على إصدار البرنامج الثابت ESP-01 ، في Arduino IDE Serial Monitor ، اكتب:

AT + GMR

ملاحظة: يجب كتابة جميع أوامر AT بأحرف كبيرة بدون مسافات.

فيما يلي الإخراج التسلسلي لـ ESP-01 الخاص بي (قد لا تعرض وحدة ESP الخاصة بك نفس المعلومات تمامًا لأنها تعتمد على الطراز وتاريخ الإصدار المحددين):

AT + GMR

إصدار AT: 0.25.0.0 (5 يونيو 2015 16:27:16) إصدار SDK: 1.1.1 Ai-Thinker Technology Co. Ltd. 23 يونيو 2015 23:23:50 موافق

الآن ، للترقية إلى أحدث البرامج الثابتة Espressif ESP8266EX الرسمية ، انتقل إلى قسم الموارد في موقعها على الويب:

ملاحظة: قد لا تتوافق جميع قائمة البرامج الثابتة المتوفرة مع طراز ESP-01 الخاص بك. تحقق من قسم استكشاف الأخطاء وإصلاحها في نهاية هذا البرنامج التعليمي لمزيد من المعلومات.

الخطوة 3: تحضير الإعداد: قبل وميض البرنامج الثابت

تحضير الإعداد: قبل وميض البرنامج الثابت
تحضير الإعداد: قبل وميض البرنامج الثابت

الآن ، سنقوم بإعداد Arduino UNO لإجراء وميض البرنامج الثابت ESP-01.

تأكد من فصل سلك Arduino RESET عن الأرض. أيضًا ، يجب فصل أسلاك TX و RX من Arduino UNO من وحدة ESP-01.

افتح Arduino IDE ومن القائمة العلوية ، انتقل إلى File> Examples> 01. Basics> BareMinimum. قم بتحميل المخطط على Arduino UNO. سيضمن هذا المخطط الفارغ عدم حدوث أي تداخل في الاتصال مع وحدة ESP.

أعد توصيل كابلات RX و TX بين UNO و ESP-01. أيضًا ، قم بتوصيل دبوس RESET الخاص بـ UNO بالأرض.

يرمز الدبوس CH_PD أو CH_EN إلى "Chip Power-Down" أو "Chip Enable" ويجب سحبه عاليًا أو توصيله بـ 3.3 V لتمكين شريحة ESP.

يلزم كبلان توصيل إضافيان لمنافذ ESP التالية: GPIO_0 و RESET.

لا يتم استخدام GPIO_2 وتركه مفصول.

يجب ضبط ESP-01 في وضع البرمجة بحيث يمكن تحميل الرمز إليه. لكن ESP-01 لا يحتوي على الأجهزة الإضافية اللازمة على متنه لتحقيق ذلك بشكل مباشر ، لذلك يجب توصيله جميعًا بشكل منفصل. لاستخدامي الشخصي ، لم أزعج عناء استخدام المفاتيح ، ولكن بدلاً من ذلك ، استخدمت ببساطة كبلتي توصيل من الذكور والإناث متصلين بوحدة GPIO_0 و RESET للوحدة النمطية ESP-01 وقمت بتوصيلهما بمسامير الأرضية المشتركة للوحة توصيل من أرض Arduino UNO.

قبل بدء إجراء الوميض ، يتم توصيل GPIO_0 بالأرضي لإجراء الوميض بالكامل لتمكين وضع البرمجة.

يتم توصيل دبوس RESET بالأرض لمدة ثانية ثم يتم إزالته. هذا يسمح بتحميل البرامج الثابتة الجديدة.

الخطوة 4: تنزيل أداة التفليش والبرامج الثابتة

تنزيل أداة التفليش والبرامج الثابتة
تنزيل أداة التفليش والبرامج الثابتة

البرامج الثابتة المستخدمة هي من Espressif وهي الشركة المصنعة الأصلية لشريحة ESP8266.

انتقل إلى: https://www.espressif.com/en/products/hardware/esp8266ex/resources للوصول إلى الأدوات الرسمية وملفات AT الثابتة.

ضمن علامة التبويب "أدوات" ، قم بتنزيل Flash Download Tools (ESP8266 & ESP32) ، أحدثها حاليًا هو V3.6.8.

ضمن علامة التبويب "AT" ، قم بتنزيل أحدث البرامج الثابتة AT المتوافقة ، وهي ESP8266 AT Bin V1.6.2 لطراز ESP-01 الخاص بي. يعتمد ذلك على طراز ESP-01 حيث يمكن أن يكون له حجم ذاكرة فلاش مختلف. سوف تجد المزيد من المعلومات حول هذا في قسم المعلومات المكتشفة في برنامج Flash Download Tools بعد النقر فوق START لبدء إجراء الوميض. لذلك ، إذا لم تكن متأكدًا من حجم الفلاش أو ملفات البرامج الثابتة التي يجب تحديدها ، فما عليك سوى تشغيل البرنامج للحصول على المعلومات الصحيحة حول وحدة ESP الخاصة بك.

بعد الوميض ، يمكنك استخدام أوامر AT لاختبار ESP-01 والعمل معه. قم بتنزيل مجموعة تعليمات ESP8266 AT الرسمية:

الخطوة 5: إجراء التفليش

إجراء وامض
إجراء وامض
إجراء وامض
إجراء وامض
إجراء وامض
إجراء وامض
إجراء وامض
إجراء وامض

قم باستخراج ملف Flash Download Tools المضغوط وافتح ملف exe. تأكد من تشغيله كمسؤول إذا كنت تستخدم Windows. سيتم فتح نافذة DOS أولاً ، متبوعة بنافذة منبثقة. حدد أداة تنزيل ESP8266. سيؤدي هذا إلى فتح نافذة بها العديد من الخيارات القابلة للتكوين.

في هذه المرحلة ، راجع لقطة الشاشة لترى بالضبط الخيارات التي يجب تحديدها وما يجب كتابته في مربعات الشفرة السداسية بجوار كل ملف من ملفات البرامج الثابتة المحددة.

ملاحظة: حدد ملفات البرامج الثابتة بنفس الترتيب حيث يتم إجراء الفلاش بالتتابع. يجب تحديد ملف blank.bin ثلاث مرات كما هو موضح في لقطة شاشة مجموعة تعليمات AT.

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

ثم ، فقط اضغط على زر START وشاهد السحر يحدث. سيعرض نص الزر SYNC وسيعرض قسم المعلومات المكتشفة مواصفات وحدة ESP الخاصة بك. بعد ذلك ، سيظهر النص DOWNLOAD وسيتم تنشيط شريط التقدم أثناء تحميل ملفات البرامج الثابتة على ذاكرة فلاش ESP. بعد الانتهاء من إجراء وميض البرنامج الثابت ، سترى: FINISH.

أغلق برنامج Flash Download Tools. يعد ذلك ضروريًا لتحرير المنفذ التسلسلي للسماح لـ Arduino IDE Serial Monitor بالسيطرة.

افصل دبوس ESP GPIO_0 من التوصيل الأرضي. سيؤدي هذا إلى تعطيل وضع البرمجة.

قم بتوصيل RESET بالأرض لمدة ثانية واحدة ثم افصلها. سيؤدي هذا إلى إعادة تعيين الوحدة.

افتح Arduino IDE. من القائمة العلوية ، حدد أدوات> منفذ> حدد منفذ COM الصحيح. افتح Serial Monitor واختر "كل من NL و CR" وحدد معدل البث بالباود 115200 وهو المعدل الافتراضي.

نوع:

في

إذا تم إجراء الوميض بشكل صحيح ، فستكون الاستجابة:

نعم

للتحقق من البرنامج الثابت الجديد ، اكتب:

AT + GMR

فيما يلي إخراج Serial Monitor لجهاز ESP-01 الخاص بي:

AT + GMR

إصدار AT: 1.6.2.0 (13 أبريل 2018 11:10:59) إصدار SDK: 2.2.1 (6ab97e9) وقت التجميع: 7 يونيو 2018 19:34:26 إصدار Bin (Wroom 02): 1.6.2 موافق

الخطوة 6: تغيير معدل الباود بشكل دائم

تغيير معدل الباود بشكل دائم
تغيير معدل الباود بشكل دائم

هذا الجزء اختياري. معدل الباود الافتراضي هو 115200 ولكن إذا كنت تريد تغييره إلى سرعة أخرى للباود ، فيمكنك ببساطة كتابة الأمر التالي في Arduino Serial Monitor.

على سبيل المثال ، إذا كنت تريد التغيير إلى 9600 معدل باود / 8 بتات بيانات / 1 بت توقف / لا يوجد بت تماثل / لا يوجد تحكم في التدفق.

اكتب في:

AT + UART_DEF = 9600، 8، 1، 0، 0

يجب أن تكون الاستجابة:

نعم

يغير الأمر أعلاه معدل الباود بشكل دائم إلى 9600 ولكن يمكنك اختيار أي من سرعات الباود القياسية.

الخطوة 7: استكشاف الأخطاء وإصلاحها

استكشاف الأخطاء وإصلاحها
استكشاف الأخطاء وإصلاحها
استكشاف الأخطاء وإصلاحها
استكشاف الأخطاء وإصلاحها

إذا كان هناك أي شذوذ بعد الوميض الناجح للبرنامج الثابت ، على سبيل المثال ، في Serial Monitor ، بعد تحديد معدل البث بالباود الافتراضي 115200 واكتب: AT ولكن لا ترى أي استجابة أو إذا قمت بكتابة AT + GMR وتلقي بعضًا آخر نوع من المعلومات بخلاف معلومات إصدار البرنامج الثابت ، فربما تكون قد تومض البرنامج الثابت الخاطئ. في هذه الحالة ، في برنامج Flash Download Tools ، بعد الضغط على زر START لبدء إجراء وميض البرنامج الثابت ، يقرأ زر الحالة الأخضر SYNC وهذه هي المرحلة التي يتم فيها استخراج معلومات وحدة ESP وإتاحتها ضمن DETECTED INFO. هذه المعلومات مهمة لتحديد البرامج الثابتة الصحيحة والملفات الصحيحة للفلاش.

ما يلي هو لوحدة ESP-01 الخاصة بي:

بائع الفلاش:

E0h: N / A flash devID: 4014h QUAD ؛ 8Mbit Crystal: 26 Mhz

ستعتمد المعلومات التي تم اكتشافها على طراز ESP-01. لكن هذا سيسمح لك باستنتاج حجم الفلاش الصحيح. في ESP الخاص بي ، يبلغ 8 ميجابت أي ما يعادل 1 ميجابايت. لذلك ، هذا يعني أنه يجب علي اختيار 512 كيلو بايت + 512 كيلو بايت من ملفات البرامج الثابتة. وهذا يعني أيضًا أن البرامج الثابتة 1.7.0 أو 1.7.1 لن تعمل بشكل صحيح لوحدة ESP الخاصة بي ، والتي أكدتها أيضًا عن طريق وميض هذه البرامج الثابتة والاختبار. أيضًا ، في وصف البرامج الثابتة 1.7.0 و 1.7.1 على موقع موارد Espressif الرسمي ، يتم سرد المعلومات التالية: "مقيد بحجم ملف AT bin ، يتم دعم" 1024 + 1024 خريطة فلاش فقط "بواسطة إفتراضي." 1024 + 1024 يعني أنه مخصص لوحدة ESP بحجم فلاش إجمالي يبلغ 2048 كيلوبايت أو 2 ميجابايت.

ملاحظة: في حال كنت تتساءل ، يمكنك الرجوع إلى إصدار أقدم أو الترقية بين إصدارات البرامج الثابتة المختلفة دون أي قيود. إذا حدث خطأ ما ، يمكنك فقط وميض مرة أخرى بمعلمات مختلفة أو تجربة برنامج ثابت مختلف.

موصى به: