Оглавление:

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 шагов
Видео: Home Assistant - Обзор Платформы Автоматизации 2024, Июль
Anonim
MQTT / Google Home Flood / Датчик WIFI с ESP-01
MQTT / Google Home Flood / Датчик WIFI с ESP-01

В этом руководстве я покажу вам, как построить датчик наводнения / воды Wi-Fi с минимальными затратами. Весь проект обходится мне менее чем в 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-адаптера

(1) Кабель USB-A - MicroUSB.

(1) 8-контактный разъем IC - можно не устанавливать, если вы хотите припаять ESP-01 непосредственно к печатной плате. Разрежьте пластиковые перемычки, образующие зазор между рядами, а затем склейте 2 ряда вместе, см. Фото.

(1) Небольшой корпус для проекта

Ниже приведены дополнительные детали, если вам нужна локальная сигнализация с использованием динамика / зуммера

(1) Стандартный транзистор PNP, выбирайте в соответствии с требованиями к току / мощности динамика / зуммера. В моем случае я использую 2N2907, так как мой динамик всего 0,3 Вт (8 Ом), он обеспечит достаточную мощность для управления динамиком. Вы можете выбрать транзистор и динамик большего размера, если хотите, чтобы звук был громче.

(1) Динамик, см. Примечание о транзисторе PNP выше

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

Шаг 2: Принципиальная схема

Принципиальная электрическая схема
Принципиальная электрическая схема

Первым шагом будет создание схемы, показанной на схеме.

Я построил источник питания 3,3 В постоянного тока, используя старое зарядное устройство для мобильного телефона на 5 В в сочетании с регулятором 3,3 В постоянного тока AMS1117. Для гнезда ESP-01 я использую 8-контактное стандартное гнездо IC и разрезаю пластиковые перемычки, которые создают зазор между рядами, а затем склеиваю 2 ряда вместе.

Схема, которую я разработал, предназначена для определения наличия воды между двумя проводами. Когда вода достигает кончика обоих проводов, она создает сопротивление примерно от 10 кОм до 20 кОм. Затем, последовательно с резистором R1 10 кОм, он подает небольшой ток на базу Q1, вызывая насыщение Q1, прижимая GPIO-2 к земле. R1 необходим для защиты Q1 в случае случайного замыкания чувствительных проводов.

R2 - это подтягивающий резистор, позволяющий загружать ESP-01 с флэш-памяти.

Теперь для дополнительного динамика / зуммера, если вам просто нужен ESP-01, чтобы говорить MQTT и вы не хотите реализовывать эту локализованную тревогу, вы можете удалить R2, Q2, динамик и поместить подтягивающий резистор 10K между GPIO-0. и VCC.

Если вы не чувствуете необходимости использовать переходник с разъема Micro-USB на DIP, вы можете припаять провода между блоком питания 5 В и модулем регулятора 3,3 В. Я предпочитаю использовать адаптер 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, если связь с текущей AP будет потеряна. Если у вас только один SSID, укажите для ssid1 и ssid2 одно и то же значение.

После внесения изменений загрузите эскиз в ESP-01 и подключите ESP-01 к интерфейсной плате.

Шаг 5: тестовый запуск

Чтобы проверить, работает ли наш проект, проще всего будет отслеживать сообщения MQTT в сети. Для этого вам нужно открыть сеанс SSH с брокером mosquitto и выполнить следующую команду:

mosquitto_sub -v -t '#'

Приведенная выше команда позволит нам увидеть все сообщения MQTT, поступающие в брокер.

Теперь включите нашу схему, и если все работает, через несколько секунд вы должны, по крайней мере, увидеть следующее сообщение MQTT:

stat / SumpWaterSensor / LWT Online

Теперь проверьте датчик воды, погрузив 2 чувствительных провода в чашку с водой, и вы должны увидеть это сообщение:

теле / SumpWaterSensor WET

И если вы вытащите провода из воды, вы должны увидеть это сообщение:

теле / 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 об обнаружении воды. В дополнение к этому я также связал поток с узлом pushbullet для отправки уведомления на мой телефон Android.

Я также создал веб-интерфейс, чтобы видеть состояние датчика (включен / отключен, время безотказной работы и т. Д.). Иногда я видел, что он отключается несколько раз в течение 1 недели, судя по статистике, в большинстве случаев это связано с отключением ESP-01 от Wi-Fi или MQTT. Но не слишком волнуйтесь, мой набросок включал процедуру перезапуска ESP-01, если он продолжает попытки подключиться к WIFI и / или MQTT-брокеру.

На изображении на этом этапе показан процесс Node-RED для этого. Вы также можете вставить поток с моей страницы github в свой Node-RED:

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

Повеселись…

Рекомендуемые: