Реклама
Светодиоды

Дверной звонок с различными способами оповещения

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

Инструменты и материалы:
-Wi-Fi роутер;
-3D-принтер;
-Паяльная станция;
-Адаптер питания 5В;
-Программатор USB;
Для дверного звонка
-ESP32-CAM;
-ESP01;
-ИК-датчик — HC-SR501;
-NeoPixel кольцо — 12 светодиодов;
-Микрокнопка;
Звонок — монитор
-ESP01;
-NeoPixel Ring — 16 светодиодов;
-Мини-MP3-плеер;
-Усилитель 3Вт;
-Динамик 3 Вт, 40 мм;
-Транзистор 2Н2222;
-Резистор 470 ом;
На выбор:
Светодиоды — визуальные уведомления
-ESP01;
-NeoPixel Ring — 16 светодиодов;
Часы — визуальное уведомление
-ESP01;
-NeoPixel Ring — 60 светодиодов;
Шаг первый: дверной звонок — версия с IoT
Начинает мастер с блока, который будет установлен непосредственно на входной двери.
Все комплектующие для его сборки указаны в «Для дверного звонка».
Детали соединяются согласно схемы, представленной на эскизе ниже.

Реклама

После подключения можно запрограммировать ESP32 через ESPhome и файл конфигурации yaml, который можно найти здесь.
С этого момента дверной звонок готов к использованию, однако позже потребуется небольшая настройка в Home Assistant (домашний ассистент или IoT).
Вся электроника устанавливается в корпус, напечатанный на 3D-принтере. Мастер сделал несколько вариантов корпуса, все файлы можно скачать здесь.

Шаг второй: дверной звонок без IoT
Это вторая версия дверного звонка, в котором вместо ESP32-CAM используется ESP01. Можно объединить обе версии и в этом случае, при выходе из строя цепи ESP32-CAM, будет работать ESP01, и наоборот.
После подключения нужно запрограммировать ESP01 через ESPhome и файл конфигурации yaml, который можно найти здесь.

Шаг третий: блок оповещения
На предыдущих шагах был создан, теперь нужно сделать устройство оповещения.
После монтажа, согласно схемы ,нужно запрограммировать устройство.
Код можно найти ниже:
Код Arduino для NeoPixel Nudge
Его нужно скомпилировать и загрузить на ESP01 с помощью программатора USB-UART или специального программатора для ESP01.
В начале кода есть 2 определения, они выглядят следующим образом для громкого звонка
// # define SHOWCLOCK
#define PLAYSONG
Если нужно использовать только визуальный сигнал тревоги, прокомментируйте PLAYSONG
//#define SHOWCLOCK
//#define PLAYSONG
Если нужно использовать часы с визуальным будильником с кольцом NEOPIXEL на 60 светодиодов
#define SHOWCLOCK
#define PLAYSONG
Для печати корпуса можно скачать файлы здесь.
Для воспроизведения звука нужно записать, необходимы файлы в формате MP3 на SD-карту.
После включения устройства оно активирует точку доступа с именем типа NeoPixel-Bell-Nudger-xxxxxx. Нужно записать число xxxxxx, которое представляет последние цифры MAC-адреса. Дальше нужно подключится к точке доступа WiFi и настроить свои учетные данные . После сохранения конфигурации устройство перезагружается и подключается к Wi-Fi.

Шаг четвертый: настройка устройства в IoT (интернет вещей)
Теперь нужно прописать дверной звонок в домашней сети интернета вещей. Для этого нужно немного отредактировать файл confiuguration.yaml

 Показать / Скрыть текстmqtt: broker: 127.0.0.1 port: 1883 sensor: — platform: mqtt state_topic: "nudge/ou_04" name: "esp_nudge_04" value_template: {{ value_json.state }} homeassistant: customize: sensor.esp_nudge_04: friendly_name: "Door Bell 04"
Другие устройства, такие как ESP32-CAM, прошитые через ESPhome, должны автоматически обнаруживаться в момент подключения к домашней сети.
Таким образом, должны определиться два новых объекта: дверной звонок и устройство оповещения.
Далее нужно установить данную часть кода.

 Показать / Скрыть текстtype: vertical-stack cards: — type: vertical-stack cards: — type: grid cards: — type: button entity: switch.esp32_cam_doorbell_01_restart name: Restart show_state: false show_icon: true — type: button entity: script.doorbell_01_snapshot show_state: true tap_action: action: call-service service: script.doorbell_01_snapshot service_data: {} target: {} name: Snapshot — type: button entity: light.esp32_cam_doorbell_01_light name: Flash show_state: true — type: picture-entity entity: camera.esp32_cam_doorbell_01 name: DoorBell Cam camera_image: camera.esp32_cam_doorbell_01 show_state: false — type: grid cards: — type: button entity: binary_sensor.esp01_doorbell_01_button name: Doorbell Button show_state: true — type: button entity: weather.local_place show_state: true — type: button entity: light.esp01_doorbell_01_led_ring name: DoorBell NeoPixel show_state: true icon: 'mdi:ring' tap_action: action: none
Все устройства теперь работают независимо, и нужно настроить автоматизацию.
Когда кто-то нажимает кнопку звонка, пользователь слышит звук.

 Показать / Скрыть текстalias: doorbell_01_ring sequence: — service: mqtt.publish data: topic: nudge/in_04 payload: '{ "color": "00ffff", sec: 5, song: 1, volume: 21 }' mode: single icon: 'mdi:doorbell-video'
Следующий скрипт запускает анимацию неопиксельного кольца.

 Показать / Скрыть текстalias: doorbell_01_feedback sequence: — scene: scene.doorbellring_feedback — wait_template: '' timeout: '00:00:05' continue_on_timeout: true — scene: scene.doorbellring_feedback_off mode: single icon: 'mdi:hand'
Если пользователь решит дополнительно установить камеру на входной звонок, то для создания снимка нужен следующий код.

 Показать / Скрыть текстalias: doorbell_01_snapshot sequence: — service: camera.snapshot target: entity_id: camera.esp32_cam_doorbell_01 data: filename: >- /config/www/cam_captures/doorbell_01_{{ now().strftime("%Y%m%d-%H%M") }}.jpg — service: camera.snapshot target: entity_id: camera.esp32_cam_doorbell_01 data: filename: /config/www/cam_captures/doorbell_01_last.jpg mode: single icon: 'mdi:camera'
И наконец последний скрипт, который запускает все скрипты.

 Показать / Скрыть текстalias: DoorBell Rings description: '' trigger: — type: turned_on platform: device device_id: sensor.esp01_doorbell_01 #optionaly your esp32-cam entity_id: binary_sensor.esp01_doorbell_01_button domain: binary_sensor condition: [] action: — service: script.doorbell_01_ring — service: script.doorbell_01_snapshot — service: script.doorbell_ring_feedback mode: single

Все готово. Спасибо мастеру за интересную разработку.

Источник

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть
Закрыть