استخدام فايربيس كلاود في انظمة IoT
السلام عليكم ..
عنوان الدرس/ مثال بسيط لاستخدام firebase cloud storage في انظمة IoT
الاختصاص/ Internet of Things
الموضوع/ Cloud
المستوى/ المبتدئ
ملخص التجربة
يقدم هذا الدرس تجربة توضح استخدام الكلاود في مشاريع ال internet of thing كخزن بيانات وتغيير حالة الجهاز او ال sensor المرتبط مع النظام عن بعد (أي مكان في العالم) من خلال تطبيق موبايل وفي هذا الدرس نستخدم تطبيق اندرويد مبرمج بلغة جافا .
الأدوات المستعملة: - هاردوير
- NodeMCU esp8266 : متحكم يستخدم لربط الجهاز للانترنت عن طريق wifi وكذلك يحتوي على مخارج ومدخلات للتحكم بالاجهزة
- LED : يعتبر بمثابة جهاز للتحكم به عن طريق الكلاود
- قاعددة بيانات : Firebase Real Time DB
- تطبيق نظام اندرويد
اللغات المستعملة / C , java
سنقوم بعمل node في firbase db باسم LED_Status ونستخدم نفس الاسم في برمجة تطبيق الموبايل وبرمجة المتحكم لوضع القيمة فيه
في طرف تطبيق الموبايل نستخدم setInt لكتابة القيمة في الLED_Status وهنا التعامل مع نوع integer
وفي طرف اردوينو نستخدم getInt لقراءة القيمة من الLED_Status وهنا التعامل مع نوع integer ايضاً
للمزيد من الدوال حول استخدام firebase مع الاردينو راجع الdocumentation الخاص من خلال هذا الموقع :
هيكلية التجربة
ملاحظة/ اضغط على الصورة للتكبير
الخطوات:-
الخطوات:-
الخطوة 1:-
سنقوم في البداية بربط جزء الهاردوير الذي يحتوي على متحكم جاهز (nodeMUC) الذي يحتوي على wifi ونربط النظام من خلاله للانترنت وأيضا هنالك LED للتحكم به من خلال تطبيق موبايل عبر firebase ويكون الربط كما في الصورة :
LED pin = D7 in NodeMCU
الخطوة 2:-
سنقوم بتجهيز الكلاود (firebase) بعمل مشروع جديد وليكن اسمه (IoT) ولمعرفة كيفية عمل مشروع جديد في firebase اذهب الى رابط هذا الدرس
بعد انشاء المشروع ننشئ قاعدة بيانات جديدة ونضع فيها node باسم LED_Status كما في الصورة:
في حال يكون LED_Status = 0 فهذا يعني ان ال LED لا يعمل اما عندما يكون LED_Status = 1 فهذا يعني ان ال LED يعمل
الخطوة 3:- (android studio)
نقوم بعمل تطبيق موبايل للتحكم على الLED من خلاله ... وسنعمل على بيئة android studio باستخدام لغة جافا
انشئ مشروع جديد فارغ في android studio وضع فيه هذه ال objects:
انشئ مشروع جديد فارغ في android studio وضع فيه هذه ال objects:
TextView = 1
Buttons = 2
نستخدم TextView لقراءة حالة ال LED داخل التطبيق
نستخدم Buttons لتغيير حالة ال LED احدهما للاطفاء والاخر للتشغيل
سيكون التطبيق بشكل مبسط كالتالي:
اذهب الى ملف java وضع فيه الكود التالي : (ملاحظة/ تم ادراج الكود على شكل الصورة لكي يقوم المتدرب بكتابة الكود بيده حتى يفهم الكود بشكل افضل)
شرح للكود :
هذا الجزء لعمل initialize for objects
شرح للكود :
هذا الجزء لعمل initialize for objects
********************************
وهذا الجزء خاص بتشغيل الLED
ننشئ متغير باسم database لعمل instance من firebaseDatabase ومتغير آخر باسم myref لتغيير القيمة المخزنة داخل node=LED_status حيث انه سيقوم بوضع قيمة "1" لتغيير الحالة الى on
********************************
وهذا الجزء خاص باطفاء الLEDملاحظة:-
1- استخدمنا Toast لاظهار مسج مؤقت
2- للمزيد من المعلومات حول كيفية استخدام Firebase API يمكنك مراجعة firebase documentation
3- تم إهمال Text View لعدم إطالة الدرس اكثر
وبهذا نكون قد انتهينا من كتابة كود بسيط جدا للتحكم على حالة الLED من خلال التطبيق، سننتقل الى برمجة الطرف الآخر وهو الهاردوير (NodeMCU) ...
//////////////////////////////////////////////////////////
الخطوة 4:- (Arduino IDE)
قبل ان نذهب الى Arduino IDE نحتاج الى تحميل libraries التالية:
1- library خاص لل firebase ونقوم بتنزيله من موقع الgithub من خلال الرابط التالي: https://github.com/FirebaseExtended/firebase-arduino
2- library خاص لل esp8266 : من خلال برنامج Arduino اذهب الى Tools واختر manage libraries وقم بالبحث عن esp8266 وقم بتحميله ... أيضا من خلال نافذة File اذهب الى Preferences والصق هذا الرابط في حقل Additional Board
http://arduino.esp8266.com/stable/package_esp8266com_index.json
الان بامكاننا عمل connection مع firebase &Node MCU esp8266 باستخدام هذه المكتبات
- ننشئ ملف جديد ونضع في الكود التالي (الشرح بالتعليقات الموجودة في الكود):-
بعد الانتهاء نقوم بتحميل البرنامج على المتحكم فيصبح ال LED جاهز للتحكم به عن طريق التطبيق من اي مكان عبر Firebase
ملاحظة/ التجربة كانت سهلة للغاية لكن الشرح كان مطولاً من اجل ايصال فكرة الدرس الى المبتدئين واردت ان اتطرق الى تفاصيل اكثر قدر الامكان ...
اتمنى الاستفادة من الدرس وتطبيقه بشكل عملي والمحاولة على تغيير الحساس والتلاعب بالكود والتطبيق لتكتشف أشياء جديدة 😊.enjoy
1- library خاص لل firebase ونقوم بتنزيله من موقع الgithub من خلال الرابط التالي: https://github.com/FirebaseExtended/firebase-arduino
2- library خاص لل esp8266 : من خلال برنامج Arduino اذهب الى Tools واختر manage libraries وقم بالبحث عن esp8266 وقم بتحميله ... أيضا من خلال نافذة File اذهب الى Preferences والصق هذا الرابط في حقل Additional Board
http://arduino.esp8266.com/stable/package_esp8266com_index.json
الان بامكاننا عمل connection مع firebase &Node MCU esp8266 باستخدام هذه المكتبات
- ننشئ ملف جديد ونضع في الكود التالي (الشرح بالتعليقات الموجودة في الكود):-
بعد الانتهاء نقوم بتحميل البرنامج على المتحكم فيصبح ال LED جاهز للتحكم به عن طريق التطبيق من اي مكان عبر Firebase
ملاحظة/ التجربة كانت سهلة للغاية لكن الشرح كان مطولاً من اجل ايصال فكرة الدرس الى المبتدئين واردت ان اتطرق الى تفاصيل اكثر قدر الامكان ...
اتمنى الاستفادة من الدرس وتطبيقه بشكل عملي والمحاولة على تغيير الحساس والتلاعب بالكود والتطبيق لتكتشف أشياء جديدة 😊.enjoy
تعليقات
إرسال تعليق