Съдържание:

MQTT/Google Home Flood/WIFI сензор за вода с ESP-01: 7 стъпки
MQTT/Google Home Flood/WIFI сензор за вода с ESP-01: 7 стъпки

Видео: MQTT/Google Home Flood/WIFI сензор за вода с ESP-01: 7 стъпки

Видео: MQTT/Google Home Flood/WIFI сензор за вода с ESP-01: 7 стъпки
Видео: Zigbee smoke sensor - testing a budget option for Tuya Smart and Home Assistant 2024, Юли
Anonim
MQTT/Google Home Flood/WIFI сензор за вода с ESP-01
MQTT/Google Home Flood/WIFI сензор за вода с ESP-01

В тази инструкция ще ви покажа как да изградите wifi сензор за наводнение/вода с минимални разходи. Целият проект ми струва по-малко от 8 долара за части, които купувам от ebay и съществуващите ми резервни части.

В този проект ще използваме ESP-01, за да предоставим Wifi и MQTT клиент за откриване на наличие на вода, и по избор ще използваме директно свързан високоговорител/зумер, за да осигурим локализирана аларма.

Моето конкретно заявление за проект е да открия наводнение/вода вътре в кладенеца на помпата ми в случай на повреда на помпата. Когато водата бъде открита от 2 отворени проводника, тя ще изпрати съобщение до брокера на 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) 10K ом резистор

(1) общ NPN транзистор с малък сигнал (използвах 2N3904)

(2) дълги проводници

(1) Общо 5V захранване (тази верига изисква по -малко от 300mA ток)

(1) 3.3V регулаторен модул AMS1117

(1) Комплект „Направи си сам“Micro-USB към DIP адаптер женски конектор PCB конвертор

(1) USB-A към MicroUSB кабел.

(1) 8-пинов IC контакт-може да бъде пропуснат, ако искате да запоите ESP-01 директно към платката. Изрежете пластмасовите мостове, които създават празнината между редовете, и след това залепете двата реда заедно, вижте снимката.

(1) Малък корпус за проекта

По -долу са опционални части, ако имате нужда от локализирана аларма с помощта на високоговорител/зумер

(1) Общ PNP транзистор, изберете според изискванията на тока/мощността на високоговорителя/зумера. В моя случай използвам 2N2907, тъй като високоговорителят ми е само 0,3 W (8 ома), той ще осигури достатъчно мощност за задвижване на високоговорителя. Можете да изберете по -голям транзистор и високоговорител, ако искате по -силен звук.

(1) Високоговорител, вижте бележката за PNP транзистора по -горе

(1) 100 - 110 ома резистор

Стъпка 2: Електрическа схема

Електрическа схема
Електрическа схема

Първата стъпка би била създаването на веригата, показана на диаграмата.

Изградих захранването 3.3VDC, използвайки старо зарядно устройство за 5V мобилен телефон, съчетано с AMS1117 3.3VDC регулатор. За гнездото ESP-01 използвам 8-пинов стандартен IC контакт и изрязвам пластмасовите мостове, които създават пролуката между редовете, и след това залепвам двата реда заедно.

Схемата, която проектирах, е да усети наличието на вода между двата проводника. Когато водата достигне върха на двата проводника, това би създало съпротивление от приблизително 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 адаптер, можете да запоите проводници между 5V PS към модула на регулатора 3.3V. Предпочитам да използвам женския MicroUSB адаптер, за да мога да използвам всяко общо зарядно устройство за мобилен телефон и MicroUSB кабел.

Стъпка 3: Изграждане на веригата

Изграждане на веригата
Изграждане на веригата
Изграждане на веригата
Изграждане на веригата
Изграждане на веригата
Изграждане на веригата

Запояйте всички компоненти и части в печатна платка съгласно схемата на предходната страница и изрежете печатната платка до размера.

Поставете печатната платка в кутия, която отговаря на печатната платка и допълнителния високоговорител. В моя случай всички части ще се поберат в малка изходна кутия за телефон, въпреки че трябва да загрея малко капака, за да създам издатина, така че модулът ESP-01 да се побере.

Стъпка 4: Премигване на ESP-01

В тази стъпка ще премигнем ESP-01 с скица arduino. Ако никога не сте мигали с модул ESP-01, можете да следвате инструкциите ми, за да започнете:

Можете да намерите моята скица в моята страница на github:

В скицата най -малкото трябва да промените следната информация, свързана с вашата домашна мрежа/настройка:

#define 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 и тази скица би позволила резервиране чрез свързване към следващия SSID, ако комуникацията с текущата точка на достъп се загуби. Ако имате само един SSID, попълнете и ssid1, и ssid2 със същата стойност.

След като направите промяната, качете скицата в ESP-01 и включете ESP-01 в интерфейсната платка.

Стъпка 5: Тестване

За да проверите дали нашият проект работи, най -лесно би било да следите MQTT съобщенията в мрежата. За да направите това, трябва да отворите SSH сесия за брокера Mosquitto и да издадете следната команда:

mosquitto_sub -v -t '#'

Горната команда ще ни позволи да видим всички MQTT съобщения, идващи в брокера.

Сега включете нашата верига и ако всичко работи, след няколко секунди трябва да видите поне следното съобщение MQTT:

stat/SumpWaterSensor/LWT Онлайн

Сега тествайте сензора за вода, като потопите 2 -те сензорни проводника в чаша вода и трябва да видите това съобщение:

теле/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 (Hz)

"cmnd/SumpWaterSensorDebug": Активиране и задаване на ниво на серийно отстраняване на грешки (по подразбиране е 0 - без отстраняване на грешки)

Стъпка 6: Монтирайте сензора

Монтирайте сензора
Монтирайте сензора
Монтирайте сензора
Монтирайте сензора

В моето приложение искам да наблюдавам нивото на водата в помпата на картера си и да ме уведомява, ако водата достигне над поплавъка на помпата на картера, което означава, че помпата на картера ми не работи. Прокарах проводниците и използвах телени връзки, за да го закрепя по дренажната тръба.

Стъпка 7: Последно докосване

Последно докосване
Последно докосване

Сега, след като проектът работи и може да публикува MQTT съобщение на брокер, следващата стъпка е да помислите какво да правите с това.

В моя проект използвам Node-RED, за да слушам/се абонирам за темата MQTT "tele/SumpWaterSensor" и да обявя на няколко домашни говорители на Google, ако се открие вода. В допълнение към това, аз също свързах потока с възел pushbullet, за да изпратя известие до моя телефон с Android.

Създадох и уеб интерфейс, за да видя състоянието на сензора (включен/офлайн, ъптайм и т.н.). Понякога виждах, че той излиза офлайн няколко пъти в течение на 1 седмица, от статистиката, много пъти се дължи на изключване на ESP-01 от wifi или MQTT. Но не се притеснявайте много, моята скица включва рутина за рестартиране на ESP-01, ако продължава да се проваля, опитвайки се да се свърже с WIFI и/или MQTT брокер.

Изображението на тази стъпка показва потока Node-RED, за да постигне това. Можете също така да поставите потока от моята страница на github във вашия Node-RED:

Google обявата за дома е само един пример за този проект, но мисля, че е най -полезният и практичен. Винаги можете да взаимодействате с друг MQTT слушател или дори да използвате IFTTT, за да управлявате други устройства при откриване на вода.

Забавлявай се…

Препоръчано: