المدونةالفصل الثالثإنترنت الأشياء 1-2إنشاء حل ذكي لإدارة النفايات | الوحدة السابعة | الدرس الثالث

إنشاء حل ذكي لإدارة النفايات | الوحدة السابعة | الدرس الثالث

إنشاء حل ذكي لإدارة النفايات

إنشاء حل ذكي لإدارة النفايات هو عنوان الدرس الثالث من الوحدة السابعة التي تحمل اسم ” الرسائل في إنترنت الأشياء” من مقرر “إنترنت الأشياء 2-1” الفصل الدراسي الثالث.

ستتعرَّف في هذا الموضوع على كيفية إنشاء حل لإدارة النفايات، وذلك بتحليل ومعالجة البيانات لمشروع الموضوع السابق، بالإضافة إلى برمجة وإنشاء ملف بيانات JOSN.

إنشاء حل ذكي لإدارة النفايات

لذا قم بقراءة نواتج التعلُّم بعناية، ثم أعد قراءتها وتأكَّد من تحصيل محتوياتها بعد انتهائك من دراسة الموضوع.

أهداف التعلُّم

  • إنشاء حل لإدارة النفايات الذكية.
  • تحليل ومعالجة البيانات لمشروع إدارة النفايات.
  • برمجة وإنشاء ملف بيانات JOSN.

هيا لنبدأ!

إدارة النفايات الذكية وتحليل البيانات (Smart Waste Management and Data Analysis)

لقد قمنا في الموضوع السابق بإنشاء نموذج أولي ذكي لإدارة حاوية نفايات باستخدام متحكم أردوينو دقيق يراقب بيئته المحيطة.

ثم ينتج البيانات من المستشعرات وينشرها كرسائل إلى موضوع في MQTT

يجب أن يتم جمع البيانات ثم معالجتها لتكوين تصورات مختلفة ووضع الخطط على هذه البيانات.

سنقوم في هذا الموضوع بإنشاء مقطع في بايثون يشترك في نفس الموضوع الخاص بوسيط MQTT الذي تم نشر الرسائل عليه. سيتم جمع الرسائل، وفي كل مرة يتم ملء فيها سلة النفايات، سيتم إنشاء تقرير وتخزينه في ملف آخر. سيحتوي هذا الملف فقط على البيانات من التقارير التي تم إنشاؤها، ثم سننشئ بعد ذلك مفكرة جوبيتر تقوم بفتح الملف وتحليل البيانات وإنشاء رؤى وتصورات حولها.

سيتم تسمية هذين الملفين باسم MQTT_reciver.py وdata_analysis.ipynb على التوالي، سيكتب البرنامج الأول البيانات المحفوظة في ملف JSON، وسيقرأ البرنامج الثاني البيانات من ملف JSON ويقوم بتحليلها.

إنشاء ملف بيانات جسون (Creating the JSON File)

  • سنقوم بإنشاء ملف بيانات JSON بواسطة مصفوفة فارغة.
  • سيقوم البرنامج py بإلحاق كل تقرير تم إنشاؤه ككائن JSON بالمصفوفة.
  • ثم سيفتح ملف py ملف JSON هذا.
  • وسيقرأ محتويات مصفوفة JSON السابقة ويقوم بعمليات تحليل البيانات.

الخطوات:

  • افتح PyCharm ثم أنشئ ملفًا جديدًا باسم json.
  • ثم أنشئ كائنًا لمصفوفة فارغة داخل الملف كما هو موضح أدناه.
  • سيُلحق py كائنات JSON الخاصة بالتقارير المنشأة بالمصفوفة المعروضة.
  • احفظ ملف json ثم أغلقه.

إنشاء حل ذكي لإدارة النفايات

قم بإنشاء ملف بايثون جديد باسم mqtt_reciver.py وفي بداية المقطع البرمجي قم باستيراد الحزم التالية:

  • datetime: تُنشئ طابعًا زمنيًا للرسائل المرسلة.
  • json: للتعامل مع كائنات json.
  • mqtt.client: لإنشاء عملاء للتواصل مع mqtt.
  • os: للتعامل مع الملفات الموجودة على حاسبك الخاص.

أنشئ المتغيرات التالية والتي ستتفاعل مع ملف json:

  • data_file.
  • .data_file_objects

إنشاء حل ذكي لإدارة النفايات

بإمكانك مراجعة محتوى “إنشاء حل ذكي لإدارة النفايات” من بدايته وحتى هذه النقطة، من خلال الرابط التالي:

أنشئ المتغيرات التي سيتم استخدامها لعميل MQTT الذي ستنشئه.

  • CLIENT_ID: سيكون اسم العميل.
  • MQTT_BROKER: عنوان الوسيط العام الذي توفره EMQX الذي ستتصل به.
  • TOPIC: تشير إلى اسم موضوع سيشترك به العميل.
  • PORT: تشير إلى منفذ الخادم الافتراضي للاتصال بالوسيط.
  • FALG_CONNECTED: سيستخدم كمتغير إشارة في دالة معالج الأحداث لاحقًا.

أنشئ المتغيرات التالية ستستخدم لتخزين المعلومات مع الرسائل المنشورة:

  • messages_stack.
  • reports.

إنشاء حل ذكي لإدارة النفايات

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

وسيطات الدالة هي وسيطات افتراضية يجب استخدامها لربط هذه الدالة بمعالج الأحداث المناسب الذي توفره المكتبة paho.mqtt.client.

إنشاء حل ذكي لإدارة النفايات

قم بإنشاء الدالة التالية generate_report والتي ستنشئ كائن JSON للتقرير وتلحقه بملف البيانات في كل مرة تُستلم فيها رسالة تشير إلى امتلاء حاوية النفايات.

إنشاء حل ذكي لإدارة النفايات

ستتحقق في الجزء الرئيس من البرنامج مما إذا كانت البيانات موجودة وتقوم بفتحها، ثم سيقوم بتهيئة عمل MQTT، وتربط معالج الأحداث on_connect وon_message بالدوال المذكورة أعلاه، ثم تقوم بالاتصال بوسيط MQTT، والاشتراك في الموضوع المحدد والاستماع إلى الرسائل الواردة.

إنشاء حل ذكي لإدارة النفايات

البرنامج بشكله النهائي (Complete Code)

إنشاء حل ذكي لإدارة النفايات

بإمكانك مراجعة محتوى موضوع “إنشاء حل ذكي لإدارة النفايات” بداية قسم “إنشاء المتغيرات التي ستُستخدم لعميل ” حتى نهاية هذا القسم، من خلال الرابط التالي:

بإمكانك مراجعة محتوى موضوع “إنشاء حل ذكي لإدارة النفايات” بدايةً من “إنشاء المتغيرات التي تُستخدَم لعميل MQTT” وحتى نهاية هذا القسم، من خلال الرابط التالي:

تحليل البيانات في جوبيتر (Data Analysis in Jupyter Notebook)

سنستخدم الآن مفكرة جوبيتر لإجراء عملية تحليل البيانات على ملف بيانات JSON. ونظرًا لأن جمع البيانات وتحليلها سيستغرق وقتًا طويلًا، فقد تم توفير مجموعة بيانات JSON جاهزة لكي تستخدمها.

تحاكي مجموعة البيانات هذه ترك نموذج الأردوينو الأولي قيد التشغيل لفترة طويلة من الوقت.

  • ملف JSON متاح التنزيل من هنا:

http://binary-academy.com/dnld/KSA/IOT2/U3_L3_DATA.json

ستقوم أولًا باستيراد المكتبات المطلوبة وقراءة بيانات JSON من الملف.

ستقوم بإنشاء مخططين مُجمعين حسب خصائص garbage_drops و time_to_fill.

إنشاء حل ذكي لإدارة النفايات

ستقوم بعد ذلك بإنشاء مخططين من نوع stem plots لعرض garbage_drops وtime_to_fill في كل فترة زمنية.

إنشاء حل ذكي لإدارة النفايات

ستنشئ في الختام مُخططين يجمعان عدد garbage_drops لكل ساعة من اليوم، ولكل ساعة خلال الأسبوع.

إنشاء حل ذكي لإدارة النفايات

بإمكانك مراجعة محتوى موضوع “إنشاء حل ذكي لإدارة النفايات” بدايةً من عنوان “تحليل البيانات في جوبيتر” وحتى نهاية الموضوع، من خلال الرابط التالي:

اختبر تحصيلك لمحتوى الموضوع من خلال الرابط التالي:

الواجب الإلكتروني

إلى هنا يكون قد انتهي موضوع “إنشاء حل ذكي لإدارة النفايات”، لا تنسوا مراجعة نواتج التعلُّم أعلى المقال، وانتظرونا في الموضوع القادم! 

روابط هامة

مقررات الفصل الدراسي الثالث

مشاركة المقال عبر:

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *