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

مستشعر تسرب المياه على ESP8266 + Micropython + Domoticz: 16 خطوة (بالصور)
مستشعر تسرب المياه على ESP8266 + Micropython + Domoticz: 16 خطوة (بالصور)

فيديو: مستشعر تسرب المياه على ESP8266 + Micropython + Domoticz: 16 خطوة (بالصور)

فيديو: مستشعر تسرب المياه على ESP8266 + Micropython + Domoticz: 16 خطوة (بالصور)
فيديو: Детектор утечки воды – Полное руководство – Сделай сам 2024, يوليو
Anonim
حساس تسرب المياه على ESP8266 + Micropython + Domoticz
حساس تسرب المياه على ESP8266 + Micropython + Domoticz
حساس تسرب المياه على ESP8266 + Micropython + Domoticz
حساس تسرب المياه على ESP8266 + Micropython + Domoticz

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

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

الخطوة 1: الأجهزة

المعدات
المعدات

لهذا المشروع نحتاج:

1. وحدة ESP8266 - 01

2. HT7333 3.3V MS منخفضة التسرب الخطي منظم وحدة تزويد الطاقة

نحتاج إلى هذه الوحدة لتقليل الجهد من البطارية إلى المستوى المقبول لـ ESP8266. وفقًا لورقة البيانات ، يجب أن يكون هناك إدخال من 3 فولت إلى 3.6 فولت. هذه الوحدة تعطينا 3.3 فولت.

3. Battery. I أنا أستخدم 3 ، 7V بطارية ليثيوم أيون 400mAh. في الواقع يمكنك استخدام أي مصدر طاقة آخر مناسب. بطارية 18650 هي خيار جيد أيضًا. عندما تختار بطارية ، ضع في اعتبارك أن ESP "يأكل" حوالي 200 مللي أمبير أثناء الاتصال بشبكة WiFi ، ويتم استخدام حوالي 60 مللي أمبير عندما تقوم اللوحة بتحميل البيانات إلى الخادم.

4. لوحة شحن بطارية يبو TP4056.

5. Pololu mini pushbutton Power Switch لوحة صغيرة مثيرة جدًا للاهتمام. يسمح لنا بتبديل وحدة ESP فقط عند اكتشاف الماء. لا تحتاج إلى إبقاء برنامج الثبات الإلكتروني قيد التشغيل. لذلك فهو جيد لتوفير شحن البطارية.

6. الإسكان 7. مزدوج الجزئي التبديل ON-OFF. يعمل خط واحد على تشغيل الجهاز. السطر الثاني مخصص للاختبار - فهو يقصّر الدائرة بدون ماء ، فقط لإعلامنا هل الجهاز يعمل أم لا.

8. حاسوب Raspberry Pi الصغير

أنا أستخدم Raspberry Pi Zero. إنه قوي بما يكفي لتشغيل خادم Domoticz.

الخطوة 2: البرمجيات

على جهاز الكمبيوتر الخاص بك:

1. esptool مثبتة ، لمحو الوحدات ووميض البرامج الثابتة

2. تثبيت Ampy ، لوميض البرنامج الخاص بك

3 بايثون 3.6 أو أعلى موصى به

4. أي محرر كود تريده. أبسط - Python IDLE الذي يتم تثبيته عادةً مع Python. أنا أستخدم Pycharm / Atom أو Anaconda Spyder على Raspberry Pi

5. خادم Domoticz مثبت على Raspberry Pi (أو كمبيوتر شخصي عام يعمل بنظام Windows أو Linux)

الخطوة الثالثة: تحضير Raspberry Pi - قم بتثبيت Domoticz

لذلك ، خذ RPi وقم بتثبيت نظام التشغيل المناسب لتشغيل خادم Domoticz.

يمكنك اتباع هذه التعليمات.

أنا أستخدم Raspbian Stretch مع سطح المكتب من هنا:

الخطوة التالية هي تثبيت خادم Domoticz على جهاز الكمبيوتر الخاص بك. يمكنك استخدام التعليمات هنا أو هنا:). لا تخافوا ، الأمر ليس بهذه الصعوبة. من الواضح أنك بحاجة إلى الجري في جهازك:

curl -L install.domoticz.com | سودو باش

وهذا هو:) أكثر أو أقل. إعداد Domoticz

الآن وقد أصبح خادمنا جاهزًا ، يمكننا الوصول إليه من أي متصفح ويب ، بما في ذلك من جهاز لوحي عن طريق إدخال عنوان URL التالي: https:// IP_domoticz: 8080

الخطوة 4: إعداد Domoticz

إعداد Domoticz
إعداد Domoticz

الآن وقد أصبح خادمنا جاهزًا ، يمكننا الوصول إليه من أي متصفح ويب ، بما في ذلك من جهاز لوحي عن طريق إدخال عنوان URL التالي: https:// IP_domoticz: 8080

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

اضبط إعدادات التطبيق
اضبط إعدادات التطبيق
اضبط إعدادات التطبيق
اضبط إعدادات التطبيق

هناك العديد من إعدادات التطبيق التي يمكن ضبطها من خلال الإعداد | قائمة الإعدادات.

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

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

الخطوة 6: إعداد الإخطارات

إخطارات الإعداد
إخطارات الإعداد

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

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

كلمات قليلة حول كيفية عمل الإخطارات. يجب أن يكون لديك حساب على Pushbullet أو Pushover أو الصفحات الأخرى التي ترغب في استخدامها. ستحتاج أيضًا إلى تطبيق على هاتفك الخلوي أو جهاز الكمبيوتر.

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

بمجرد أن يستشعر المستشعر الماء ، يتم تشغيل ESP ويرسل طلبًا إلى خادم Domoticz بتنسيق JSON. إذا تم استيفاء شروط بدء حدث (إرسال إخطار إلى هاتفك الخلوي) ، يرسل Domoticz الإشعار.

سأعود لاحقًا إلى "الأحداث".

الخطوة 7: إعداد الاتصال بالأجهزة (الأجهزة)

قم بإعداد الاتصال بالجهاز (الأجهزة)
قم بإعداد الاتصال بالجهاز (الأجهزة)
قم بإعداد الاتصال بالجهاز (الأجهزة)
قم بإعداد الاتصال بالجهاز (الأجهزة)
قم بإعداد الاتصال بالجهاز (الأجهزة)
قم بإعداد الاتصال بالجهاز (الأجهزة)

قبل أن تتمكن من استخدام تطبيق Domoticz للتحكم في الأجهزة أو قراءة أجهزة الاستشعار ، يجب عليك إعداد الاتصال بالجهاز (الأجهزة). حدد Setup | Hardware لإضافة الأجهزة. لن تظهر الأجهزة حتى تتم إضافة الأجهزة المناسبة.

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

عند إضافة الأجهزة ، سيتم عرض نظرة عامة على جميع الأجهزة المحددة. يمكن تعطيل أو حذف الأجهزة.

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

انقر فوق هذا الزر واختر نوع المستشعر "تنبيه". الآن يتعين علينا إضافة الجهاز في Domoticz ليصبح نشطًا.

الخطوة 8: أضف الجهاز في Domoticz ليصبح نشطًا

أضف الجهاز في Domoticz ليصبح نشطًا
أضف الجهاز في Domoticz ليصبح نشطًا
أضف الجهاز في Domoticz ليصبح نشطًا
أضف الجهاز في Domoticz ليصبح نشطًا
أضف الجهاز في Domoticz ليصبح نشطًا
أضف الجهاز في Domoticz ليصبح نشطًا

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

قم بتمكين الجهاز بالنقر فوق السهم الأخضر الموجود على اليسار (تظهر الصورة أدناه باللون الأزرق بسبب تمكين الجهاز).

املأ اسم الجهاز ، وانقر على "إضافة".

انتقل إلى قائمة "الأدوات المساعدة" ويجب أن يكون جهازك مدرجًا هناك.

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

الخطوة 9: لا تعمل بهذه الطريقة …

لا يعمل بهذه الطريقة …
لا يعمل بهذه الطريقة …

لقد بدأت بمحاولة برمجة حدث على / الجهاز / الصفحة. هذا أدناه ليس لي ، ولكن لا بأس في التوضيح.

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

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

الخطوة العاشرة: بناء حدث بطريقة صحيحة 1

بناء الحدث بطريقة صحيحة 1
بناء الحدث بطريقة صحيحة 1

1. تنفيذ ملف خارجي عبر "الأحداث" ، باستخدام رسالة Blockly "Start script"

هذا يعمل بالنسبة لي على جهاز Windows تمامًا. لكنني لم أنجح مع هذا على Raspbian على Raspberry Pi الخاص بي. أظن أن هناك مشكلة في الأذونات.

الخطوة 11: بناء حدث بطريقة صحيحة 2

بناء الحدث بطريقة صحيحة 2
بناء الحدث بطريقة صحيحة 2

2- استخدم رسالة "إرسال إشعار بالموضوع". يعمل على Raspbian. يدعم هذا الخيار إرسال الإخطارات إلى Pushsafe و Pushover.

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

بعد ذلك ، دعنا نبرمج وحدة ESP.

الخطوة 12: برمجة وحدة ESP8266-01

وحدة البرمجة ESP8266-01
وحدة البرمجة ESP8266-01

لنبدأ من وميض وحدة ESP8266 الخاصة بنا. عادةً ما تأتي هذه الوحدات مع البرامج الثابتة للمصنع. من الممكن التواصل مع الوحدات النمطية باستخدام ما يسمى بأوامر AT. وكذلك لا يسمح هذا البرنامج باستخدام وحدات مثل وحدات التحكم المستقلة. لاستخدامها مثل وحدات التحكم المستقلة ، نحتاج إلى مسح البرامج الثابتة للمصنع وتثبيت واحدة جديدة.

للقيام بذلك سوف نستخدم esptool. مما نحتاجه لتوصيل وحدتنا بجهاز الكمبيوتر لمحو البرامج الثابتة. للقيام بذلك ، تحتاج إلى محول TTL + بعض المكونات الإضافية. ولكن هناك طريقة أسهل:). ما عليك سوى الشراء من aliexpress أو ebay USB إلى وحدة مهايئ Wi-Fi ESP8266 ESP-01 مع برنامج تشغيل CH340G.

قم بتوصيل وحدة ESP8266 بمحول TTL كما هو موضح في الصورة ، وقم بتوصيلها بمنفذ USB.

إذا كان لديك نفس المحول مثلي ، فأنت بحاجة إلى تغيير المفتاح إلى موضع "Prog". ابحث عن مكان تثبيت esptool (عادةً في مكان ما مثل C: / Program Files (x86) Python36-32 / Scripts. انتقل إلى هذا المجلد ، وقم بتشغيل موجه الأوامر هناك. اكتب: python esptool.exe --port COM5 erase_flash

بالطبع اختر المنفذ الصحيح. في حالتي هو COM5. يمكنك التحقق من المنفذ حيث تم تثبيت ESP من لوحة التحكم - النظام - مدير الجهاز.

قم بتثبيت البرنامج الثابت (أخذته من هنا: https://micropython.org/download#esp8266) عن طريق كتابة:

python esptool.exe --port COM5 --baud 460800 write_flash --flash_size = اكتشاف 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

حسنًا ، نحن الآن جاهزون لتحميل نصوص micropython إلى ESP8266.

أنا أستخدم Adafruit MicroPython Tool (ampy) لهذا الغرض.

ولكن في الوقت الحاضر هناك خيار آخر يسمى Esplorer. هذا تطبيق مع واجهة مستخدم ، مما يسمح بتحميل الملفات إلى وحدات ESP.

يمكنك العثور على إرشادات حول كيفية تثبيت amp هنا. لذلك ، ضع المفتاح على محول TTL إلى موضع "UART". سنحتاج إلى تحميل الملفات:

  • wifimgr.py - مدير wifi للاتصال بشبكة wifi
  • main.py - البرنامج النصي الرئيسي لدينا

في سطر الأوامر ، اكتب ampy --port COM5 ، ضع C: / path إلى ملفك

هاهنا . بعد بضع ثوان سترى سطر أوامر فارغًا. هذا يعني أن الملف قد تم تحميله. يمكنك التحقق من قائمة الملفات الموجودة على ESP بواسطة أمر ampy:

امبي - منفذ COM5 ls

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

جميع ملفات هذا المشروع متاحة من هنا:

الخطوة 13: اتصل بشبكة WiFi الخاصة بك. الحصول على إشعار

اتصل بشبكة WiFi الخاصة بك. الحصول على إشعار
اتصل بشبكة WiFi الخاصة بك. الحصول على إشعار
اتصل بشبكة WiFi الخاصة بك. الحصول على إشعار
اتصل بشبكة WiFi الخاصة بك. الحصول على إشعار

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

بعد بدء ESP ، ابحث عن شبكة WiFi جديدة تسمى "Wifimanager". اتصل به بجهاز الكمبيوتر أو الهاتف ، ثم انتقل إلى عنوان IP 192.168.4.1.. هنا يمكنك توصيل ESP بشبكة WiFi المحلية. اختر شبكة WiFi التي ستستخدمها ، واكتب كلمة المرور ، واضغط على "إرسال".

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

يمكنك تتبع العملية في "الإعداد" / "السجل".

فوا ليا!:) إنها تعمل. يمكننا الآن المضي قدمًا في تجميع جميع الأجزاء معًا ، وفقًا لمخطط الكتلة أدناه.

الخطوة 14: مخطط الكتلة

مخطط كتلة
مخطط كتلة

ليس هناك الكثير ليقال عن هذا المخطط. بسيط جدا. قم بتبديل الطاقة باستخدام مفتاح S1. الجهاز في وضع إيقاف التشغيل حتى شورت المياه "مستشعر المياه" دبابيس. ثم يتم تشغيل "لوحة Pololu" ، وتمنح الطاقة لمحول الجهد. تعتمد وحدة الطاقة هذه على شريحة HT7333 ، وتحول الجهد إلى 3.3 فولت مستقر لـ ESP8266. يتم تشغيل برنامج ESP التالي ، ويرسل رسالة إلى خادم Domoticz.

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

النتيجة والاستنتاجات
النتيجة والاستنتاجات
النتيجة والاستنتاجات
النتيجة والاستنتاجات
النتيجة والاستنتاجات
النتيجة والاستنتاجات
النتيجة والاستنتاجات
النتيجة والاستنتاجات

إنها تعمل. يستغرق إرسال الإخطار ما يصل إلى 10 ثوانٍ: الاتصال بشبكة WiFi ، وإرسال الإخطار ، وتلقي رسالة تنبيه إلى هاتفك.

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

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

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

سيضطر المستخدم إلى الضغط على زر ، وسيظهر مستوى البطارية.

موصى به: