فهرست مطالب:

سنسور نشت آب در 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. HTU333 3.3V MS Low Dropout Linear Regulator Power Supply modu

ما برای کاهش ولتاژ باتری به سطح قابل قبول برای ESP8266 به این ماژول نیاز داریم. طبق ورق داده باید ورودی 3 ولت تا 3.6 ولت وجود داشته باشد. این ماژول به ما 3.3 ولت می دهد.

3. باتری. من از 3 ، 7V Li-ion 400mAh باتری استفاده می کنم. در واقع می توانید از هر منبع تغذیه مناسب دیگری استفاده کنید. باتری 18650 نیز انتخاب خوبی است. هنگام انتخاب باتری به خاطر داشته باشید که ESP تقریباً 200 میلی آمپر می خورد و به شبکه وای فای متصل می شود و هنگام بارگذاری داده ها روی سرور ، حدود 60 میلی آمپر استفاده می شود.

4. برد شارژ باتری TP4056 Lipo.

5. مینی دکمه پولولو پاور سوئیچ تخته کوچک بسیار جالب. به ما اجازه می دهد ماژول ESP را تنها در صورت تشخیص آب تغییر دهیم. لازم نیست ESP را روشن نگه دارید. بنابراین برای صرفه جویی در شارژ باتری خوب است.

6. مسکن 7. میکرو سوئیچ دوگانه ON-OFF. یک خط برای روشن کردن دستگاه عمل می کند. خط دوم برای آزمایش است - اتصال کوتاه بدون آب ، فقط برای اینکه به ما اطلاع دهید دستگاه کار می کند یا خیر.

8. میکرو کامپیوتر رزبری پای

من از Raspberry Pi Zero استفاده می کنم. برای اجرای سرور Domoticz به اندازه کافی قدرتمند است.

مرحله 2: نرم افزار

روی رایانه شخصی شما:

1. esptool نصب شده ، برای پاک کردن ماژول ها و چشمک زدن سیستم عامل

2. Ampy نصب شده است ، برای چشمک زدن برنامه شما

3 پایتون 3.6 یا بالاتر توصیه می شود

4. هر ویرایشگر کد که می خواهید. ساده ترین - Python IDLE که معمولاً با پایتون نصب می شود. من از Pycharm / Atom یا Anaconda Spyder On raspberry Pi استفاده می کنم

5. سرور Domoticz نصب شده بر روی Raspberry Pi (یا رایانه رایج تحت Windows یا Linux)

مرحله 3: Raspberry Pi را آماده کنید - Domoticz را نصب کنید

بنابراین ، RPi خود را بردارید و سیستم عامل مناسب برای اجرای سرور Domoticz را نصب کنید.

می توانید این دستورالعمل ها را دنبال کنید.

من از Raspbian Stretch with Desktop از اینجا استفاده می کنم:

مرحله بعدی نصب سرور Domoticz بر روی رایانه شما است. می توانید از دستورالعمل اینجا یا اینجا استفاده کنید:). نترس ، کار چندان سختی نیست. بدیهی است که شما باید در ترمینال خود اجرا کنید:

curl -L install.domoticz.com | sudo bash

و همین است:) کمابیش. راه اندازی Domoticz

اکنون که سرور ما آماده است ، می توانیم از هر مرورگر وب ، از جمله از طریق رایانه لوحی ، با وارد کردن آدرس زیر به آن دسترسی داشته باشیم: https:// IP_domoticz: 8080

مرحله 4: راه اندازی Domoticz

راه اندازی Domoticz
راه اندازی Domoticz

اکنون که سرور ما آماده است ، می توانیم از هر مرورگر وب ، از جمله از طریق رایانه لوحی ، با وارد کردن آدرس زیر به آن دسترسی داشته باشیم: https:// IP_domoticz: 8080

مرحله 5: تنظیمات برنامه را تنظیم کنید

تنظیمات برنامه را تنظیم کنید
تنظیمات برنامه را تنظیم کنید
تنظیمات برنامه را تنظیم کنید
تنظیمات برنامه را تنظیم کنید

تنظیمات مختلف برنامه وجود دارد که می توان از طریق Setup | منوی تنظیمات

منوی تنظیمات با برگه های مختلف به شما امکان می دهد پارامترهای شخصی لازم برای عملکرد بهتر سیستم را وارد کنید. پس از وارد کردن داده ها در فیلدها ، باید آنها را با فشار دادن دکمه قرمز "اعمال تنظیمات" ذخیره کنید. پس از این عمل ، همه فیلدهای رمز عبور ، که در اولین دسترسی خالی بودند ، با یک رشته طولانی از ستاره ها ظاهر می شوند ، حتی اگر از آنها استفاده نشده باشد.

پس از انجام تنظیمات اصلی در صفحه "System" ، روی "Notifications" کلیک کنید. در اینجا ما باید نوع اعلان هایی را که قرار است استفاده کنیم تنظیم کنیم.

مرحله 6: تنظیم اعلان ها

راه اندازی اعلان ها
راه اندازی اعلان ها

اعلان ها را می توان به عنوان مثال هنگامی که یک کلید فشار داده می شود ، مصرف برق بیش از حد زیاد است ، درجه حرارت به بالا و برای بسیاری از گزینه های دیگر ارسال می شود.

در مورد ما اعلان ها باید به محض تشخیص آب توسط سنسور ارسال شوند. بنابراین فقط آنهایی را که می خواهید استفاده کنید ، روشن کنید. همچنین به طور معمول برای کار اعلان به کلید API نیاز دارید. کمی جلوتر می روم ، می گویم که Pushover ، Pushsafer و Pushbullet را امتحان کردم. و من با Pushover ماندم. بعداً دلیلش را خواهم گفت.

چند کلمه در مورد نحوه عملکرد اعلان ها. شما باید یک حساب کاربری در Pushbullet ، Pushover یا سایر صفحاتی داشته باشید که می خواهید از آنها استفاده کنید. همچنین به یک برنامه در تلفن همراه یا رایانه خود نیاز خواهید داشت.

کلید API را دریافت کرده و آن را در صفحه بالا وارد کنید. با کلیک روی "Test" می توانید اعلان را آزمایش کنید. اگر کلید API درست است ، باید یک اعلان تست برای تلفن همراه خود دریافت کنید.

به محض احساس سنسور آب ، ESP روشن می شود و درخواست را با فرمت JSON به سرور Domoticz ارسال می کند. اگر شرایط برای شروع یک رویداد (ارسال اعلان به تلفن همراه شما) برآورده شود ، Domoticz اعلان را ارسال می کند.

بعداً به "رویدادها" برمی گردم.

مرحله 7: راه اندازی ارتباطات روی دستگاه سخت افزاری

راه اندازی ارتباطات بر روی دستگاه های سخت افزاری
راه اندازی ارتباطات بر روی دستگاه های سخت افزاری
راه اندازی ارتباطات بر روی دستگاه های سخت افزاری
راه اندازی ارتباطات بر روی دستگاه های سخت افزاری
راه اندازی ارتباطات بر روی دستگاه های سخت افزاری
راه اندازی ارتباطات بر روی دستگاه های سخت افزاری

قبل از اینکه بتوانید از برنامه Domoticz برای کنترل دستگاهها یا خواندن حسگرها استفاده کنید ، باید ارتباط را روی دستگاه (ها) سخت افزاری تنظیم کنید. برای افزودن سخت افزار ، Setup | Hardware را انتخاب کنید. تا سخت افزار مناسب اضافه نشود ، دستگاه ها نمایش داده نمی شوند.

برنامه Domoticz از بسیاری از سخت افزارهای بومی پشتیبانی می کند. برای خواندن سنسور سیل ما باید سخت افزاری به نام "ساختگی" را از لیست سخت افزارها اضافه کنیم.

هنگامی که سخت افزار اضافه می شود ، نمای کلی تمام سخت افزارهای تعریف شده نشان داده می شود. سخت افزار را می توان غیرفعال یا حذف کرد.

سخت افزار جدید باید در لیست باشد و دکمه "ایجاد حسگرهای مجازی" وجود داشته باشد.

