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

موزع مياه أوتوماتيكي لتتبع الاستهلاك: 6 خطوات
موزع مياه أوتوماتيكي لتتبع الاستهلاك: 6 خطوات

فيديو: موزع مياه أوتوماتيكي لتتبع الاستهلاك: 6 خطوات

فيديو: موزع مياه أوتوماتيكي لتتبع الاستهلاك: 6 خطوات
فيديو: حل مشكلة الغسالة تسحب الماء باستمرار ودون توقف 2024, يوليو
Anonim
موزع مياه أوتوماتيكي لتتبع الاستهلاك
موزع مياه أوتوماتيكي لتتبع الاستهلاك
موزع مياه أوتوماتيكي لتتبع الاستهلاك
موزع مياه أوتوماتيكي لتتبع الاستهلاك

أهلا!

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

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

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

مستودع جيثب:

اللوازم

ميكروكنترولر

رازبيري باي 4

مجسات ووحدات

استخدمت 4 أجهزة استشعار:

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

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

ورقة البيانات

1x DS18B20 مستشعر درجة الحرارة

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

ورقة البيانات

1x RC522 وحدة RFID

RC522 عبارة عن وحدة RFID 13.56 ميجا هرتز تعتمد على وحدة التحكم MFRC522 من أشباه الموصلات NXP. يمكن أن تدعم الوحدة I2C و SPI و UART وعادة ما يتم شحنها مع بطاقة RFID وسلسلة مفاتيح. يتم استخدامه بشكل شائع في أنظمة الحضور وتطبيقات تحديد الأشخاص / الكائنات الأخرى. في هذا المشروع ، يتم استخدامه لنظام تحديد / تسجيل الدخول.

ورقة البيانات

و 2 مشغلات:

عدد 1 مضخة تمعجية 12-24 فولت

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

1x شاشة LCD

تُستخدم شاشة LCD لعرض عنوان IP والرسائل المهمة. شاشة الكريستال السائل (LCD) هي شاشة مسطحة أو أي جهاز بصري معدل إلكترونيًا يستخدم خصائص تعديل الضوء للبلورات السائلة المدمجة مع المستقطبات.

ورقة البيانات

غلاف

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

  • 3x ألواح من الخشب الرقائقي
  • 1x قمع صغير
  • خزان مياه 1x (يمكنك اختيار الكمية التي تريدها ، ذهبت مقابل 10 لترات)
  • 1x صينية بالتنقيط

يمكنك العثور على جميع المواد والأسعار في قائمة المواد المرفقة.

الخطوة 1: توصيل جميع الإلكترونيات

ربط جميع الإلكترونيات
ربط جميع الإلكترونيات
ربط جميع الإلكترونيات
ربط جميع الإلكترونيات

الآن وقد قمنا بتلخيص جميع الأجهزة الإلكترونية ، فقد حان الوقت لتوصيلها. لقد صنعت دائرتين من فريتزينج ، واحدة لوحة توصيل وأخرى تخطيطية ، لتوضح لك كيف وأين يجب توصيل جميع الأجهزة الإلكترونية. يمكنك العثور على رابط التنزيل لـ Fritzing هنا: https://fritzing.org/download/. كما ذكرنا سابقًا ، استخدمت Raspberry Pi وقمت بتوصيل ماسح RFID وجهازي استشعار بالموجات فوق الصوتية ومستشعر درجة حرارة واحد وشاشة LCD ومضخة تمعجية للمياه.

لقد أرفقت الدائرتين في ملف PDF ، إذا كنت تريد إلقاء نظرة فاحصة عليه.

الخطوة 2: إعداد Raspberry Pi

سنستخدم Raspberry Pi الخاص بنا لتشغيل كل شيء والتحكم فيه: الواجهة الخلفية والواجهة الأمامية وقاعدة البيانات.

لا يعمل Raspberry Pi تلقائيًا. سيتعين علينا اتباع بعض الخطوات لبدء استخدامه.

الخطوة 1: Raspbian

إذا كنت تستخدم Raspberry Pi جديدًا ، فستحتاج إلى raspbian. يمكن العثور على رابط التنزيل والبرنامج التعليمي هنا.

الخطوة 2: كتابة الصورة على SD

الآن بعد أن حصلت على صورة Raspbian الخاصة بك ، ستحتاج إلى برنامج كتابة الصور (أوصي بـ win32diskimager) لكتابة ملف الصورة على بطاقة SD. يمكن العثور على البرنامج التعليمي الكامل هنا.

الخطوة 3: تسجيل الدخول إلى Raspberry Pi

افتح "Powershell" واكتب "ssh [email protected]". إذا سارت الأمور على ما يرام ، فسيطلبون منك كلمة مرور (كلمة المرور الافتراضية هي دائمًا التوت). عادة ، هذا يجب أن يسجّل دخولك إلى Raspberry Pi. سنحتاج الآن إلى إجراء بعض التغييرات على إعداداتنا. اكتب sudo raspi-config في الجهاز واضغط على Enter. انتقل إلى خيارات الترجمة> تغيير المنطقة الزمنية وضبطها على منطقتك الزمنية. يجب عليك أيضًا تغيير بلد wi-fi إلى موقعك الخاص. أخيرًا ، انتقل إلى خيارات الواجهة وقم بتمكين SPI و I2C و 1-wire. سيكون هذا مهمًا لاستخدام المستشعرات بشكل صحيح.

الخطوة الرابعة: إعداد اتصال الإنترنت

سنستخدم شبكة WiFi. يمكنك إضافة شبكتك المنزلية من خلال:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

سيتعين عليك إعادة تشغيل Pi الخاص بك لإجراء اتصال. للتحقق مما إذا كان يعمل ، يمكنك استخدام ifconfig للتحقق مما إذا كان هناك عنوان IP.

الخطوة 5: إعداد خادم الويب وقاعدة البيانات

أولاً ، من الأفضل تحديث النظام وترقيته بالتسلسل التالي من الأوامر:

  1. sudo apt dist-Upgrade - إزالة تلقائية -y
  2. sudo apt الترقية
  3. sudo apt التحديث
  4. sudo apt autoremove

بمجرد الانتهاء من ذلك ، سنحتاج إلى الحزم التالية لخادم الويب وقاعدة البيانات لدينا:

اباتشي

sudo apt تثبيت apache2 -y

بي أتش بي

sudo apt تثبيت php

sudo apt تثبيت phpMyAdmin -y

لا تنس تعيين كلمة مرور MySQL آمنة عندما تطلب تعيين كلمة مرور.

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt تثبيت php-mysql -y

أعد تشغيل sudo systemctl apache2.service

الخطوة 6: تثبيت مكتبات Python

بالنسبة للواجهة الخلفية ، سنحتاج إلى بعض المكتبات لبايثون. سنقوم بتثبيت هذه باستخدام pip3 ، لأننا نستخدم python3.

pip3 تثبيت mysql- موصل- بيثون

pip3 تثبيت flask-socketio

pip3 تثبيت قارورة cors

تثبيت pip3 gevent

pip3 تثبيت gevent-websocket

sudo مناسب لتثبيت python3-mysql.connector -y

تثبيت pip3 mfrc522! (سنحتاج هذا للاستفادة من الماسح الضوئي RFID)

الخطوة السابعة: تحضير كود Visual Studio

لتشغيل الكود ، أوصي باستخدام Visual Studio Code لتوصيل Raspberry Pi بـ. يمكن العثور على رابط التنزيل لتثبيت VSC هنا.

إذا لم يكن لديك Remote Development مثبتًا باستخدام SSH حتى الآن ، فيمكنك العثور على خطوات القيام بذلك هنا.

الخطوة 3: إنشاء قاعدة البيانات

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

سنخزن جميع بيانات المستشعر وبيانات المستخدم الخاصة بنا في قاعدة بيانات.

تتكون قاعدة بياناتي من 5 جداول:

جهاز

يحتوي جهاز الجدول على معرف الجهاز ، والذي يشير إلى الجهاز نفسه. اسم الجهاز يعطي اسم الجهاز ، في هذه الحالة مستشعر الموجات فوق الصوتية ، مستشعر درجة الحرارة ،… يعطي نوع الجهاز نوع الجهاز (المستشعر أو المشغل).

تاريخ

يحتوي Table History على كل محفوظات المستشعر ، جنبًا إلى جنب مع تاريخ de (HistoryDate) ، تمت إضافة التاريخ وقيمة اللحظة في التاريخ. كما أن لديها مفتاحان خارجيان:

  • DeviceID ، لربط سجل معين بجهاز
  • UserID ، لربط مستخدم معين بسجل (هذا لأننا نستخدم RFID ، ونريد إضافة سجل المحفوظات إلى مستخدم معين)

مستخدم

يستخدم مستخدم الجدول لإنشاء نظام تسجيل دخول مستخدم باستخدام ماسح RFID. يتكون من الاسم المستعار والاسم الأول والاسم الأخير وكلمة المرور و RFID (هذا هو رقم RFID للعلامة). يرتبط كل مستخدم بحاوية (خزان مياه) ويحمل أيضًا ContainerID كمفتاح خارجي.

وعاء

تتكون حاوية الجدول من جميع الحاويات المختلفة. يحتوي على معرف أو موقع ContainerLocation (يمكن أن يكون مؤسسة أو منزلًا أو أي شيء آخر). أخيرًا ، يحتوي على MaxLevel الذي يمثل الحجم الأقصى للحاوية.

إعدادات

تحتوي إعدادات الجدول على SettingsID ، ويتتبع DailyGoal لكل مستخدم + تاريخ إضافة DailyGoal بواسطة المستخدم. يوضح هذا معرف مستخدم المفتاح الخارجي.

يمكن العثور على تفريغ قاعدة البيانات في مستودع GitHub الخاص بي ضمن قاعدة البيانات.

الخطوة 4: إعداد الواجهة الخلفية

لا يوجد مشروع بدون خلفية عمل.

تتكون الواجهة الخلفية من 4 أشياء مختلفة:

مساعدين

المساعدين هم جميع الفئات المستخدمة لأجهزة الاستشعار والمشغلات المختلفة. هناك مساعد لمستشعر درجة الحرارة (DS18B20) ، لأجهزة الاستشعار فوق الصوتية (HCSR05) لتكون قادرة على قياس المسافة ولشاشة LCD لتكون قادرة على كتابة الرسائل على الشاشة.

مستودعات

في مجلد المستودعات ، ستجد ملفين من ملفات Python:

  • Database.py وهو مساعد لإخراج صفوف من قاعدة البيانات الخاصة بك. يجعل من السهل تنفيذ وقراءة قاعدة البيانات.
  • DataRepository.py الذي يحتوي على جميع استعلامات SQL التي يتم استخدامها في الكود الرئيسي (app.py). يتم استخدامها للحصول على البيانات أو تحديثها أو حذفها من قاعدة البيانات.

app.py

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

config.py

يتبقى لدينا ملف واحد: config.py. هذا هو الملف الذي يحتوي على خيارات التكوين للاتصال بقاعدة البيانات الخاصة بك. لا تنس تعيين بيانات اعتماد قاعدة البيانات الخاصة بك.

يمكن العثور على الواجهة الخلفية في مستودعي تحت الخلفية.

الخطوة الخامسة: إعداد الواجهة الأمامية

إعداد الواجهة الأمامية
إعداد الواجهة الأمامية
إعداد الواجهة الأمامية
إعداد الواجهة الأمامية

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

في مستودع GitHub الخاص بي ، ستجد الواجهة الأمامية الخاصة بي ضمن Code> Frontend. من المهم أن تلصق هذا في مجلد / var / html الخاص بك Raspberry Pi لتسهيل الوصول إليه من خادم الويب.

يتكون من ملفي HTML ، مما يؤدي إلى صفحات مختلفة. ستجد أيضًا screen.css الخاص بي مع جميع CSS التي ستحتاجها لجعلها تبدو مثل مشروعي. أخيرًا ، سيكون لديك ملفات JavaScript مختلفة ضمن البرامج النصية. تتواصل هذه البرامج النصية مع الواجهة الخلفية الخاصة بي لإظهار البيانات من قاعدة البيانات الخاصة بي أو الخلفية.

يمكن العثور على الواجهة الخلفية في مستودعي تحت الواجهة الأمامية.

الخطوة 6: إنشاء الغلاف

خلق الغلاف
خلق الغلاف
خلق الغلاف
خلق الغلاف
خلق الغلاف
خلق الغلاف

إذا كنا نتحدث عن حالتي ، فهناك جزءان رئيسيان:

الغلاف الخارجي

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

للحصول على القياسات الدقيقة للبناء الخاص بي ، قمت بإرفاق ملف PDF بجميع أحجام اللوحات المستخدمة في العلبة.

خزان المياه

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

موصى به: