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

IDC2018IOT GarbageCan-Online: 7 خطوات
IDC2018IOT GarbageCan-Online: 7 خطوات

فيديو: IDC2018IOT GarbageCan-Online: 7 خطوات

فيديو: IDC2018IOT GarbageCan-Online: 7 خطوات
فيديو: Man Falls OVERBOARD and Boat Keeps Going! | Wavy Boats | Haulover Inlet 2024, شهر نوفمبر
Anonim
Image
Image
الأجزاء المطلوبة
الأجزاء المطلوبة

مقدمة

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

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

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

الخصائص الرئيسية

  1. لوحة المراقبة:

    • القسم الرئيسى:

      • مستوى الامتلاء لكل علبة قمامة.
      • درجة حرارة ورطوبة كل علبة قمامة.
    • قسم الإحصاء:

      • أكمل علبة قمامة.
      • سخونة سلة المهملات.
  2. نظام التنبيهات والإخطارات:

    • يتم دعم الأحداث التالية:

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

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

من نحن؟

تم إنشاء هذا المشروع (بالحب والتفاني!) بواسطة Rom Cyncynatus و Daniel Alima - طلاب IDC Herzliya كمشروع نهائي لدورة IoT الخاصة بنا. نأمل أن تجد عملنا مفيدًا ، وأن تستمتع باستخدامه!

الخطوة 1: الأجزاء المطلوبة

من أجل بناء النظام ، ستحصل على المكونات والأجزاء التالية:

  1. علبة قمامة (يفضل أن تكون بغطاء): سيتم استخدامها من أجل … حسنًا.. أنت تعرف ما الذي سنفعله بهذه العلبة ، أليس كذلك؟ ؛)
  2. اللوح: لتوصيل جميع المكونات المختلفة دون استخدام أي لحام.
  3. NodeMCU (ESP-8266): مسؤول عن قراءة المستشعرات وإرسال المعلومات إلى السحابة.
  4. مستشعر المسافة بالأشعة تحت الحمراء - حاد 0A41SK: سيقيس هذا المستشعر كمية القمامة (مستوى الامتلاء) داخل العلبة.
  5. مستشعر درجة الحرارة والرطوبة - DHT11: سيقيس هذا المستشعر درجة الحرارة والرطوبة داخل صندوق القمامة.
  6. التبديل اللحظي: سيتم استخدامه لمعايرة مستشعر المسافة وفقًا لحجم سلة المهملات.
  7. رقائق الألومنيوم: تستخدم لتشكيل كاشف لحالة الغطاء - سواء كان مفتوحًا أو مغلقًا.
  8. أسلاك توصيل كبيرة: احصل على الكثير وبأطوال وألوان مختلفة. سيربط كل شيء معًا.
  9. شريط القناة: سيتعين علينا إرفاق الأشياء في مكانها.
  10. كابل Micro-USB: لتوصيل NodeMCU بجهاز الكمبيوتر الخاص بك من أجل البرمجة ، ولاحقًا لتزويد الطاقة.
  11. مزود طاقة USB (شاحن الهاتف الذكي): سيوفر الطاقة لـ NodeMCU عند تثبيته على سلة المهملات.

الخطوة 2: الأسلاك والتجميع

الأسلاك والتجميع
الأسلاك والتجميع
الأسلاك والتجميع
الأسلاك والتجميع
الأسلاك والتجميع
الأسلاك والتجميع

الأسلاك

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

  • جهاز استشعار المسافة بالأشعة تحت الحمراء - شارب 0A41SK:

    • فين (أحمر) فين
    • GND (أسود) GND
    • صوت (أصفر) A0
  • مستشعر درجة الحرارة والرطوبة - DHT11:

    • فين (أحمر) 3V3
    • GND (أسود) GND
    • البيانات (أصفر)
  • التبديل اللحظي:

    • دبوس 1 D3
    • Pin2 GND
  • حالة الغطاء (فتح / إغلاق) الأسلاك:

    • سلك 1 D2
    • سلك 2 GND

المجسم

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

  1. ضع مستشعر مسافة الأشعة تحت الحمراء في منتصف الغطاء (من الجانب الداخلي!). تأكد من تأمينه بشكل صحيح ، وإلا ستواجه قراءات خاطئة!
  2. ضع مستشعر درجة الحرارة والرطوبة في مكان ما داخل سلة المهملات. تأمين مع الشريط.
  3. قم بتغطية جانب الغطاء وطرف سلة المهملات بورق الألمنيوم. تأكد من وجود اتصال جيد عند إغلاق الغطاء. سيشير هذا النظام إلى أن سلة المهملات مفتوحة أو مغلقة. ثم قم بلصق كل من أسلاك حالة الغطاء في أحد رقائق الألومنيوم ، وقم بإحكامها بشريط لاصق.

الخطوة 3: إعداد MQTT و Node-RED و IFTTT

قم بإعداد MQTT و Node-RED و IFTTT
قم بإعداد MQTT و Node-RED و IFTTT
قم بإعداد MQTT و Node-RED و IFTTT
قم بإعداد MQTT و Node-RED و IFTTT
قم بإعداد MQTT و Node-RED و IFTTT
قم بإعداد MQTT و Node-RED و IFTTT

يتم تنفيذ معظم منطق المشروع فعليًا في السحابة. ترسل NodeMCU البيانات إلى خادم MQTT ، وتستهلكها Node-RED وتطبق منطقها عليها (المزيد حول البنية المستقبلية). أخيرًا ، من أجل إرسال إشعارات الدفع (التنبيهات) إلى هاتفنا الذكي ، استخدمنا IFTTT.

سنستخدم خدمات CloudMQTT و FRED السحابية كخوادم MQTT و Node-RED على التوالي ، وسنستخدم IFTTT لإرسال الإشعارات.

  1. اشترك في CloudMQTT مع الخطة المجانية. قم بتدوين بيانات الاعتماد الخاصة بك على خادم MQTT (اسم المستخدم وكلمة المرور).
  2. اشترك في IFTTT. أنشئ تطبيقًا صغيرًا جديدًا من "إشعار تطبيق Webhooks IFTTT". استخدم "Mobile Phone Notification" كاسم حدث WebHookds. استشر الصورة أعلاه للحصول على التفاصيل الدقيقة. لاحظ مفتاح API الخاص بالمصمم.
  3. قم بتنزيل تطبيق IFTTT على هاتفك وقم بتسجيل الدخول باستخدام بيانات الاعتماد الخاصة بك. سيسمح لك ذلك بالحصول على إشعارات الدفع.
  4. اشترك في FRED مع الباقة المجانية.
  5. بمجرد تشغيل مثيل FRED ، قم باستيراد التدفقات المرفقة إليه (زر 3 أشرطة استيراد من الحافظة). ما عليك سوى لصق محتويات كل ملف (widgest.json و alerts.json و Statistics.json) وقم باستيرادها.
  6. قم بتحرير إحدى عقد MQTT (واحدة كافية) لتحديث بيانات اعتماد CloudMQTT.
  7. قم بتحرير عقدة IFTTT لتحديث مفتاح API الخاص بصانع IFTTT.

الخطوة 4: برمجة NodeMCU ومعايرة سعة حاوية القمامة

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

  1. قم بتنزيل Arduino IDE وتثبيته من هنا.
  2. قم بتثبيت وتعيين نوع لوحة NodeMCU كما هو موضح في بداية التعليمات التالية.
  3. قم بتثبيت المكتبات التالية (Sketch Include Library Manage Libraries…):

    1. مكتبة Adafruit MQTT (بواسطة Adafruit)
    2. مكتبة مستشعر DHT (بواسطة Adafruit)
    3. SharpIR (بواسطة جوزيبي ماسينو)
    4. إيبروم أي شيء - شرح هنا.
  4. افتح ملف GarbageCanOnline.ino ، وقم بتحديث ما يلي:

    1. بيانات اعتماد WiFi الخاصة بك (WLAN_SSID ، WLAN_PASS)
    2. بيانات اعتماد CloudMQTT (MQTT_USERNAME ، MQTT_PASSWORD)
    3. إذا كانت هذه هي سلة المهملات الثانية أو أكثر ، فقم بتغيير معرف سلة المهملات (GARBAGECAN_ID)
  5. قم بتحميل المخطط المحدث إلى NodeMCU الخاص بك.
  6. افتح نافذة الشاشة التسلسلية (Ctrl + M) وتأكد من أنها تمكنت من نشر بيانات المستشعرات إلى CloudMQTT.
  7. الآن ، عندما يكون الغطاء مغلقًا وعلبة القمامة فارغة ، اضغط مع الاستمرار على زر المعايرة لمعايرة سعة علبة القمامة.
  8. تم ضبط كل شيء في سلة المهملات. يمكنك فصله عن جهاز الكمبيوتر الخاص بك ، وتوصيله في الموقع المخصص له باستخدام مصدر طاقة USB.

الخطوة الخامسة: استخدام النظام

باستخدام النظام
باستخدام النظام
باستخدام النظام
باستخدام النظام
باستخدام النظام
باستخدام النظام

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

نفترض أن لديك علبة قمامة واحدة فقط متصلة ، ولكن من السهل إضافة المزيد لاحقًا!

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

عندما تتغير كمية القمامة داخل سلة المهملات ، سترى تغيير المقياس وفقًا لذلك. وينطبق هذا أيضًا على الرسوم البيانية لدرجة الحرارة والرطوبة.

عندما يصل مستوى الامتلاء إلى 85٪ -90٪ (تعتمد العتبة الدقيقة على درجة الحرارة والرطوبة) ، أو حدث خطأ في المستشعر ، ستتلقى إشعارًا عبر الطريقة (الطرق) المفضلة لديك. سيتم إخطارك مرة كل ساعة لكل علبة قمامة.

في عرض الإحصائيات ، ستتمكن من رؤية أكبر علبة قمامة ، والأكثر سخونة. عنوان غير لائق ، إذا جاز لنا القول …

الخطوة السادسة: فهم التدفق

فهم التدفق
فهم التدفق
فهم التدفق
فهم التدفق
فهم التدفق
فهم التدفق
فهم التدفق
فهم التدفق

كما لاحظت على الأرجح الآن ، يحتوي النظام على الكثير من "الأجزاء المتحركة". سنحاول توضيح كيفية ارتباط الأشياء ببعضها البعض.

أولاً ، لدينا سلة قمامة مع NodeMCU وأجهزة الاستشعار الخاصة بها. يمكننا الحصول على الكثير من هذه - مجرد "نسخ" من بعضنا البعض.

يقيس NodeMCU المستشعرات المختلفة الموضوعة في سلة المهملات ، وينشر البيانات إلى خادم MQTT (بروتوكول MQTT). يمكنك التفكير في خادم MQTT على أنه تبادل معلومات كبير ، حيث يمكن للعديد من صناديق القمامة إرسال معلوماتهم إليها.

الكيان الآخر الذي يتصل بخادم MQTT هو Node-RED. تستمع Node-RED إلى الرسائل المختلفة القادمة من علب القمامة التي تحمل البيانات الحسية ، وتطبق منطقها عليها. إنه يعمل من خلال استخدام "تدفقات" المعلومات. في كل مرة يتم فيها تلقي رسالة ، بناءً على نوعها (موضوع MQTT) ، فإنها تدخل سلاسل محددة من العمليات التي تنتهي بتفعيل الميزات المختلفة للنظام (تحديث لوحة المعلومات ، وإرسال التنبيهات ، وما إلى ذلك) سيكون من الصحيح جدًا القول أن Node-RED هي "عقل" النظام. إنه على دراية بكل ما يحدث في كل مكان ، ويمكنه اتخاذ الإجراءات وفقًا لذلك.

داخل Node-RED قمنا ببناء 3 تدفقات رئيسية للمعلومات:

  1. الأدوات - يتم بعد ذلك عرض المعلومات الحسية التي يتم إدخالها في Node-RED على لوحة القيادة عبر المقاييس والرسوم البيانية.
  2. التنبيهات - تتم معالجة المعلومات الحسية لاستنتاج ما إذا كان يجب تشغيل تنبيه (على لوحة القيادة أو إلى تطبيق الهاتف الذكي). يتم أخذ مستوى الامتلاء مع درجة الحرارة والرطوبة في الاعتبار لاتخاذ قرار بإبلاغ المستخدم بأن سلة المهملات ممتلئة. أيضًا ، يتم الإبلاغ عن الأخطاء الحسية من خلال نفس التدفق.
  3. الإحصائيات - يتم تجميع المعلومات الحسية لعرض صناديق القمامة الكاملة والأكثر سخونة.

لكي ترسل Node-RED إشعار الدفع ، فإنها تتصل بخدمة تسمى IFTTT (عن طريق بروتوكول HTTP). يقوم بتنشيط حدث IFTTT معين مع نص الإشعار ذي الصلة ، ويرسل IFTTT الإشعار إلى هاتفنا الذكي (بروتوكولات HTTP و XMPP).

راجع الصور أعلاه لفهم (أ) الهيكل العام للنظام ، و (ب) تدفقات المعلومات الثلاثة المختلفة داخل Node-RED بشكل أفضل

الخطوة السابعة: التحديات والقيود وخطط المستقبل …

التحديات

كانت التحديات الرئيسية في هذا المشروع هي في الغالب التعامل مع خدمات MQTT و Node-RED. استخدمنا AdafruitIO لأول مرة ، لكن تطبيق MQTT المخصص لم يكن جيدًا بالنسبة لنا. لم يكن من الملائم العمل مع "الخلاصات" داخل Node-RED. لذلك اخترنا في النهاية CloudMQTT ، الذي يعتمد على خادم Mosquitto MQTT ، وهو معيار أكثر بكثير. ثم انتقلنا إلى التعامل مع Node-RED ، والذي كان يمثل تحديًا كبيرًا ، لأن Node-RED هو وحش. على سبيل المثال ، هو أكثر شمولية واحترافية من IFTTT من وجهة نظرنا. كان علينا تعديل وتعلم كيفية استخدام نهج التصميم القائم على التدفق لبناء الميزات المطلوبة للنظام. علاوة على ذلك ، فإن إحدى أكبر مزاياها هي دعم كود جافا سكريبت ، ولكن الأمر استغرق بعض الوقت لتعتاد عليه لأننا لسنا مبرمجين جافا سكريبت. على الرغم من كل ذلك ، فقد استمتعنا حقًا بالعمل باستخدام هذه الأداة المحددة ، ووجدناها ممتعة ومفيدة للغاية.

محددات

فيما يتعلق بالقيود ، فإن الأول هو حقيقة أننا استخدمنا الخدمات المجانية فقط ، ولن نسمح بالتوسع على نطاق واسع. لن تسمح خطة CloudMQTT المجانية بوجود أكثر من 5 اتصالات متوازية ، مما يعني أنه لا يمكن أن يكون لدينا سوى 4 علب قمامة و Node-RED. تتيح خطة FRED Node-RED المجانية 24 ساعة فقط من الاستخدام المتواصل ، وبعد ذلك يتعين عليك تسجيل الدخول يدويًا وإعادة ضبط المؤقت. ومع ذلك ، يمكن حل هذه المشكلات بسهولة إما عن طريق تشغيل هذه الخدمات محليًا ، أو دفع مبلغ إضافي قليلاً لرفع القيود. القيد الثاني هو حقيقة أنه عند إضافة علبة القمامة الرابعة وما بعده ، يجب عليه تعديل تدفق الأدوات يدويًا في Node-RED لإضافة عناصر واجهة المستخدم المناسبة.

خطط للمستقبل

كانت لدينا بعض الأفكار لتعزيز نظامنا وتوسيعه:

  1. انتقل إلى الخدمات السحابية غير المجانية. (يوم عمل واحد).
  2. إضافة ضاغط قمامة إلى سلة المهملات مما يقلل من تكرار إفراغها. (4 أشهر عمل)
  3. العمل مع علب القمامة الحضرية والصناعية لتحسين كفاءة شاحنات المدينة التي تتعامل مع القمامة في المدينة. قد يعني هذا تحسين لوحة القيادة ونظام الإخطار بشكل كبير بحيث يمكن لسائقي الشاحنات تخطيط مسارهم بشكل أفضل عند التعامل مع القمامة. (6 أشهر عمل).
  4. إضافة قدرات إعادة التدوير إلى سلة المهملات ، مثل القدرة على صب محاليل بيولوجية خاصة في القمامة والمساعدة في إعادة تدويرها أثناء وجودها داخل سلة القمامة. يمكن استخدام هذا محليًا على سبيل المثال لإنتاج سماد للحدائق ، ولكن من الواضح أنه يمكن استخدامه أيضًا في العلب الصناعية أيضًا. (6 أشهر عمل).

موصى به: