فهرست مطالب:
- مرحله 1: قطعات مورد نیاز
- مرحله 2: نمودار مدار
- مرحله 3: ساختن مدار
- مرحله 4: چشمک زدن ESP-01
- مرحله 5: اجرای آزمایشی
- مرحله 6: سنسور را نصب کنید
- مرحله 7: لمس نهایی
تصویری: MQTT/Google Home Flood/Water WIFI Sensor with ESP-01: 7 Step
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
در این مقاله آموزشی ، نحوه ساخت سنسور wifi سیل/آب با حداقل هزینه را به شما نشان خواهم داد. کل پروژه برای قطعاتی که از ebay و قطعات یدکی موجود تهیه می کنم کمتر از 8 دلار برای من هزینه دارد.
در این پروژه ، ما از ESP-01 برای ارائه سرویس گیرنده Wifi و MQTT برای تشخیص وجود آب استفاده می کنیم و به صورت اختیاری از بلندگو/زنگ مستقیم متصل به هم برای ارائه زنگ محلی استفاده می کنیم.
برنامه خاص من برای پروژه این است که در صورت خرابی پمپ مخزن ، سیل/آب داخل پمپ مخزن من را به خوبی تشخیص دهم. وقتی آب توسط 2 سیم باز تشخیص داده شود ، به کارگزار MQTT پیام می دهد. سپس کارگزار MQTT پیام را به NodeRED منتقل می کند. با دریافت پیام MQTT ، NodeRED اعلان را به چندین دستگاه Google 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.3V AMS1117
(1) Micro-USB To DIP Adapter Female Connector PCB Converter DIY Kit
(1) کابل USB-A به MicroUSB.
(1) سوکت IC 8 پین-اگر می خواهید ESP-01 را مستقیماً به برد بچسبانید ، می توانید آن را حذف کنید. پل های پلاستیکی را که فاصله بین ردیف ها ایجاد می کنند برش دهید و سپس 2 ردیف را به هم بچسبانید ، عکس را ببینید.
(1) محوطه کوچک برای پروژه
در صورت نیاز به هشدار محلی با استفاده از بلندگو/زنگ ، قطعات اختیاری در زیر آمده است
(1) ترانزیستور PNP عمومی ، با توجه به بلندگو/صدای زنگ/نیاز وات انتخاب کنید. در مورد من از 2N2907 استفاده می کنم زیرا بلندگوی من فقط 0.3 وات (8 اهم) است ، بنابراین قدرت کافی را برای رانندگی بلندگو فراهم می کند. اگر می خواهید صدای بلندتری داشته باشید می توانید یک ترانزیستور و بلندگوی بزرگتر انتخاب کنید.
(1) بلندگو ، توجه داشته باشید در ترانزیستور PNP در بالا
(1) مقاومت 100 - 110 اهم
مرحله 2: نمودار مدار
اولین قدم ایجاد مدار نشان داده شده در نمودار است.
من منبع تغذیه 3.3VDC را با استفاده از یک شارژر تلفن همراه قدیمی 5 ولت همراه با تنظیم کننده AMS1117 3.3VDC ساختم. برای سوکت ESP-01 ، من از یک سوکت IC استاندارد 8 پین استفاده می کنم و پل های پلاستیکی را که فاصله بین ردیف ها ایجاد می کند ، برش می دهم و سپس 2 ردیف را به هم می چسبانم.
مداری که طراحی کردم برای احساس وجود آب بین دو سیم است. هنگامی که آب به نوک هر دو سیم برسد ، مقاومت تقریبی 10K تا 20K اهم ایجاد می کند. سپس به صورت سری با 10K اهم R1 ، جریان کوچکی را در پایه Q1 ایجاد می کند که باعث اشباع Q1 می شود و GPIO-2 را به زمین محکم می کند. R1 برای محافظت از Q1 در صورت کوتاه شدن تصادفی سیمهای حسگر ضروری است.
R2 یک مقاومت کششی است که به ESP-01 اجازه می دهد تا از فلاش بوت شود.
حالا برای بلندگو/زنگ اختیاری ، اگر فقط به ESP-01 نیاز دارید تا MQTT صحبت کند و نمی خواهید این هشدار دهنده محلی را اجرا کنید ، می توانید R2 ، Q2 ، بلندگو را حذف کرده و یک مقاومت کششی 10K بین GPIO-0 قرار دهید. و VCC
اگر نیازی به استفاده از آداپتور زن Micro-USB به DIP ندارید ، می توانید سیم ها را بین 5 ولت PS به ماژول تنظیم کننده 3.3 ولت لحیم کنید. من ترجیح می دهم از آداپتور MicroUSB زن استفاده کنم تا بتوانم از هرگونه شارژر تلفن همراه و کابل MicroUSB استفاده کنم.
مرحله 3: ساختن مدار
مطابق نمودار مدار صفحه قبل ، تمام قطعات و قطعات را به PCB لحیم کرده و PCB را به اندازه برش دهید.
PCB را داخل محفظه ای قرار دهید که مناسب PCB و بلندگوی اختیاری باشد. در مورد من ، همه قطعات داخل یک جعبه خروجی تلفن کوچک قرار می گیرند ، اگرچه من باید کمی جلد را گرم کنم تا برآمدگی ایجاد شود تا ماژول ESP-01 مناسب باشد.
مرحله 4: چشمک زدن ESP-01
در این مرحله ، ESP-01 را با طرح آردوینو فلش می کنیم. اگر هرگز ماژول ESP-01 را فلش نکرده اید ، می توانید دستورالعمل من را برای شروع دنبال کنید:
می توانید طرح من را در صفحه github من پیدا کنید:
در طرح ، حداقل باید اطلاعات زیر مربوط به شبکه/راه اندازی خانه خود را تغییر دهید:
#dequine MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"؛ const char* password1 = "MYSSIDpassword"؛ const char* ssid2 = "SSID1"؛ const char* password2 = "MYSSIDpassword"؛
در شبکه خانگی من ، 2 نقطه دسترسی متفاوت دارم که 2 SSID متفاوت را پخش می کند ، و این طرح در صورت از بین رفتن ارتباط با AP فعلی ، با اتصال به SSID بعدی افزونگی را امکان پذیر می کند. اگر فقط یک SSID دارید ، هر دو ssid1 و ssid2 را با یک مقدار پر کنید.
پس از انجام اصلاح ، طرح را در ESP-01 بارگذاری کرده و ESP-01 را به برد رابط وصل کنید.
مرحله 5: اجرای آزمایشی
برای آزمایش اینکه پروژه ما کار می کند یا نه ، ساده ترین کار این است که پیام های MQTT را در شبکه رصد کنیم. برای انجام این کار ، باید یک جلسه SSH را برای کارگزار پشه باز کنید و دستور زیر را صادر کنید:
mosquitto_sub -v -t '#'
دستور بالا به ما اجازه می دهد تا همه پیامهای MQTT را که به کارگزار وارد می شود مشاهده کنیم.
اکنون مدار ما را روشن کنید ، و اگر همه چیز کار کرد ، در عرض چند ثانیه حداقل باید پیام MQTT زیر را مشاهده کنید:
stat/SumpWaterSensor/LWT Online
حالا سنسور آب را با فرو بردن 2 سیم حسگر در یک فنجان آب آزمایش کنید و این پیام را خواهید دید:
tele/SumpWaterSensor WET
و اگر سیم ها را از آب خارج کنید ، باید این پیام را ببینید:
tele/SumpWaterSensor DRY
اگر آن پیام ها را مشاهده کردید ، پروژه شما موفقیت آمیز است.
من همچنین چندین موضوع مفید 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 برای گوش دادن/عضویت در مبحث "tele/SumpWaterSensor" MQTT استفاده می کنم و در صورت تشخیص آب به چندین بلندگوی خانه Google اعلام می کنم. علاوه بر آن ، من همچنین جریان را به یک گره pushbullet وصل کردم تا اعلان را به تلفن اندرویدی خود ارسال کنم.
من همچنین یک وب جلویی ایجاد کردم تا وضعیت سنسور را ببینم (روشن/آفلاین ، زمان به کارگیری و غیره). گاهی اوقات می بینم که چند بار در طول 1 هفته آفلاین می شود ، از آمار ، بسیاری اوقات به دلیل قطع ESP-01 از wifi یا MQTT است. اما نگران نباشید ، طرح من شامل راه اندازی مجدد ESP-01 است اگر در تلاش برای اتصال به کارگزار WIFI و/یا MQTT شکست بخورد.
تصویر روی این مرحله ، جریان Node-RED را برای انجام این کار نشان می دهد. همچنین می توانید جریان را از صفحه github من در Node-RED خود بچسبانید:
اعلام خانه Google تنها یک نمونه برای این پروژه است ، اما من فکر می کنم مفیدترین و کاربردی ترین است. شما همیشه می توانید با سایر شنونده های MQTT ارتباط برقرار کنید ، یا حتی از IFTTT برای رانندگی دستگاه های دیگر در صورت تشخیص آب استفاده کنید.
خوش بگذره…
توصیه شده:
شروع کار با Esp 8266 Esp-01 با Arduino IDE - نصب بردهای Esp در Arduino Ide و برنامه نویسی Esp: 4 مرحله
شروع کار با Esp 8266 Esp-01 با Arduino IDE | نصب بردهای Esp در Arduino Ide and Programming Esp: در این دستورالعمل نحوه نصب بردهای esp8266 در Arduino IDE و نحوه برنامه نویسی esp-01 و بارگذاری کد در آن را یاد می گیریم. از آنجا که تخته های esp بسیار محبوب هستند ، بنابراین به فکر ایجاد دستورالعمل های آموزشی هستم این و اکثر مردم با مشکل روبرو هستند
Ok Google Plant Waterer/Water Pistol: 20 Step
Ok Google Plant Waterer/water Pistol: این یک پروژه سرگرم کننده است که از Google Home یا هر تلفن همراه با دستیار Google روی آن برای پاشیدن آب به شخصی یا آبیاری برخی از گیاهان استفاده می کند. همچنین کاربردهای بالقوه زیادی برای موارد دیگر مانند چراغ ، گرمایش ، فن ها و غیره دارد. اگر این را دوست دارید
سیستم عامل Sonoff B1 Home Automation Openhab Google Home: 3 مرحله
سیستم عامل Sonoff B1 Firmware Home Automation Openhab Google Home: من سیستم عامل Tasmota را برای کلیدهای Sonoff خود دوست دارم. اما واقعاً از سیستم عامل Tasmota در Sonoff-B1 من راضی نبود. من کاملاً موفق به ادغام آن در Openhab و کنترل آن از طریق Google Home نشدم. بنابراین شرکت خود را نوشتم
ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 مرحله
ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: در این دستورالعمل به شما نشان می دهم که چگونه از ESP-NOW در اتوماسیون خانه خود استفاده کرده ام. در شماتیک می توانید جریانهای ارتباطی را مشاهده کنید من به شما نشان می دهم: چگونه فرستنده در کارگاه گیرنده در ارتباط سریالی با Raspberry Pi کار می کند
MQTT/Google Home DoorBell با استفاده از ESP-01: 6 مرحله
MQTT/Google Home DoorBell با استفاده از ESP-01: آیا تا به حال جواب نداده اید که به مهمانی که زنگ خانه شما را زده است فقط به این دلیل که در قسمتی از خانه هستید که برای شنیدن صدای زنگ خانه بسیار دور است ، پاسخ دهید؟ مانند زیرزمین ، اتاق خواب در بسته ، یا شاید شما در حال تماشای تلویزیون یا گوش دادن به موسیقی بودید. اگر دوست دارید