روی این دکمه کلیک کنید و Sensor Type "Alert" را انتخاب کنید. حالا ما باید دستگاه را در Domoticz اضافه کنیم تا فعال شود.

مرحله 8: دستگاه را در Domoticz اضافه کنید تا فعال شود

برای فعال شدن دستگاه را در Domoticz اضافه کنید
برای فعال شدن دستگاه را در Domoticz اضافه کنید
برای فعال شدن ، دستگاه را در Domoticz اضافه کنید
برای فعال شدن ، دستگاه را در Domoticz اضافه کنید
برای فعال شدن ، دستگاه را در Domoticz اضافه کنید
برای فعال شدن ، دستگاه را در Domoticz اضافه کنید

لطفاً به شماره زیر "IDX" توجه کنید. این مرجع منحصر به فرد این دستگاه است و ما بعداً در اسکریپت پایتون خود برای رسیدگی به اعلان به آن نیاز داریم. در این حالت شماره IDX 1 است.

با کلیک روی پیکان سبز رنگ در سمت چپ ، دستگاه را فعال کنید (به دلیل فعال بودن دستگاه در تصویر زیر من آبی است).

نام دستگاه را وارد کرده و روی "افزودن" کلیک کنید.

به منوی "Utilities" بروید و دستگاه شما باید در آنجا فهرست شده باشد.

اکنون ما باید برای سنسور خود "رویداد" را برنامه ریزی کنیم. این بدان معناست که ما باید به سرور بگوییم که در صورت دریافت پیغام از حسگر چه باید بکند. و بیایید بگوییم سخت ترین مکان برای من بود:).

مرحله 9: به این روش کار نمی کند…

اینجوری کار نمیکنه…
اینجوری کار نمیکنه…

من با برنامه ریزی رویداد در / device / page شروع کردم. این در زیر مربوط به من نیست ، اما برای نشان دادن آن خوب است.

اگر اعتقاد دارید که برخی از کادرهای تیک را بررسی می کنید و کار می کند ، در اشتباه هستید:) به این شکل کار نمی کند. من فکر می کنم این ویژگی در اینجا هنوز به پایان نرسیده است. فراموش نکنید - این نرم افزار منبع باز است. خوب ، پس از چند ساعت راه حل را پیدا کردم. ما باید از "Events" در منوی کشویی "Setup" استفاده کنیم.

پس از کلیک روی "رویدادها" می توانید رویداد خود را ایجاد کنید. شما می توانید این کار را با نوشتن یک کد در Python یا LUA یا فقط با استفاده از چیزی به نام "Blockly" انجام دهید. من استفاده از Blockly را انتخاب کردم. دو راه برای مجبور کردن سرور به آنچه شما می خواهید وجود دارد.

مرحله 10: رویداد را به روش درست بسازید 1

ساخت رویداد به روش صحیح 1
ساخت رویداد به روش صحیح 1

1. اجرای فایل خارجی از طریق "Events" ، با استفاده از پیام Blockly "شروع اسکریپت"

این برای من در دستگاه ویندوز کاملاً کار می کند. اما من در 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 به ESP8266 ESP-01 Adapter Module w/ CH340G Driver خرید کنید.

مطابق تصویر ماژول ESP8266 را به مبدل TTL وصل کنید و آن را به پورت USB وصل کنید.

اگر مبدل مشابه من دارید ، به تنهایی باید سوئیچ را به موقعیت "Prog" تغییر دهید. محل نصب esptool را پیدا کنید (معمولاً در جایی مانند C: / Program Files (x86) Python36-32 / Scripts. به این پوشه بروید ، خط فرمان را در آنجا راه اندازی کنید. نوع: python esptool.exe --port COM5 erase_flash

البته پورت صحیح را انتخاب کنید. در مورد من COM5 است. می توانید پورت محل نصب ESP را از قسمت Control panel - System - Device manager بررسی کنید.

سیستم عامل را نصب کنید (من آن را از اینجا برداشتم: 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 (ampy) استفاده می کنم.

اما امروزه گزینه دیگری به نام Esplorer وجود دارد. این یک برنامه با رابط کاربری است که به شما امکان می دهد فایل ها را در ماژول های ESP بارگذاری کنید.

دستورالعمل نصب آمپی را می توانید در اینجا بیابید. بنابراین ، سوئیچ را روی مبدل TTL به موقعیت "UART" قرار دهید. ما باید فایلها را بارگذاری کنیم:

  • wifimgr.py - مدیر wifi برای اتصال به شبکه wifi
  • main.py - اسکریپت اصلی ما

در خط فرمان نوع: ampy --port COM5 C: / مسیر فایل خود را قرار دهید

"enter" را بزنید. پس از چند ثانیه باید خط فرمان خالی را مشاهده کنید. این بدان معناست که فایل بارگذاری شده است. می توانید لیست فایل های 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 محلی متصل کنید. شبکه وای فای مورد نظر خود را انتخاب کنید ، رمز عبور را تایپ کنید ، "ارسال" را فشار دهید.

اگر همه چیز درست باشد ، پیام "ESP با موفقیت به شبکه XXXX متصل شد" را مشاهده خواهید کرد. ESP شما اکنون به شبکه WiFi شما متصل است و آماده است. به محض اتصال به WiFi ، به سرور Domoticz متصل می شود. به طور خلاصه باید یک اعلان در تلفن همراه خود دریافت کنید.

می توانید روند را در "Setup"/"Log" دنبال کنید.

ووا لیا!:) کار می کند. اکنون می توانیم مطابق بلوک دیاگرام زیر ، همه قسمت ها را با هم مونتاژ کنیم.

مرحله 14: بلوک نمودار

نمودار بلوکی
نمودار بلوکی

در مورد این نمودار چیزهای زیادی برای گفتن وجود ندارد. بسیار ساده. با کلید S1 برق را وصل کنید. دستگاه در حالت خاموش قرار می گیرد تا آب "سنسور آب" را کوتاه کند. سپس "برد Pololu" روشن می شود و قدرت را به مبدل ولتاژ می دهد. این ماژول قدرت بر اساس تراشه HT7333 ، ولتاژ را به پایدار 3.3V برای ESP8266 تبدیل می کند. ESP بعدی روشن می شود و پیامی را به سرور Domoticz ارسال می کند.

مرحله 15: نتیجه و نتیجه گیری

نتیجه و نتیجه گیری
نتیجه و نتیجه گیری
نتیجه و نتیجه گیری
نتیجه و نتیجه گیری
نتیجه و نتیجه گیری
نتیجه و نتیجه گیری
نتیجه و نتیجه گیری
نتیجه و نتیجه گیری

کار می کند. ارسال اعلان تا 10 ثانیه طول کشید: اتصال به WiFi ، ارسال اعلان ، دریافت پیام زنگ به تلفن شما.

من سنسور را طوری برنامه ریزی کرده ام که در صورت تشخیص آب هر 30 ثانیه زنگ هشدار ارسال کند. تا زمانی که باتری تخلیه شود ، سنسور می تواند تا 5 - 6 اعلان ارسال کند. چنین دستگاهی همچنین می تواند برای تعیین سطح آب استفاده شود. آنچه را که دوست دارم بهبود دهم.

1. برای اینکه سریعتر کار کند. من فکر می کنم سعی می کنم از فناوری ESP-Now استفاده کنم ، که به من امکان می دهد چندین ESP را مستقیماً متصل کنم. در این حالت مصرف برق در حین اتصال بسیار کم است و سریعتر است. بنابراین ایده این است که از یک ESP مانند یک مرکز برای اتصال سایر ESP ها استفاده کنید.

2. پیاده سازی زنگ سطح باتری. اکنون نمی توانید بدانید که آیا قدرت کافی برای ارسال پیام زنگ وجود دارد یا خیر. من فکر می کنم در نسل بعدی این سنسور یک دکمه مخصوص برای آزمایش شارژ باتری وجود دارد.

کاربر باید یک دکمه را فشار دهد و میزان باتری نشان داده می شود.

توصیه شده: