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

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

>

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

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

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

При реализации этого проекта предполагается, что у пользователя уже установлен домашний помощник.

Давайте посмотрим небольшое видео.

Инструменты и материалы:-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
Дверной звонок с различными способами оповещенияВсе готово. Спасибо мастеру за интересную разработку.

SitesReady

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

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.