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

بدء استخدام Python لـ ESP8266 و ESP32: 6 خطوات
بدء استخدام Python لـ ESP8266 و ESP32: 6 خطوات

فيديو: بدء استخدام Python لـ ESP8266 و ESP32: 6 خطوات

فيديو: بدء استخدام Python لـ ESP8266 و ESP32: 6 خطوات
فيديو: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, يوليو
Anonim
بدء استخدام Python لـ ESP8266 و ESP32
بدء استخدام Python لـ ESP8266 و ESP32

باكغراوند

تعد ESP8266 وشقيقها الأكبر الأصغر ESP32 عبارة عن شرائح Wi-Fi منخفضة التكلفة مع مكدس TCP / IP كامل وقدرة على وحدة التحكم الدقيقة. لفتت شريحة ESP8266 انتباه مجتمع المصنّعين لأول مرة في عام 2014. ومنذ ذلك الحين ، السعر المنخفض (أقل من 5 دولارات أمريكية) ، وقدرتها على Wi-Fi ، وذاكرة فلاش مدمجة بحجم 1 أو 4 ميجابايت ، ومجموعة متنوعة من التطويرات المتاحة لوحات ، جعلت من شريحة ESP واحدة من أكثر وحدات التحكم الدقيقة شيوعًا لمشروعات WiFi و IoT DIY.

يعد MicroPython تطبيقًا خفيفًا وفعالًا للغة برمجة Python الشائعة بشكل متزايد والتي تتضمن مجموعة فرعية صغيرة من مكتبة Python القياسية وتم تحسينها للتشغيل على وحدات التحكم الدقيقة.

يعد الجمع بين هذين الخيارين خيارًا مثيرًا للاهتمام لمشاريع DIY ، سواء للمبتدئين أو المستخدمين الأكثر تقدمًا.

مشروع MiPy-ESP

في عام 2015 ، بدأت مشاريعي الأولى مع ESP8266 بشريحة ESP-01 باستخدام Arudions لتشغيل أوامر AT الخاصة بالشريحة عبر الاتصال التسلسلي. بعد ذلك ، على مدار السنوات التالية ، قمت بتطبيق نواة Arduino لـ ESP8266 لبرمجة الرقائق بلغة C ++. هذا يعمل بشكل جيد ، ولكن بالنسبة لعشاق بايثون ، كان اكتشافي لتطبيق MicroPython في Python 3 خبرًا رائعًا.

مشروع MiPy-ESP عبارة عن إطار عمل مرن يطبق MicroPython لمشاريع Python IoT كاملة المكدس على وحدات التحكم الصغيرة لعائلة ESP.

تم تطوير الإطار من قبل فريق مطوري البرامج التابع للجنة الفنية LeGarage (LG-TC-SWDT-01) بهدف استبدال الكود المستند إلى C ++ الذي تم إنشاؤه بالفعل لتطبيقات وحدة التحكم الدقيقة الخاصة بنا.

يوفر المشروع ميزات أساسية مثل

  • إجراءات الاتصال بالشبكة
  • خادم ويب نقطة الوصول إلى رقاقة (للاتصال بشبكة wifi وخدمة صفحات الويب ذات الشريحة للبيانات I / O)
  • وظائف MQTT
  • التسجيل / التصحيح
  • جدولة حدث متحكم
  • إجراءات إدخال / إخراج الأجهزة

باستخدام نص برمجي مضغوط رئيسي واحد (main.py) ، كل ذلك بتكوين عام (config.py).

يعمل رمز mictocontroller هذا مع صيانة قوية لاتصالات الشريحة بشبكة WiFi ووسطاء MQTT. يمكن دمج وحدات MicroPython الحالية لمختلف الأجهزة بسهولة في النظام.

لقد أصبح إطار عمل MiPy-ESP العمود الفقري لجميع مشاريع إنترنت الأشياء للهوايات الإلكترونية التي تتضمن وحدات تحكم صغيرة لعائلة ESP. تم اختباره على العديد من لوحات عائلة ESP ، مثل لوحات NodeMCU و Wemos و Lolin.

البرنامج التعليمي التالي هو دليل لكيفية بدء استخدام ميكروكنترولر عائلة ESP و MicroPython باستخدام إطار عمل MiPy-ESP.

الخطوة 1: لوحة Wemos D1 Mini ESP8266

لوحة Wemos D1 Mini ESP8266
لوحة Wemos D1 Mini ESP8266
لوحة Wemos D1 Mini ESP8266
لوحة Wemos D1 Mini ESP8266
لوحة Wemos D1 Mini ESP8266
لوحة Wemos D1 Mini ESP8266
لوحة Wemos D1 Mini ESP8266
لوحة Wemos D1 Mini ESP8266

يعمل إطار عمل MiPy-ESP مع معظم المتحكمات الدقيقة القائمة على ESP8266.

تعتمد لوحة التطوير المصغرة Wemos D1 على شريحة ESP-8266EX. على مساحة 2.5 × 3.5 سم ، يتميز بذاكرة فلاش 4 ميجابايت ، و 11 دبوس إدخال / إخراج رقمي ، وجميع المسامير تدعم المقاطعة ، PWM ، I2C ، SPI ، إدخال تسلسلي و 1 إدخال تناظري بحد أقصى 3.3 فولت ، يمكن تشغيله على طاقة 5 فولت ، لديه اتصال micro USB ومتوافق مع اللوح. إن السعر المنخفض وصغر حجمها جعلها لوحة المرساب الكهروستاتيكي المفضلة لدي.

بالإضافة إلى ذلك ، يأتي إصدار D1 mini pro للوحة مع خيار توصيل هوائي خارجي ، مما يزيد من نطاق الاتصال بشكل كبير (نطاق +100 متر). بالإضافة إلى ذلك ، تأتي اللوحة أيضًا مع مجموعة متنوعة من لوحات التمديد خارج الصندوق ذات الحجم الصغير المماثل.

الخطوة 2: الاستعداد لـ MicroPython على شريحة ESP

الاستعداد لـ MicroPython على شريحة ESP
الاستعداد لـ MicroPython على شريحة ESP

في هذه الخطوة الأولى ، ستفعل

  • قم بتوصيل لوحة ESP بجهاز الكمبيوتر الخاص بك عبر USB
  • قم بتثبيت برنامج Esptool لوميض الشريحة
  • محو ذاكرة الرقاقة
  • قم بتفليش الشريحة باستخدام البرنامج الثابت MicroPython
  • قم بتثبيت Rshell لتمكين تفاعل سطر الأوامر مع الشريحة الخاصة بك
  • تثبيت mpy-cross (لترجمة ملفات.py إلى ملف ثنائي)

إن توصيل اللوحة بجهاز الكمبيوتر الخاص بك عبر USBBoards مع منفذ USB التسلسلي المدمج يجعل UART متاحًا لجهاز الكمبيوتر الخاص بك وهو الخيار الأسهل للبدء. بالنسبة للوحات بدون اتصال USB ، يمكن استخدام وحدة FTDI مع USB إلى المسلسل لتوصيل دبابيس GPIO للوميض المتصل بالعالم الخارجي ، ولكن هذا غير مغطى في هذا البرنامج التعليمي.

بالنسبة لـ MicroPython باستخدام كود MiPy-ESP ، فإن الحد الأدنى لمتطلبات حجم فلاش الرقاقة هو 1 ميجابايت. هناك أيضًا تصميم خاص للوحات بسعة 512 كيلو بايت ، لكن هذا لا يدعم نظام الملفات ، والذي يعتمد عليه MiPy-ESP.

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

تثبيت Esptool يمكن العثور على معلومات حول برنامج Esptool في مستودع Esptool GitHub. إذا كنت تريد استخدام Windows / Linux / OSX (MAC) ، فإن الرابط أعلاه يغطي ذلك أيضًا. يمكن تثبيت حزمة Python بواسطة

نقطة تثبيت esptool

بالنسبة لمستخدمي Linux ، يتم الاحتفاظ بحزم Esptool لكل من Debian و Ubuntu ، ويمكن أيضًا تثبيتها مع

sudo apt install esptool

باستخدام أداة Esptool ، يمكنك مسح ذاكرة فلاش ESP باستخدام الأمر

esptool.py --port / dev / ttyUSB0 erase_flash

تنزيل البرنامج الثابت MicroPyton يوجد برنامج MicroPython الثابت في ملف.bin يمكن تنزيله من موقع MicroPython على الويب.

تم اختبار الفرع الرئيسي للمشروع الحالي من الريبو وهو يعمل مع Micropython v.1.12. لضمان النجاح مع إطار عمل MiPY-ESP ، قم بتنزيل ملف "esp8266-20191220-v1.12.bin" من هذا الرابط واكتب البرنامج الثابت على الشريحة بالأمر:

esptool.py --port / dev / ttyUSB0 --baud 460800 write_flash --flash_size = اكتشاف 0 esp8266-20191220-v1.12.bin

تثبيت Rshell تتيح حزمة Rshell تفاعل سطر الأوامر مع بيئة MicroPython المثبتة على الشريحة. يمكن العثور عليها في هذا الرابط. Rshell عبارة عن غلاف بسيط يعمل على المضيف ويستخدم MicroPython raw-REPL لإرسال مقتطفات python إلى pyboard من أجل الحصول على معلومات نظام الملفات ، ونسخ الملفات من وإلى نظام ملفات MicroPython. يشير REPL إلى Read Evaluate Print Loop ، وهو الاسم الذي يطلق على موجه MicroPython التفاعلي الذي يمكنك الوصول إليه على ESP8266. يعد استخدام REPL أسهل طريقة لاختبار التعليمات البرمجية الخاصة بك وتشغيل الأوامر. قم بتثبيت Rshell بالأمر:

sudo pip تثبيت rshell

تثبيت برنامج التحويل البرمجي mpy-cross MicroPython يمكن تطبيقه مع ملفات ascii.py التي تم تحميلها على نظام ملفات الرقاقة. يعرّف MicroPython أيضًا مفهوم ملفات.mpy وهو تنسيق ملف حاوية ثنائي يحتوي على تعليمات برمجية مُجمَّعة مسبقًا ، ويمكن استيرادها مثل وحدة.py عادية. من خلال تجميع ملفات.py إلى.mpy ، ستتوفر ذاكرة RAM إضافية للتعليمة البرمجية قيد التشغيل - وهذا ضروري للحصول على وحدة أساسية عاملة في إطار عمل MiPy-ESP.

لنشر كود MiPy-ESP ، يقوم مترجم mpy-cross MicroPython بتجميع البرامج النصية.py إلى.mpy قبل تحميل الشريحة. قم بتثبيت حزمة mpy-cross من خلال الإرشادات الواردة في هذا الارتباط. بدلاً من ذلك ، يمكن تثبيت الأمر mpy-cross بواسطة أمر Python pip أو تشغيله من مسار مجلد mpy-cross إذا قمت باستنساخ مستودع MicroPython من GitHub هنا.

لديك الآن MicroPython وجميع الأدوات اللازمة مثبتة لبدء إنشاء مشروع MiPy-ESP الأول الخاص بك

الخطوة 3: بدء استخدام MiPy-ESP

الشروع في العمل مع MiPy-ESP
الشروع في العمل مع MiPy-ESP

في هذه الخطوة سوف تفعل

قم بتنزيل إطار عمل MyPy-ESP

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

استنساخ بوابة

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

الخطوة 4: بنية إطار MiPy-ESP

بنية إطار MiPy-ESP
بنية إطار MiPy-ESP

في هذه الخطوة سوف تفعل

تعرف على سير عمل رمز MiPy-ESP

هندسة كود MiPy-ESP

تم العثور على جميع وحدات إطار عمل Python في المجلد / src من مستودع أكواد MiPY-ESP. يحتوي المجلد src / core على الوحدات الأساسية التي تدخل في كل مشروع. يحتوي مجلد src / drivers على مجموعة مختارة من الوحدات النمطية لأجهزة مختلفة ليتم توصيلها بالشريحة الخاصة بك. يحتوي مجلد src / utilities على وحدات مساعدة اختيارية لتضمينها في مشروعك.

تم العثور على الملفين main.py و config.py في src / المجلد. هذه هي الملفات الرئيسية لتحريرها لبناء مشروعك:

config.py:

هذا الملف هو ملف التكوين العام لمشروعك. يحتوي على إعدادات مختلفة ، وكلها تحتوي على تعليقات وصفية في الملف.

main.py:

هذا هو البرنامج النصي الرئيسي لحلقة كود وحدة التحكم الدقيقة. يحتوي على الكود الخاص بالتطبيق في الإطار. عند تمهيد الشريحة ، يتم تشغيل main.py واستيراد جميع الوحدات المعتمدة على المشروع مع مدخلات معينة من ملف config.py. يوضح المخطط الانسيابي أعلاه تخطيط البرنامج النصي main.py.

يوضح الشكل أعلاه سير عمل main.py:

  1. عند بدء التشغيل ، يحاول الرمز توصيل الشريحة بشبكة Wi-Fi ، ويتم تخزين الشبكات المطبقة مسبقًا وكلمات المرور الخاصة بها (المشفرة على الشريحة) في ذاكرة فلاش. ويمكن توفير معرفات SSID للشبكة وكلمات المرور الخاصة بها في ملف wifi.json بالتنسيق {" SSID1 ":" كلمة المرور "،" SSID ":" كلمة المرور 2 "}. يتم تخزين الشبكات المحددة في هذا الملف وتشفير كلمات المرور وحذف الملف عند التمهيد.
  2. إذا لم يتم العثور على شبكات معروفة بالفعل ، فإن الكود يقوم بإعداد خادم ويب لنقطة الوصول (AP) يتم تعيين SSID وكلمة المرور لخادم AP للرقاقة في ملف config.py. من خلال تسجيل الدخول إلى شريحة SSID ، يتم تقديم صفحة ويب لتسجيل دخول الشريحة إلى Wi-Fi على 192.168.4.1 ، وتظهر الشبكات التي تم اكتشافها في قائمة ، أو يمكن إدخال SSID يدويًا (الشبكات المخفية) مع كلمة مرور Wi-Fi. عند الاتصال الناجح للشريحة بشبكة Wi-Fi ، يتم إيقاف تشغيل خادم AP وينتقل رمز main.py إلى خطواته التالية.
  3. في قسم الإعداد في main.py ،

    • يتم تحديد وظائف الوظائف وعمليات رد النداء (إلخ. عمليات رد نداء MQTT) والأحداث المنتظمة.
    • تم تعيين وظائف مختلفة موقوتة لتشغيل الوظائف.
    • تم إنشاء عميل وسيط MQTT
  4. ثم ينتقل الرمز إلى حلقة التحكم الصغيرة الرئيسية ،

    • التحقق باستمرار من اتصالات وسيط الشبكة و MQTT ،
    • اشتراكات MQTT ،
    • الأجهزة I / O
    • والوظائف المجدولة.
    • عند فقد اتصال الشبكة أو وسيط MQTT ، يحاول الرمز إعادة التأسيس.

الخطوة 5: إعداد كود المشروع الخاص بك

تحضير كود مشروعك
تحضير كود مشروعك
تحضير كود مشروعك
تحضير كود مشروعك

في هذه الخطوة سوف تفعل

  • تعرف على بنية ملف مستودع MiPy-ESP
  • تحضير كود مشروعك لتحميل الرقاقة

هيكل مجلد المستودع يصف الشكل أعلاه بنية مجلد المستودع ويسرد الوحدات النمطية الحالية لإطار العمل. مشروعك عبارة عن مراحل في مجلد / src. توجد وحدات إطار عمل Core MiPy-ESP في src / core ، ووحدات الأداة المساعدة الاختيارية في src / الأدوات المساعدة ووحدات الأجهزة في src / driver.

يمكن أن تذهب معظم مكتبات أجهزة MicroPython المتاحة إلى برامج التشغيل / المجلد دون أي تعديلات. يتم اختبار جميع برامج التشغيل الحالية باستخدام إطار MiPy-ESP. فيما يتعلق بالوحدات النمطية الموجودة في الأدوات المساعدة / المجلد ، ستتم إضافة المزيد بمجرد ظهورها.

التدريج لكود المشروع يجب وضع الكود الخاص بمشروعك في المجلد / src. هناك بالفعل ملفات main.py و config.py التي يمكنك تعديلها. انسخ أيضًا أدوات المشروع المطلوبة من src / utilities و src / drivers إلى src /.

في حالة رغبتك في توفير شبكات Wi-Fi وكلمات مرور معروفة للشريحة ، أضف ملف wifi.json إلى src /.

يمكن تطبيق Makefile المقدم لإعداد الملفات لنقلها إلى شريحة عن طريق تجميع ملفات.py في / src ، وتجميع الوحدات الأساسية ونقل الملفات المترجمة إلى مجلد جديد يسمى build / بواسطة الأمر

يبني

الملفات قيد الإنشاء جاهزة للتحميل إلى نظام ملفات الشرائح. افتراضيًا ، لا يتم تجميع main.py و config.py في نظام ثنائي ، من أجل الوصول السهل إليهما لفحص الرقائق المنشورة. الامر:

ينظف

يحذف البناء / المجلد ومحتوياته.

الخطوة 6: ترجمة الكود وتحميله إلى وحدة التحكم الدقيقة

تجميع وتحميل الكود إلى وحدة التحكم الدقيقة
تجميع وتحميل الكود إلى وحدة التحكم الدقيقة
تجميع وتحميل الكود إلى وحدة التحكم الدقيقة
تجميع وتحميل الكود إلى وحدة التحكم الدقيقة

في هذا القسم سوف تفعل

  • تحميل الملفات المعدة في البناء / من القسم الأخير
  • ابدأ وراقب كود التشغيل

تحميل بناء / ملفات مع Rshell

قم بتحميل جميع الملفات في دليل / build إلى شريحة ESP باستخدام Rshell. مع توصيل المتحكم الدقيق بـ USB ، من البناء / المجلد ، ابدأ Rshell بالأمر

rshell -p / dev / ttyUSB0

ثم افحص ملفات الرقائق (إن وجدت) بواسطة

ليرة سورية / pyboard

يمكن حذف جميع الملفات الموجودة على الشريحة بواسطة

rm /pyboard/*.*

انسخ جميع ملفات المشروع في البناء / إلى الشريحة:

cp *. * / pyboard

ثم ابدأ محطة Python التفاعلية بالأمر

رد

يمكنك الآن استدعاء أوامر Python أو استيراد الوحدات النمطية ومراقبة الإخراج التسلسلي للرقاقة من وحدة تسجيل MiPy-ESP.

أعد تشغيل الشريحة بالضغط على زر إعادة الضبط ، أو من سطر الأوامر

استيراد رئيسي

أو

آلة الاستيراد

وثم

machine.reset ()

اعتمادًا على إعدادات التسجيل / التصحيح في ملف تكوين المشروع ، سيعرض البديل الآن رسائل تصحيح الأخطاء من شريحة ESP عبر الاتصال التسلسلي.

نأمل أن يبدأ هذا.

موصى به: