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

MQTT / Google Home Flood / Water WIFI Sensor مع ESP-01: 7 خطوات
MQTT / Google Home Flood / Water WIFI Sensor مع ESP-01: 7 خطوات

فيديو: MQTT / Google Home Flood / Water WIFI Sensor مع ESP-01: 7 خطوات

فيديو: MQTT / Google Home Flood / Water WIFI Sensor مع ESP-01: 7 خطوات
فيديو: Shelly Flood Sensor - Water Leak Notifications with Home Assistant and MQTT 2024, يوليو
Anonim
MQTT / مستشعر Google Home Flood / Water WIFI مع ESP-01
MQTT / مستشعر Google Home Flood / Water WIFI مع ESP-01

في هذا الدليل ، سأوضح لك كيفية إنشاء مستشعر للفيضانات / المياه واي فاي بأقل تكلفة. يكلفني المشروع بأكمله أقل من 8 دولارات للقطع التي أحصل عليها من ebay وقطع الغيار الموجودة لدي.

في هذا المشروع ، سنستخدم ESP-01 لتوفير عميل Wifi و MQTT للكشف عن وجود المياه ، واستخدام مكبر الصوت / الجرس المتصل بشكل اختياري لتوفير إنذار محلي.

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

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

أستخدم RaspberryPi ZeroW لاستضافة خادم Mosquitto MQTT و NodeRED. لقد كان يعمل منذ أكثر من عام دون أي مشكلة.

المراجع: Raspberry Pi: https://www.switchdoc.com/2016/02/tutorial-installi … تثبيت NodeRED على Raspberry Pi:

الخطوة 1: الأجزاء التي ستحتاجها

الأجزاء التي ستحتاجها
الأجزاء التي ستحتاجها
الأجزاء التي ستحتاجها
الأجزاء التي ستحتاجها
الأجزاء التي ستحتاجها
الأجزاء التي ستحتاجها

قائمة الاجزاء:

(1) ESP-01

(2) 10 كيلو أوم المقاوم

(1) ترانزستور NPN عام للإشارة الصغيرة (استخدمت 2N3904)

(2) أسلاك طويلة

(1) مصدر طاقة عام 5 فولت (تتطلب هذه الدائرة تيارًا أقل من 300 مللي أمبير)

(1) وحدة منظم 3.3 فولت AMS1117

(1) Micro-USB إلى DIP محول موصل أنثى محول ثنائي الفينيل متعدد الكلور DIY عدة

(1) كابل USB-A إلى MicroUSB.

(1) مقبس IC ذو 8 سنون - يمكن حذفه إذا كنت تريد لحام ESP-01 مباشرة إلى لوحة الدائرة. قم بقص الجسور البلاستيكية التي تخلق الفجوة بين الصفوف ، ثم قم بلصق الصفين معًا ، انظر الصورة.

(1) حاوية صغيرة للمشروع

فيما يلي أجزاء اختيارية إذا كنت بحاجة إلى إنذار محلي باستخدام مكبر الصوت / الجرس

(1) ترانزستور PNP عام ، اختر وفقًا لمتطلبات السماعة / الجرس الحالي / القوة الكهربائية. في حالتي ، أستخدم 2N2907 نظرًا لأن مكبر الصوت الخاص بي لا يتعدى 0.3 وات (8 أوم) ، فإنه سيوفر طاقة كافية لتشغيل السماعة. يمكنك اختيار ترانزستور ومكبر صوت أكبر إذا كنت تريد صوتًا أعلى.

(1) مكبر الصوت ، انظر الملاحظة على PNP Transistor أعلاه

(1) 100-110 أوم المقاوم

الخطوة 2: مخطط الدائرة

مخطط الرسم البياني
مخطط الرسم البياني

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

لقد قمت ببناء مصدر طاقة 3.3VDC باستخدام شاحن هاتف محمول قديم بجهد 5 فولت مقترن بمنظم AMS1117 3.3VDC. بالنسبة لمقبس ESP-01 ، أستخدم مقبس IC قياسيًا مكونًا من 8 سنون ، وأقطع الجسور البلاستيكية التي تخلق فجوة بين الصفوف ، ثم ألصق الصفين معًا.

الدائرة التي صممتها هي استشعار وجود الماء بين السلكين. عندما يصل الماء إلى طرف كلا السلكين ، فإنه سيخلق مقاومة تقارب 10 كيلو إلى 20 كيلو أوم. ثم بالتسلسل مع 10K ohm R1 ، فإنه يوفر تيارًا صغيرًا لقاعدة Q1 مما يتسبب في تشبع Q1 ، مما يؤدي إلى تثبيت GPIO-2 على الأرض. R1 ضروري لتوفير الحماية لـ Q1 في حالة حدوث قصور عرضي في أسلاك الاستشعار.

R2 هو مقاوم سحب للسماح لـ ESP-01 بالتمهيد من الفلاش.

الآن بالنسبة لمكبر الصوت / الجرس الاختياري ، إذا كنت تحتاج فقط إلى ESP-01 للتحدث MQTT ولا تريد تنفيذ هذا الإنذار المحلي ، يمكنك إزالة R2 ، Q2 ، مكبر الصوت ، ووضع مقاوم سحب 10K بين GPIO-0 و VCC.

إذا كنت لا تشعر بالحاجة إلى استخدام محول Micro-USB إلى DIP الأنثوي ، فيمكنك لحام الأسلاك بين 5V PS إلى وحدة المنظم 3.3V. أفضل استخدام محول MicroUSB الأنثوي حتى أتمكن من استخدام أي شاحن هاتف محمول عام وكابل MicroUSB.

الخطوة الثالثة: بناء الدائرة

بناء الدائرة
بناء الدائرة
بناء الدائرة
بناء الدائرة
بناء الدائرة
بناء الدائرة

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

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

الخطوة 4: تفليش ESP-01

في هذه الخطوة ، سنومض ESP-01 برسم اردوينو. إذا لم تقم مطلقًا بوميض وحدة ESP-01 ، فيمكنك اتباع التعليمات الخاصة بي لتبدأ: https://www.instructables.com/id/USB-to-ESP-01-Boa …

يمكنك العثور على الرسم التخطيطي الخاص بي في صفحة جيثب الخاصة بي:

في الرسم التخطيطي ، تحتاج على الأقل إلى تغيير المعلومات التالية المتعلقة بالشبكة / الإعداد المنزلي الخاص بك:

#define MQTT_SERVER "10.0.0.30" const char * ssid1 = "SSID" ؛ const char * password1 = "MYSSIDpassword" ؛ const char * ssid2 = "SSID1" ؛ const char * password2 = "MYSSIDpassword" ؛

في شبكتي المنزلية ، لديّ نقطتا وصول مختلفتان تبثان 2 SSID مختلفين ، وسيتيح هذا الرسم التكرار عن طريق الاتصال بـ SSID التالي في حالة فقد الاتصال بـ AP الحالي. إذا كان لديك SSID واحد فقط ، فقم بتعبئة كل من ssid1 و ssid2 بنفس القيمة.

بمجرد إجراء التعديل ، قم بتحميل المخطط في ESP-01 ، وقم بتوصيل ESP-01 بلوحة الواجهة.

الخطوة 5: اختبار التشغيل

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

mosquitto_sub -v -t '#'

سيسمح لنا الأمر أعلاه برؤية جميع رسائل MQTT الواردة إلى الوسيط.

الآن قم بتشغيل دائرتنا ، وإذا كان كل شيء يعمل ، يجب أن ترى في بضع ثوان على الأقل رسالة MQTT التالية:

stat / SumpWaterSensor / LWT عبر الإنترنت

الآن اختبر مستشعر الماء عن طريق غمس سلكي الاستشعار في كوب من الماء ، وسترى هذه الرسالة:

عن بعد / SumpWaterSensor WET

وإذا أخرجت الأسلاك من الماء ، يجب أن ترى هذه الرسالة:

tele / SumpWaterSensor جاف

إذا رأيت هذه الرسائل ، فإن مشروعك ناجح.

لقد قمت أيضًا بتضمين العديد من موضوعات MQTT المفيدة في الرسم التخطيطي والتي يمكنك استخدامها:

"stat / SumpWaterSensorInfo": يتم إرسال هذه الرسالة كل دقيقة لتوفير الجهوزية ومعلومات أخرى.

"cmnd / SumpWaterSensorInfo": سيرسل ESP-01 معلومات إذا تلقى هذا الموضوع بقيمة '1' (ascii = 49)

"cmnd / SumpWaterSensorCPUrestart": ستتم إعادة تشغيل ESP-01 إذا تلقى هذا الموضوع بقيمة '1' (ascii = 49)

"cmnd / SumpWaterSensorBeep": سيصدر ESP-01 صوت السماعة إذا استقبل هذا الموضوع بقيمة '1' (ascii = 49)

"cmnd / SumpWaterSensorBeepFreq": تعيين تردد تنبيه السماعة ، الافتراضي = 900 (هرتز)

"cmnd / SumpWaterSensorDebug": تمكين وتعيين مستوى التصحيح التسلسلي (الافتراضي هو 0 - لا يوجد تصحيح)

الخطوة 6: قم بتركيب المستشعر

قم بتركيب جهاز الاستشعار
قم بتركيب جهاز الاستشعار
قم بتركيب جهاز الاستشعار
قم بتركيب جهاز الاستشعار

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

الخطوة 7: اللمسة النهائية

اللمسة الأخيرة
اللمسة الأخيرة

الآن بعد أن عملنا على المشروع وتمكنا من نشر رسالة MQTT إلى الوسيط ، فإن الخطوة التالية هي التفكير في فكرة ما يجب القيام به مع ذلك.

في مشروعي ، أستخدم Node-RED للاستماع / الاشتراك في موضوع MQTT "tele / SumpWaterSensor" وأعلن للعديد من مكبرات الصوت في google home إذا تم الكشف عن الماء. بالإضافة إلى ذلك ، قمت أيضًا بربط التدفق بعقدة دفع رصاصة لإرسال إشعار إلى هاتفي الذي يعمل بنظام Android.

لقد قمت أيضًا بإنشاء واجهة ويب أمامية لمعرفة حالة المستشعر (قيد التشغيل / غير متصل بالإنترنت ، وقت التشغيل ، إلخ). رأيت أحيانًا أنه يتم قطع اتصاله بالإنترنت عدة مرات على مدار أسبوع واحد ، من الإحصائيات ، في كثير من الأحيان يكون ذلك بسبب انقطاع اتصال ESP-01 بشبكة wifi أو MQTT. ولكن لا داعي للقلق ، فقد تضمن مخططي إجراءً روتينيًا لإعادة تشغيل ESP-01 إذا استمر في الفشل في محاولة الاتصال بـ WIFI و / أو وسيط MQTT.

توضح الصورة في هذه الخطوة تدفق Node-RED لإنجاز ذلك. يمكنك أيضًا لصق التدفق من صفحة github الخاصة بي في Node-RED:

إعلان Google home هو مجرد مثال واحد لهذا المشروع ، لكنني أعتقد أنه الأكثر فائدة وعملية. يمكنك دائمًا التواصل مع مستمع MQTT آخر ، أو حتى استخدام IFTTT لقيادة الأجهزة الأخرى عند اكتشاف المياه.

استمتع…

موصى به: