Светодиоды

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

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

Инструменты и материалы:
-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 не будет опубликован. Обязательные поля помечены *

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