- ما هو MicroPython؟
- لماذا MicroPython لـ NodeMCU؟
- ما هو ESP8266 (NodeMCU)؟
- الأجهزة المستخدمة
- تثبيت البرنامج الثابت MicroPython لـ ESP8266
- التواصل مع NodeMCU مع PuTTY
- تحميل رمز وميض LED مبني على Python باستخدام Ampy
- MicroPython على ESP8266: الحصول على درجة الحرارة والرطوبة باستخدام DHT22
بالنسبة للمبتدئين المهتمين ببرمجة المتحكمات الدقيقة التي تدعم Wi-Fi مثل ESP8266 ، فإن فهم بيئة برمجة ESP-IDF أو Arduino IDE يمكن أن يكون مهمة شاقة ، تتطلب البنية الخفية للغات C و C ++ مزيدًا من المعرفة بعلوم الكمبيوتر وهي لماذا لا تكون هذه اللغات دائمًا مناسبة للمبتدئين ، لذلك في هذه المقالة ، سوف نتعلم إعداد وبرمجة ESP8266 باستخدام MicroPython ، وأخيرًا ، سنحصل على بيانات درجة الحرارة والرطوبة من مستشعر درجة الحرارة والرطوبة DHT22 المفضل لدينا. في السابق ، قمنا أيضًا بعمل برنامج تعليمي حول كيفية برمجة ESP32 باستخدام Micro Python ، يمكنك أيضًا التحقق من ذلك إذا كنت مهتمًا.
ما هو MicroPython؟
يمكننا القول إن MicroPython هو نسخة مكعبة من Python ، مصممة للعمل مع وحدات التحكم الدقيقة والأنظمة المدمجة. تشبه عملية بناء الجملة والتشفير في MicroPython لغة الثعبان. لذا ، إذا كنت تعرف لغة python بالفعل ، فأنت تعرف بالفعل كيفية كتابة التعليمات البرمجية باستخدام MicroPython. إذا كنت من محبي بايثون ، يمكنك مراجعة هذه المقالة.
تم تطوير MicroPython في المملكة المتحدة ، من قبل فريق بقيادة Damion jones ، وأطلقوا Kickstarter أثناء العودة ، حيث أطلقوا مجموعة معينة من لوحات التطوير التي من شأنها تشغيل البرامج الثابتة ، والتي تسمح لك بتشغيل MicroPython فوقها ، تم الآن نقل البرامج الثابتة للتشغيل على ESP8266 ، والتي ستتعلمها في هذه المقالة.
لماذا MicroPython لـ NodeMCU؟
Python هي واحدة من لغات البرمجة الأكثر استخدامًا وسهلة التعلم حتى الآن. لذلك ، مع إدخال MicroPython ، أصبحت برمجة المتحكمات الدقيقة القائمة على الأجهزة سهلة للغاية. إذا لم تكن قد قمت ببرمجة متحكم دقيق من قبل وتريد البدء في تعلم البرمجة ، فإن MicroPython هي بداية جيدة.
يستخدم MicroPython إصدارًا مجردًا من مكتبات Python القياسية ، لذلك لا تتوفر جميع المكتبات القياسية. ولكن ، MicroPython يتضمن وحدات بسيطة وسهلة الاستخدام للتفاعل مع الأجهزة مما يعني أنه بمساعدة MicroPython ، أصبحت القراءة والكتابة في سجل GPIO أسهل بكثير.
الهدف النهائي لـ MicroPython هو جعل متحكمات البرمجة بسيطة قدر الإمكان ، بحيث يمكن لأي شخص استخدامها. مع MicroPython استيراد المكتبات وكتابة التعليمات البرمجية أصبح أمرًا سهلاً ، فالشفرة الموضحة أدناه هي مثال بسيط يومض مؤشر LED الموجود على متن لوحة NodeMCU ، وسنناقش الكود بالتفصيل بعد المقالة.
من استيراد الجهاز دبوس من وقت استيراد سكون LED = دبوس (2 ، Pin.OUT) بينما صحيح: LED.value (ليس LED.value ()) سكون (0.5)
ما هو ESP8266 (NodeMCU)؟
ESP8266 عبارة عن وحدة Wi-Fi منخفضة التكلفة مصممة للتطبيقات ذات الصلة بإنترنت الأشياء (IoT).
يأتي مزودًا بدبابيس إدخال وإخراج للأغراض العامة (GPIOs) كما أنه يدعم مجموعة متنوعة من البروتوكولات الشائعة الاستخدام مثل SPI و I2C و UART والمزيد. لكن أروع ميزة لهذا المتحكم الدقيق هي أنه يحتوي على شبكة Wi-Fi مدمجة. باستخدامه ، يمكننا الاتصال بأي شبكة Wi-Fi بسرعة 2.4 جيجا هرتز بسهولة بالغة.
الآن الأساسيات بعيدة عن الطريق يمكننا الانتقال إلى الجزء العملي حيث سنعرض لك الأجهزة المطلوبة وعملية تثبيت MicroPython على ESP8266 IC.
الأجهزة المستخدمة
قائمة المواد المستخدمة
- 1 × اللوح
- 1 × ESP8266 (NodeMCU)
- 1 × DHT22 (مستشعر درجة الحرارة والرطوبة)
- 1 × 3 مم LED (الصمام الثنائي الباعث للضوء)
- 1 × 1 كيلو المقاوم
- 5 × سلك توصيل
تثبيت البرنامج الثابت MicroPython لـ ESP8266
توجد طريقتان لتثبيت البرنامج الثابت MicroPython على ESP8266 في هذه المقالة. سنتحدث عن كلاهما ، لكن أولاً ، نحتاج إلى تنزيله.
تنزيل البرنامج الثابت MicroPython لـ ESP8266:
قبل أن نقوم بتوصيل لوحة NodeMCU (ESP8266) بجهاز الكمبيوتر الخاص بنا ، نحتاج إلى تنزيل أحدث إصدار من MicroPython بعد ذلك يمكننا تثبيت البرنامج الثابت على NodeMCU ، يمكنك تنزيله من صفحة تنزيل Micropython الرسمية
تثبيت البرنامج الثابت MicroPython على ESP8266:
قبل أن نتمكن من تثبيت البرنامج الثابت على ESP8266 ، نحتاج إلى التأكد من أن لدينا محرك الأقراص الصحيح لمحول USB إلى Serial Converter ، ومعظم لوحة NodeMCU تستخدم CP2102 USB لتحويل UART IC ولهذا السبب نحتاج إلى تنزيل وتثبيت برنامج تشغيل لمحول CP2102 USB إلى UART ، بمجرد تنزيل محرك الأقراص وتثبيته ، نحتاج إلى تنزيل أداة esptool ، وهي أداة تعتمد على Python مصممة لقراءة وكتابة البرامج الثابتة على ESP8266.
أسهل طريقة للحصول على Python هي عبر متجر Microsoft ، ومن هناك تحتاج إلى تنزيل وتثبيت نسخة من Python. بمجرد تثبيت Python ، يمكننا استخدام الأمر pip3 install esptool لتثبيت esptool. ستبدو العملية مثل الصورة أدناه.
بمجرد التثبيت ، تحقق لمعرفة ما إذا كنت تصل إلى esptool من محطة الأوامر.
للقيام بذلك ، ما عليك سوى تشغيل الأمر ، إصدار esptool.py إذا ظهرت لك نافذة مثل الصورة أدناه ، فقد قمت بتثبيت أداة esptool بنجاح على جهاز الكمبيوتر الذي يعمل بنظام Windows.
وإذا كنت تواجه مشكلة في الوصول إلى أداة esptool من نافذة الأوامر ، فحاول إضافة مسار التثبيت الكامل إلى متغير بيئة windows.
العثور على المنفذ المخصص لمجلس NodeMCU:
نحتاج الآن إلى معرفة المنفذ المخصص للوحة NodeMCU ، للقيام بذلك ، ما عليك سوى الانتقال إلى نافذة مدير الجهاز والبحث عن خيار يسمى المنافذ إذا قمت بالتوسيع بحيث يمكنك معرفة المنفذ المرتبط بلوحة NodeMCU. بالنسبة لنا ، تبدو الصورة الموضحة أدناه.
مسح ذاكرة فلاش ESP8266:
الآن اكتشفنا منفذ COM المرتبط ، يمكننا تحضير وحدة NodeMCU عن طريق محو ذاكرة الفلاش الخاصة بها. للقيام بذلك ، يتم استخدام الأمر التالي ، esptool.py --port COM6 erase_flash . ستبدو العملية مثل الصورة أدناه.
تثبيت البرنامج الثابت:
سيؤدي تشغيل الأمر التالي إلى تثبيت برنامج MicroPython الثنائي على لوحة NodeMCU ، وبمجرد تثبيت هذا الثنائي ، سيسمح لنا بتحميل برامج python الخاصة بنا والتواصل مع حلقة القراءة والتقييم والطباعة .
esptool.py --port COM6 --baud 460800 write_flash --flash_size = اكتشاف 0 esp8266-20200911-v1.13.bin
ستبدو العملية مماثلة للصورة أدناه ،
يرجى ملاحظة أنه في وقت التثبيت ، كان البرنامج الثنائي موجودًا على سطح المكتب ، لذا لدي قرص مضغوط لسطح المكتب وقم بتشغيل الأمر.
الآن تم الانتهاء من ذلك ، حان الوقت للتواصل مع اللوحة وميض بعض مصابيح LED.
التواصل مع NodeMCU مع PuTTY
لنبدأ الآن برنامج Hello World الأول الخاص بنا باستخدام PuTTY، PuTTY للقيام بذلك نحتاج إلى تعيين نوع الاتصال على أنه Serial ، ثم نقوم بتعيين الخط التسلسلي (في حالتنا COM6) ، وأخيراً ، قمنا بتعيين السرعة على 115200 باود.
إذا تم كل شيء بشكل صحيح ، فستظهر نافذة مشابهة للصورة أدناه ، ويمكننا بسهولة كتابة الكود الخاص بنا فيها ، وعادة ما تعمل مثل محطة iPython. أيضًا ، قمنا بتشغيل أول برنامج hello world وهو عبارة عن سطرين بسيطين فقط ، وبمجرد أن نضع بياننا المطبوع ، حصلنا على ردنا.
تحميل رمز وميض LED مبني على Python باستخدام Ampy
يعد الوصول إلى MicroPython بمساعدة طرف PuTTY طريقة جيدة للتواصل مع وحدة ESP ، ولكن هناك طريقة أخرى سهلة لتحميل الكود وهي عبر أداة Adafruit Ampy لتثبيت الأمبير ، يمكننا فقط تشغيل تثبيت pip3 بسيط adafruit- ampy وسيتم تثبيت ampy على جهاز الكمبيوتر الخاص بنا. ستبدو العملية مثل الصورة أدناه.
الآن بمجرد حصولك على هذا ، ما زلنا بحاجة إلى معلوماتنا حول المنفذ التسلسلي الذي نتصل به. في حالتنا ، هو COM6. الآن نحتاج فقط إلى كتابة كود LED Blink الخاص بنا باستخدام MicroPython ، لذلك استخدمنا الدليل المقدم في موقع microPython الرسمي.
بمساعدة الدليل ، تم عمل الكود التالي.
من استيراد الجهاز دبوس من وقت استيراد سكون LED = دبوس (2 ، Pin.OUT) بينما صحيح: LED.value (ليس LED.value ()) سكون (0.5)
الكود بسيط جدا أولاً ، نقوم باستيراد مكتبة Pin من الجهاز. فئة دبوس. بعد ذلك ، نحتاج إلى استيراد مكتبة الوقت ، والتي تُستخدم لعمل وظيفة تأخير. بعد ذلك ، قمنا بتعيين Pin2 (وهو مصباح LED على اللوحة متصل بوحدة ESP12E) كإخراج. بعد ذلك ، قمنا بإعداد حلقة while حيث نقوم بتشغيل وإيقاف تشغيل LED بتأخير يبلغ 500 مللي ثانية.
هكذا تقوم بتحميل الكود على NodeMCU. للقيام بذلك ، تحتاج إلى تشغيل الأمر ampy التالي ،
ampy - وضع منفذ COM6 main.py
إذا تم تنفيذ البرنامج ، فسوف ترى وميض LED كما هو موضح أدناه.
ملاحظة: أثناء تحميل الكود ، قمت بتعيين موقع الفوري الحالي الخاص بي على سطح المكتب الخاص بي ، لذلك لم أكن بحاجة إلى تحديد مسار كامل لملف main.py إذا لم يكن الأمر كذلك لأنك تحتاج إلى تحديد المسار الكامل لملفك الرئيسي ملف.py.
بعد ذلك ، ننتقل إلى الحصول على بيانات درجة الحرارة والرطوبة من مستشعر DHT22.
MicroPython على ESP8266: الحصول على درجة الحرارة والرطوبة باستخدام DHT22
تخطيطي لربط DHT22 مع NodeMCU:
يمكن العثور على مخطط الدائرة الكاملة لهذا المشروع أدناه. لقد استخدمت الفريتز لإنشاء هذه الدائرة.
كما ترى ، فإن الدائرة بسيطة للغاية ويمكن بناؤها بسهولة على لوح التجارب باستخدام أسلاك التوصيل. يمكن تشغيل الدائرة الكاملة باستخدام منفذ micro-USB على NodeMCU. يتم عرض إعداد الجهاز الخاص بي أدناه.
الشفرة:
من السهل جدًا الحصول على بيانات درجة الحرارة والرطوبة من مستشعر DHT22 أو DHT11 باستخدام MicroPython لأن البرامج الثابتة MicroPython التي قمنا بتثبيتها مسبقًا تأتي مع مكتبة DHT مضمنة.
1. نبدأ الكود الخاص بنا عن طريق استيراد مكتبة DHT ومكتبة الدبوس من فئة الجهاز.
استيراد dht من دبوس استيراد الجهاز
2. بعد ذلك ، نقوم بإنشاء كائن DHT الذي يشير إلى الدبوس ، حيث قمنا بتوصيل المستشعر الخاص بنا.
جهاز استشعار = dht.DHT22 (دبوس (14))
3. أخيرًا ، لقياس قيمة المستشعر ، يتعين علينا استخدام الأوامر الثلاثة التالية.
المستشعر القياس () المستشعر. درجة الحرارة () المستشعر. الرطوبة ()
بالنسبة للكود النهائي ، نضعه في حلقة while ونطبع القيم التي تحدد نهاية الكود الخاص بنا. أيضًا ، يحتاج مستشعر DHT22 إلى ثانيتين قبل أن يتمكن من قراءة أي بيانات ، لذلك نحتاج إلى إضافة تأخير لمدة ثانيتين.
من استيراد الجهاز رقم التعريف الشخصي من وقت الاستيراد استيراد السكون dht dht22 = dht.DHT22 (رقم التعريف الشخصي (14)) بينما صحيح: حاول: النوم (2) dht22.measure () temp = dht22.temperature () hum = dht22.humidity () print ("درجة الحرارة:٪ 3.2f C"٪ temp) طباعة ("الرطوبة:٪ 3.2f ٪٪ '٪ hum) باستثناء خطأ OSE مثل e: print (" فشل قراءة البيانات من مستشعر DHT22. ")
بمجرد الانتهاء من الترميز ، يمكننا تحميل الكود بمساعدة الأمر ampy.
ampy - وضع منفذ COM6 main.py
بعد تنفيذ الكود بنجاح ، يمكنك مراقبة قيم درجة الحرارة والرطوبة على أي شاشة تسلسلية. لقد استخدمت المعجون وكما ترون أدناه ، تمكنت من تلقي قيم درجة الحرارة والرطوبة على COM5.
آمل أن تكون قد استمتعت بالمقال وتعلمت شيئًا مفيدًا. إذا كانت لديك أي أسئلة ، فيمكنك تركها في قسم التعليقات أدناه أو استخدام منتدياتنا لنشر أسئلة فنية أخرى.