Оглавление:

MQTT / Google Home DoorBell с использованием ESP-01: 6 шагов
MQTT / Google Home DoorBell с использованием ESP-01: 6 шагов

Видео: MQTT / Google Home DoorBell с использованием ESP-01: 6 шагов

Видео: MQTT / Google Home DoorBell с использованием ESP-01: 6 шагов
Видео: 🔔Video Doorbell🔔 Install and configuring the hardware | Guide | Tutorial | How-To 2024, Ноябрь
Anonim
MQTT / Google Home DoorBell с использованием ESP-01
MQTT / Google Home DoorBell с использованием ESP-01

Вы когда-нибудь пропустили ответ гостю, который позвонил в ваш дверной звонок, только потому, что вы находитесь в той части дома, которая слишком далеко, чтобы услышать звонок в дверь? например, подвал, спальня с закрытой дверью, или, может быть, вы смотрели телевизор или слушали музыку.

Если, как и я, у вас есть одна или несколько домашних колонок Google в нескольких местах по всему дому, это руководство может быть тем, что вам нужно.

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

Мы добавим модуль ESP-01 в существующую систему дверного звонка на 16 В переменного тока, добавив функцию MQTT для отправки сообщения брокеру MQTT (при нажатии переключателя дверного звонка). Брокер MQTT будет ретранслировать сообщение в NodeRED. Получив сообщение MQTT, NodeRED отправит объявление на несколько домашних устройств Google, а также при желании отправит сообщение на мобильный телефон / браузер через pushbullet.

У меня есть страсть к домашней автоматизации DIY, и я постепенно добавляю IOT в свой дом. Google Home был одной из центральных функций моей домашней автоматизации.

Мой сын подсказал мне идею этого проекта, когда он спросил меня, могу ли я сделать так, чтобы главная страница Google объявляла каждый раз, когда кто-то звонит в наш дверной звонок. У нас есть 2 этажа + законченный подвал, и много раз мы не слышали звон, когда мы находимся в подвале или наверху в спальне с закрытой дверью или с включенным телевизором.

У нас есть 4 дома google home mini, размещенные в разных местах / комнатах, и, используя дома google для объявления дверного звонка, мы сразу узнаем в любом месте дома, если кто-то звонит в дверной звонок.

В моем доме я использую RaspberryPi ZeroW для размещения сервера Mosquitto MQTT и NodeRED. Он работает уже больше года без каких-либо проблем.

Использованная литература:

  • Схемы подключения дверного звонка:
  • Установите Mosquitto MQTT Broker на Raspberry Pi:
  • Установите NodeRED на Raspberry Pi:

Шаг 1: Создайте схему для интерфейса ESP-01 и дверного звонка

Создайте цепь для интерфейса ESP-01 и дверного звонка
Создайте цепь для интерфейса ESP-01 и дверного звонка
Создайте цепь для интерфейса ESP-01 и дверного звонка
Создайте цепь для интерфейса ESP-01 и дверного звонка
Создайте цепь для интерфейса ESP-01 и дверного звонка
Создайте цепь для интерфейса ESP-01 и дверного звонка

Первым шагом будет создание схемы, которая будет интерфейсом между ESP-01 и Door Chime. Типичный дверной звонок срабатывает, когда между контактами "TRANS (бывший)" и "FRONT / REAR" 16 В переменного тока, как показано на моей первой фотографии. Напряжение присутствует на этих контактах при нажатии кнопки дверного звонка.

Схема, которую я разработал, должна воспринимать этот сигнал 16 В переменного тока и преобразовывать его в цифровой сигнал примерно 3,3 В постоянного тока. Это основной однополупериодный выпрямитель, образованный D1 и C1. В этой ситуации нам не нужен двухполупериодный выпрямитель, поскольку на выходе постоянного тока очень небольшая нагрузка, что позволяет нам сэкономить немного места на плате. Я хочу сделать доску как можно меньше, чтобы можно было поместить ее в существующий колокольчик.

R1 и R2 образуют делитель напряжения, снижающий пиковое напряжение постоянного тока примерно до 3,3 В.

R3, TR1 и R4 образуют инвертор, обеспечивающий обратную логику для ESP-01 GPIO-2. Это необходимо для обеспечения ВЫСОКОГО логического уровня во время загрузки (с подтягивающими R4 и R5) для загрузки ESP-01 с флэш-памяти. Когда кнопка дверного звонка нажата, он передает логику LOW на GPIO-2. TR1 может быть любой NPN-транзистор малой мощности, в моем случае я использовал 2N3904.

V1 - это источник питания 3,3 В постоянного тока, который я построил с использованием старого зарядного устройства для мобильного телефона на 5 В в сочетании с регулятором 3,3 В постоянного тока AMS1117, который я покажу на следующем шаге.

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

Шаг 2: источник питания 3,3 В постоянного тока для ESP-01

Источник питания 3,3 В постоянного тока для ESP-01
Источник питания 3,3 В постоянного тока для ESP-01
Источник питания 3,3 В постоянного тока для ESP-01
Источник питания 3,3 В постоянного тока для ESP-01
Источник питания 3,3 В постоянного тока для ESP-01
Источник питания 3,3 В постоянного тока для ESP-01

На этом этапе мы создадим источник питания 3,3 В постоянного тока для ESP-01. У меня есть несколько старых USB-адаптеров для зарядного устройства на 500 мА и 700 мА 5 В постоянного тока, которые я переназначил для этого проекта. Нам также нужен стабилизатор 3,3 В постоянного тока, чтобы снизить напряжение 5 В до 3,3 В, для этого я использую дешевый предварительно собранный модуль стабилизатора на базе AMS1117, который я купил на ebay. Вы можете выполнить поиск по запросу «Модуль 3.3V AMS1117» и найти то, что вам подходит.

Этот модуль регулятора 3,3 В очень мал, поэтому я могу поместить его внутрь оригинального зарядного устройства USB на 5 В, что делает его более безопасным от потенциального короткого замыкания. Я удалил штыри переменного тока из модуля зарядного устройства и заменил его двумя кабелями, которые будут подключены к 120 В переменного тока от стены за моим существующим звонком. Но не удаляйте зубцы на этом этапе, пока мы не проведем тестовый прогон на следующем этапе.

Если поблизости есть настенная розетка или вам неудобно подключать источник питания непосредственно к домашней проводке, вы можете при желании просто подключить модифицированный источник питания к розетке и проложить кабель к звуковой сигнализации, хотя он может выглядеть не так чисто, как подключение напрямую к домашней электропроводке.

Посмотрите одну из моих фотографий, чтобы увидеть, что за моим звонком проложена проводка 120 В переменного тока и трансформатор 16 В переменного тока для звонка.

Затем выходной сигнал регулятора 3,3 В будет подключен к интерфейсной плате ESP-01 в соответствии с предыдущим шагом.

Шаг 3: Прошивка 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 к интерфейсной плате.

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

Тестовый забег
Тестовый забег
Тестовый забег
Тестовый забег
Тестовый забег
Тестовый забег

На шаге 1 мы построили интерфейсную плату ESP-01, а на шаге 2 у нас есть источник питания 3,3 В для платы ESP-01. Теперь подключим выход блока питания к плате в соответствии с принципиальной схемой, обозначенной как V1.

Теперь следующий шаг - подключить клеммы трансмиссии / дверного звонка к разъемам интерфейсной платы, обозначенным как «Клеммы дверного звонка». Поскольку мой звонок установлен высоко на стене, для пробного запуска я временно протянул длинную пару кабелей от клемм звонка к плате, чтобы я мог подключить блок питания.

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

mosquitto_sub -v -t '#'

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

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

stat / DoorBell / LWT Online

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

теле / дверной звонок ВКЛ

Если вы видите эти сообщения, ваш проект успешен.

Я также включил в скетч несколько полезных тем MQTT, которые вы можете использовать:

"stat / DoorBellInfo": это сообщение отправляется каждую минуту, чтобы предоставить информацию о времени безотказной работы и другую информацию.

"cmnd / DoorBellInfo": ESP-01 отправит информацию, если получит эту тему со значением '1' (ascii = 49) "cmnd / DoorBellCPUrestart": ESP-01 перезапустится, если получит эту тему со значением '1 '(ascii = 49) "cmnd / DoorBellCPUreset": ESP-01 будет сброшен, если получит эту тему со значением' 1 '(ascii = 49)

"tele / FrontDoorBell": ESP-01 отправит сообщение в этой теме со значением 'ON', если будет нажат дверной звонок.

Шаг 5: интеграция платы и блока питания в колокольчик

Интеграция платы и блока питания в колокольчик
Интеграция платы и блока питания в колокольчик
Интеграция платы и блока питания в колокольчик
Интеграция платы и блока питания в колокольчик
Интеграция платы и блока питания в колокольчик
Интеграция платы и блока питания в колокольчик

Теперь, когда у нас есть успешный тестовый запуск, нам нужно собрать плату и блок питания внутри дверного звонка (если это возможно). В моем существующем колокольчике есть пустой корпус, который я смог разрезать и поместить внутрь этого места блок питания. Плата ESP-01 не умещается в этом маленьком пространстве, но все же помещается в общую коробку для звуковых сигналов. Я просто использовал толстый двусторонний скотч для крепления интерфейсной платы ESP-01.

Теперь мы можем удалить металлические штыри из нашего зарядного устройства USB и заменить их более толстым кабелем, который мы можем подключить к домашней проводке. Обязательно выключите автоматический выключатель, который подает электричество в цепь звукового сигнала.

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

Шаг 6: последний штрих

Последнее прикосновение
Последнее прикосновение

Теперь, когда проект работает и мы можем опубликовать сообщение MQTT брокеру, следующий шаг - подумать, что с этим делать.

В своем проекте я использую Node-RED, чтобы слушать / подписываться на эту тему MQTT дверного звонка и сообщать о ней нескольким домашним спикерам Google. В дополнение к этому я также связал поток с узлом pushbullet для отправки уведомления на мой телефон Android, чтобы я знал, звонит ли кто-нибудь в дверь, даже если меня нет дома. Уведомление Pushbullet бесполезно для некоторых, но пару раз оно было для меня довольно полезным, в сочетании с видеокамерой на моем крыльце я могу видеть, кто пришел, чтобы доставить товар (обычно они звонят в дверь). Я не могу сильно полагаться на функцию обнаружения движения камеры из-за различных помех, особенно движущихся теней деревьев.

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

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

Повеселись…

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