شاهد الفيديو التوضيحي أدناه.
مقدمة حول نود ريد ولوحة التحكم والمعلومات (Dashboard) :
يجب أن تثبت برمجية نود ريد ولوحة المعلومات الخاصة بها على الراسبيري باي أولاً ثم اطلع على منشورات المدوّنة التالية لبدء استخدام لوحة المعلومات الخاصة بالنود-ريد:
Getting started with Node-RED on Raspberry Pi
Getting started with Node-RED Dashboard
بروتوكول MQTT:
سننشئ في هذا المشروع اتصال بين الراسبيري باي الذي يشغل برمجية نود-ريد ووحدة ESP8266 باستخدام بروتوكول MQTT.
يشير حرفي الT في كلمة MQTT إلى عبارة النقل عن بعد Telemetry Transport، يعد البرتوكول، نظام نشر/ اشتراك فعال وغير مستهلك للموارد يمكّنك من تلقّي الرسائل ونشرها كعميل، وهو بروتوكول بسيط لنقل الرسائل بين الخادم والعميل، ومصمّم للأجهزة المقيدة بعرض نطاق ترددي منخفض. لذلك فإنها الحل الأمثل لتبادل المعلومات والبيانات بين أجهزة إنترنت الأشياء.
إذا كنت تريد تعلّم المزيد عن بروتوكول MQTT يمكنك مشاهدة الفيديو أدناه.
من أجل الحصول على معلومات أكثر ومصادر إضافية عن بروتوكول MQTT يمكنك قراءة المقال التالي من هنا.
تثبيت الخادم الوسيط موسكيتو (Mosquitto Broker):
في بروتوكول MQTT، الخادم الوسيط هو المسؤول في المرتبة الأولى عن تلقّي كل الرسائل، وفرزها، ليقرّر الأجهزة المهتمة بها، ثم ينشرها لجميع العملاء المشتركين بها.
هناك عدة خوادم وسيطة يمكن أن تستخدمها، وسوف نستخدم في هذا المشروع الخادم الوسيط موسكيتو الذي تحتاج إلى تثبيته على لوحة الراسبيري باي.
لتثبيت الخادم الوسيط موسكيتو على الراسبيري باي، اطّلع على المقال التالي من هنا.
التحقق:
لنتحقق فيما إذا كان موسكيتو ثبت تثبيتا صحيحاً، قم بتنفيذ الأمر التالي:
pi@raspberry:~ $ mosquitto -v
يحّدث هذا الأمر نسخة موسكيتو الذي يعمل حالياً على لوحتك الراسبيري باي، (يجب أن تكون النسخة 1.4 أو أعلى).
ملاحظة: بالإضافة لتحديث نسخة إصدار خادم موسكيتو المثبت مسبقاً، قد يحاول هذا الأمر تهيئة الخادم مرة أخرى، وبالتالي ستظهر رسالة خطأ على الشاشة نظراً لأن الخادم موسكيتو قيد التشغيل، لذا لا تقلق إذا رأيت رسالة مشابهة فالخادم مثبت تثبيتاً صحيحاً ويعمل جيداً.
إنشاء اتصال بين بروتوكول MQTT وبرمجية نود-ريد:
في هذا ،القسم سوف ننشئ اتصال بروتوكول MQTT باستخدام عقد نود-ريد.
تنسيق لوحة المعلومات والتحكم Dashboard Layout :
الخطوة الأولى هي تنسيق وترتيب لوحة المعلومات والتحكم. في هذا المثال سيكون لدينا زر تحكم بخرج وحدة ESP8266، ومخطط بياني لعرض قراءات درجة الحرارة والرطوبة من الحساس DHT11.
DHT11) هو حساس حرارة ورطوبة يحتوي على شريحة تقوم بتحويل القيم التّشابهيّة إلى رقميّة، وتعطي على خَرْجها إشارة رقميّة توافِق درجة الحرارة والرّطوبة. اقرأ المقال التالي عنه من هنا.
في الزاوية العليا اليمنى من نافذة برمجية نود-ريد، حدد خيار تنسيق Layout تحت خيار لوحة التحكم Dashboard ضمن نفس التبويب. أنشئ تبويب باسم الغرفة Room وداخل علامة تبويب الغرفة قم بإنشاء مجموعتين: المصباح والحساس، كما هو موضّح في الشكل أدناه.
إنشاء سلسلة التعليمات البرمجي:
اسحب العقد التالية الى المخطط التدفقي، انظر الشكل أدناه:
- Switch (مفتاح كهربائي on\off) زر التحكم بخرج وحدة ESP8266.
- mqtt output node (عقدة خرج mqtt) تنشر الرسائل إلى الـ ESP8266 حسب حالة زر Switch.
- mqtt input nodes (عقدتي دخل mqtt) تسجل هذه العقد بيانات الحرارة والرطوبة لتلقّي بيانات الحساس من الـ ESP.
- Chart الرسم البياني، يعرض قراءات حساس درجة الحرارة.
- Gauge المقياس، يعرض قراءات حساس الرطوبة.
يجب توصيل نود-ريد وخادم بروتوكول MQTT، ولتنفيذ ذلك اضغط مرتين متتاليتين على عقدة خرج MQTT، لتنبثق نافذة جديدة كما هو موضح في الشكل أدناه.
- اضغط على خيار إضافة خادم MQTT جديد
- اكتب “localhost” في خانة مزوّد الشبكة server.
- تضبط بقية الإعدادات ضبطاً تلقائياً.
- اضغط إضافة “Add” فتتصل عقدة خرج بروتوكول MQTT بخادم جهازك تلقائياً.
قم بتعديل جميع خصائص العقد الأخرى كما هو موضح في الأشكال التالية:
- مفتاح التبديل Switch – يرسل مفتاح التبديل كلمة “on” عندما يكون قيد التشغيل، ويرسل “off” عندما يكون بحالة إيقاف. تنشر هذه العقدة في الموضوع “room/lamp”، من أجل تلقّي رسائله.
- عقدة خرج بروتوكول MQTT: تتصل هذه العقدة بالخادم الوسيط موسكيتو و تنشر في الموضوع “room/lamp”.
- عقدة دخل بروتوكول MQTT: هذه العقدة مشتركة في الموضوع “room/temperature” من أجل تلقّي بيانات حساس الحرارة من الـ ESP8266 حيث تنشر الـ ESP8266 قراءات درجة الحرارة في هذا الموضوع.
- الشكل البياني Chart: يعرض الشكل البياني القراءات المستقبلة حول موضوع “room/temperature”
- عقدة دخل بروتوكول MQTT: هذه العقدة مشتركة في موضوع “room/Humidity” من أجل تلقّي بيانات حساس الرطوبة من الـ ESP8266 حيث تنشر قراءات الرطوبة في هذا الموضوع.
- المقياس gauge: يعرض المقياس القراءات المستقبلة حول موضوع “room/Humidity” .
صِل العقد كما هو موضح في الشكل أدناه.
هكذا يكون نود-ريد جاهز فانقر فوق زر تطبيق “Deploy” في الزاوية العليا اليمنى.
تطبيق نود-ريد جاهز، لمعرفة كيف تبدو لوحة المعلومات (لوحة القيادة) اضغط هنا.
الآن، اتبع واقرأ القسم التالي لتهيئة وإعداد وحدة ESP8266.
تهيئة بيئة عمل الأردوينو (IDE: Integrated Development Environment)
سنبرمج وحدة ESP8266 باستخدام بيئة العمل الخاصة بالأردوينو IDE. من أجل تحميل الكود إلى الـ ESP8266 ستحتاج إلى تثبيت ميزة الإضافية الخاصة بالـ ESP8266 للحصول عليها اضغط هنا.
وتحتاج أيضاً لتثبيت مكتبتين إضافيتين هما PubSubClient Library والـ DHT Sensor Library
تثبيت مكتبة PubSubClient:
توفّر هذه المكتبة للعميل القيام بمراسلات نشر/ اشتراك بسيطة مع خادم يدعم بروتوكول MQTT (تسمح للـ ESP8266 بالاتصال مع نود-ريد )
اضغط هنا لتنزيل مكتبة PubSubClient، سيظهر لك مجلد بصيغة ZIP ضمن ملفات التنزيلات:
- قم بفكّ ضغط مجلد ZIP وستحصل على ملف pubsubclient-master
- أعد تسمية مجلدك من pubsubclient-master إلى pubsubclient
- انقل مجلد pubsubclient إلى المجلد الخاص بتثبيت مكتبات الأردوينو
- أعد فتح بيئة الأردوينو IDE
يتم تنزيل المكتبة مع عدد من الأمثلة على الأكواد، انقر على ملف ثم أمثلة ثم ضمن الـ IDE الخاص بالأردوينو
تثبيت مكتبة حساس الحرارة والرطوبة DHT Sensor Library:
تسهل هذه المكتبة للعميل استخدام أي حساس حرارة /رطوبة لقراءة درجة الحرارة ومستوى الرطوبة باستخدام الـ ESP8266 أو الأردوينو.
- اضغط هنا لتنزيل مكتبة حساس الحرارة والرطوبة، ليظهر عندك مجلد بصيغة ZIP ضمن ملفات التنزيلات.
- قم بفكّ ضغط مجلد ZIP وستحصل على ملف DHT-sensor-library-master
- أعد تسمية مجلدك من DHT-sensor-library-master إلى DHT
- انقل مجلد DHT إلى المجلد الخاص بتثبيت مكتبات الأردوينو
- أعد فتح الـ IDE
لمزيد من المعلومات عن حساس الحرارة والرطوبة DHT11 ودارة ESP8266 ،اضغط هنا.
اختيار اللوحة المناسبة في بيئة العمل الخاصة بالأردوينو Arduino IDE:
تحتاج أيضاً لتحديد اللوحة المناسبة في IDE الخاص بالأردوينو:
- انتقل إلى قائمة أدوات واختر “ “NodeMCU 1.0 (ESP-12E Module)
- حدّد رقم المنفذ لوحدة الـ ESP ضمن قائمة أداوت ثم منفذ ثم اختر COM4 (يختلف في كل حالة)
تحميل الكود:
يمكنك الآن تحميل الكود التالي إلى الـ ESP8266. ينشر هذا الكود رسائل حول درجة الحرارة والرطوبة من حساس الحرارة والرطوبة DHT11 في مواضيع room/temperature وroom/humidity من خلال بروتوكول MQTT.
تشترك الـ ESP في موضوع room/lamp لتلقّي الرسائل المنشورة حول هذا الموضوع بوساطة نود-ريد ، وبناء عليه يتم تشغيل المصباح أو إطفائه.
أضفنا تعليقاً في المكان الذي تحتاج إلى إجراء تغييرات فيه ضمن الكود. عليك تعديل الكود لتغيير اسم شبكة واي فاي Wi-Fi (SSID) وكلمة المرور وعنوان الـ IP للوحة الراسبيري باي.
لتحميل الكود البرمجي، اضغط هنا.
افتح شاشة العرض التسلسلية لبيئة الأردوينو بمعدل 115200 باود لمتابعة ماذا يحدث خلال الوقت الفعلي وذلك بعد تحميل الكود وتشغيل الراسبيري باي لـ نود-ريد والخادم الوسيط موسكيتو.
هذه الطريقة مفيدة من أجل التحقق فيما إذا كانت وحدة الـ ESP قد أنشأت اتصالاً بالموجه وبخادم موسكيتو.
يمكنك أيضا رؤية الرسائل التي يتلقّاها ESP وينشرها.
تصميم الدارة:
توضّح الأقسام التالية الأجزاء والمخططات التي تحتاجها من أجل تنفيذ دارة هذا المشروع.
العناصر المطلوبة:
- راسبيري باي
- وحدة ESP8266
- حساس الحرارة والرطوبة DHT11
- لوحة التوصيلات
- مقاومة 330 Ω
- مؤشر ضوئي LED
- مقاومة Ω4700
المخططات:
فيما يأتي المخططات الخاصة بدارة هذا المشروع
توضيح:
انتقل إلى الرابط: http://your-pi-ip-address/ui (حيث your-pi-ip-addres تشير لعنوان IP الراسبيري باي) للتحكم بوحدة ESP من خلال برمجية نود-ريد. يمكنك الوصول إلى التطبيق الخاص بك من أي متصفح إذا كان على نفس الشبكة التي تستخدمها الراسبيري باي.
شاهد الفيديو التوضيحي أدناه
يجب أن يبدو التطبيق مشابه لمحتوى الصور أدناه.
الملخص:
أوضحنا لك في هذا المشروع المفاهيم الأساسية التي ستسمح لك بتشغيل الإضاءة ومراقبة الحساسات من وحدة الـ ESP باستخدام برمجية نود-ريد وبروتوكول الاتصال MQTT. يمكنك اتباع هذه الخطوات الأساسية لبناء مشاريع أكثر تقدّماً.
نأمل أن تكون قد وجدت هذا المشروع مفيداً.
المصدر: هنا
ترجمة:رؤى عثمان، مراجعة: يارا قاضون، تصميم: علي العلي، تدقيق لغوي: حنين غاليه، تحرير: حسين اسعد