نظام القمامة: 7 خطوات
نظام القمامة: 7 خطوات
Anonim
نظام القمامة
نظام القمامة

قررنا أن نحاول إيجاد طريقة لتتبع ملئ القمامة في المجتمع المحلي أو جهاز استشعار في كل قمامة في الحي لمحاولة جعل التخلص من القمامة أكثر كفاءة. كنا نظن أنه إذا أتت شاحنة كل أسبوعين لجمعها ، فماذا لو أني أو جاري انتهى بي الأمر برميها قليلاً. ألن يكون من غير المجدي إرسال شاحنة حيث لم يرسل نصف الحي عبوات قمامة ممتلئة؟ سيكون رائعًا لو كان من الممكن رؤية نفايات جارنا تملأ ثم استخدم نفاياتهم إذا كانت القمامة ممتلئة وكانت نفاياتهم فارغة والعكس صحيح. قررنا استخدام مستشعر الموجات فوق الصوتية HC-SR04 جنبًا إلى جنب مع raspberry pi لمحاولة معالجة هذا المشروع.

اللوازم

جهاز استشعار بالموجات فوق الصوتية (HC-SR04)

Raspberry Pi (استخدمنا Pi 4 موديل B)

اللوح

كابلات توصيل

زوجان من المقاومات (3 × 1 كيلو أوم)

الخطوة 1: توصيل HC-SR04

توصيل HC-SR04
توصيل HC-SR04

نظرًا لأننا نستخدم Raspberry Pi ، فنحن بحاجة إلى استخدام مقسم جهد لتنظيم الجهد الداخل إلى دبابيس GPIO الخاصة بـ Pi لأنها تسمح فقط بـ 3.3 فولت. يستخدم HC-SR04 5 فولت ولكن يجب خفضه إلى 3.3 فولت عند توصيله بـ Pi. قم بتوصيل دبابيس 5 فولت والأرض على التوالي ووفقًا لبرنامجك ، قم بتوصيل دبابيس الصدى والزناد بالدبابيس المحترمة. في برنامجنا ، استخدمنا الدبوس 23 و 24 للصدى والتشغيل على التوالي.

الخطوة 2: Mosquitto و Paho MQTT

قبل أن نبدأ البرمجة على Python لجعل المستشعر بالموجات فوق الصوتية يعمل مع Pi ، يجب علينا تثبيت هذه التطبيقات للحصول على مستشعر الموجات فوق الصوتية للتواصل مع برنامج البرمجة Node-RED الخاص بنا. Mosquitto هو وسيط MQTT يمكنك استخدامه على Pi بينما Paho MQTT هي المكتبة التي تتيح لك البرمجة بلغة Python للحصول على المستشعر للتواصل مع وسيط MQTT. لتثبيت كلا هذين الأمرين ، يمكنك كتابة هذه الأوامر على محطة Pi الخاصة بك

sudo apt التحديث

sudo apt install -y mosquitto mosquitto- عملاء

sudo apt-get install python3-pip

sudo pip3 تثبيت paho-mqtt

الخطوة الثالثة: برنامج بايثون لجهاز الاستشعار بالموجات فوق الصوتية

هذا هو البرنامج الذي استخدمته لقراءة البيانات الواردة من المستشعر ونشرها أيضًا على وسيط MQTT.

الخطوة 4: Node-RED

العقدة الحمراء
العقدة الحمراء
العقدة الحمراء
العقدة الحمراء
العقدة الحمراء
العقدة الحمراء
العقدة الحمراء
العقدة الحمراء

لا تأتي بعض العقد مثبتة مسبقًا في البرنامج ، لذا قد تحتاج إلى تثبيتها من اللوحات. تلك التي تحتاج إلى تثبيتها هي node-red-dashboard و node-red-node-sqlite.

هذا هو المكان الذي نبدأ فيه باستخدام برنامج البرمجة الخاص بنا والمستشعر. العقدة الأولى التي ستحتاجها هي MQTT-in Node والتي تتيح لنا استخدام المستشعر الذي يقوم بتشغيل البرنامج من أعلى لإرسال البيانات إلى هذا البرنامج. عقدة النطاق التي استخدمناها تقلب القيم التي لدينا (على سبيل المثال. 5 سم ممتلئة من البرنامج لذلك نقلبها إلى 100٪). بعد عقدة النطاق ، لدينا عقدتان وظيفيتان ، واحدة لعرض الرسالة على لوحة القيادة الخاصة بنا والأخرى لإظهار مرئي أن القمامة ممتلئة. برنامج العقد الوظيفية مرفق.

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

الخطوة 5: تسجيل البيانات

بيانات التسجيل
بيانات التسجيل
بيانات التسجيل
بيانات التسجيل
بيانات التسجيل
بيانات التسجيل

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

تسير خطوات إنشاء البيانات وتسجيلها على النحو التالي:

1. إنشاء قاعدة البيانات

2. تسجيل البيانات

3. اسحب البيانات لتظهر على لوحة القيادة الخاصة بنا

4. مسح البيانات وحذفها

الطريقة التي يعمل بها SQL هي أنك تحتاج إلى إنشاء تنفيذ الموضوع الذي هو إنشاء جدول ، وإدخاله ، واختياره من ، وحذفه من. باستخدام عقد الطابع الزمني ، يمكننا تنفيذ الموضوعات إلى عقدة sqlite التي تقوم بكل من هذه الوظائف (إنشاء وإدراج وتحديد وحذف). نحتاج فقط إلى إنشاء قاعدة البيانات مرة واحدة وبمجرد الانتهاء من ذلك ، يمكننا تسجيل البيانات إليها. بمجرد إنشاء قاعدة البيانات ، يمكننا تسجيل البيانات واستخدمنا إدخال المستخدم مرة أخرى لتسجيل الدخول عند وصول الشاحنة. لقد قمنا بذلك حتى لا تتمكن من تسجيل البيانات حتى يُسمح للشاحنة بالحضور وهي عبارة عن 5 كراجات بسعة 80٪ (تعتبر ممتلئة). استخدمنا أيضًا عقدة النطاق مرة أخرى لتصغير 500 مرة أخرى إلى 0-100٪. لدينا بعد ذلك خيار حذف جميع البيانات من قاعدة البيانات إذا أردنا ذلك. عقدة جدول واجهة المستخدم هي عقدة تسمح لنا برؤية الجدول بطريقة منسقة بشكل جيد على لوحة القيادة الخاصة بنا.

الخطوة 6: التخطيط

بعد انتهاء كل هذا ، يمكنك إنشاء تخطيط تريده بمساعدة Node-RED. في علامة التبويب الجانبية ، ستتمكن من تباعدهم بالطريقة التي تريدها وهناك الكثير من خيارات التخصيص التي لديك. مرفق أيضًا تدفق البرنامج بأكمله.

الخطوة 7: الخاتمة

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

موصى به: