Статья

Умный дверной звонок с Apple HomeKit на базе ESP01

Добрый день, после серии моих статей про ESP ко мне в личку поступило много вопросов по поводу того как сделать Звонок. Сегодня я расскажу как просто и дешево сделать звонок с уведомлениями в HomeKit, через Homebridge или HomeAssistant. Идеально на роль контроллера подойдет ESP01 с его родным Модулем реле 01S Relay, зачастую на Aliexpress продаются вместе. 

Итак, нам понадобиться:

Приступим к сборке

Как видим схема примитивная. Справиться даже ребенок.

Приступим к программной части. Для прошивки ESP01 нам необходимо подключить ее к контроллеру TTL. 

Схема подключения:

TTL контроллеры для ESP01 - для совсем ленивых. 

Программная часть

Первым делом установим MQTT Брокер на Raspberry PI. Подключаемся по SSH к нашей Raspbery pi и далее в терминале 

sudo apt update sudo apt install -y mosquitto mosquitto-clients

Во время установки Вам потребуется ввести "Y" и нажать "Enter"

sudo systemctl enable mosquitto.service

Поздравляю вы получили рабочий брокер у себя на Raspbery Pi

Приступим к прошивке ESP8266

Идем по ссылке и качаем самый свежий образ. На момент написания статьи ESPEasy_mega-20181101.zip. Распаковываем архив. Нам понадобиться ESP.Easy.Flasher.exe запускаем ее. И выбираем как на фото ниже вписав свой SSID и пароль роутера. 

Нажимаем "Flash ESP Easy FW" и ждем окончания процесса прошивки. После прошивки ESP сама подключиться к вашему Wi-Fi роутеру. 

Настройка ESP Easy

В настройках роутера смотрим IP адрес нашей ESP и открываем ее. 

Открываем раздел "Config" Вводим Unit Name: "Zvonok" и нажимаем "Submit"

Далее открываем "Controllers" и нажимаем "Edit" Выбираем Протокол: OpenHAB MQTT, вписуем Controller IP: IP адрес малины (Брокера) и порт 1883 и нажимаем "Submit"

Переходим на вкладку "Devices" нажимаем "Edit" и заполняем все как на скриншоте.

На этом настройка Esp Easy закончена, перейдем к добавлению в HomeKit, добавить можно двумя способами.

Способ №1 через HomeBridge

Установим и настроем Plugins Homebridge 

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

Подключаемся по SSH к малине и пишем в командной строке:

sudo npm install -g homebridge-mqttthing

далее nano ~/.homebridge/config.json

и добавляем аксессуары в конфиг:

{ "accessory": "mqttthing", "type": "motionSensor", "name": "Zvonok", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getMotionDetected": "/Zvonok/Relay/Switch" }, "integerValue": "true", "onValue": "1", "offValue": "0" }

Перезагружаем homebridge и радуемся проделанной работой.

Способ №2 через Home Assistant

Тут еще проще, для настройки нам необходим отредактировать файл configuration.yaml, добавив в него:

binary_sensor: - platform: mqtt name: "motionesp" state_topic: "/Zvonok/Relay/Switch" payload_on: "1" payload_off: "0" device_class: motion force_update: false mqtt: broker: localhost port: 1883 protocol: 3.1 discovery: true

После чего перезагрузить Home Assistant.

Вишенка на торте =)

Многие наверно задались вопросом почему мы кнопку "Звонка" объявили "Датчиком Движения"?!...

Сделано это было специально т.к. если в HomeKit в одной комнате находятся Датчик Движения и Камера, то при обнаружении движения HomeKit шлет нам push уведомление с изображением с камеры. При условии что в настройках Датчика Движения включено "Доступ уведомлений"

Выгладит это так:

Режим без звука

Если взять 01S Relay 2 Channel, то можно добавить еще и режим без звука.

Схема будет выглядеть так: 

где: 

Relay1 - объявлен как в предыдущем варианте Датчиком Движения

Relay2 - Свитч разрывает замыкание звонка 

При желании ESP можно разместить в самом звонке, и питать от одного Блока питания. 

В настройках ESP Easy добавить второе реле, по аналоги с первым, обзываем его "Relay2" и указать ему gpio2, а в конфиг Homebridge добавить еще одно реле:

{ "accessory": "mqttthing", "type": "lightbulb", "name": "Zvonok Tixo", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getOn": "/Zvonok/Relay2/Switch", "setOn": "/Zvonok/gpio/2" }, "integerValue": "true", "onValue": "0", "offValue": "1" },

После чего в HomeKit у нас появится "Zvonok Tixo". 

Таким образом если переключатель "Zvonok Tixo" в состояние "Выключен" push уведомления получать мы будем, но звонок не будет проигрывать мелодию. Тем самым получим "Режим без звука". 

Заключение

На этом я думаю можно заканчивать, ставьте лайки, задавайте вопросы, постараюсь всем ответить.  

37

Вернуться назад

Устройства


Raspberry Pi

Raspberry Pi 4

(15 отзывов)

Espressif Systems

ESP8266 NodeMcu v3

(14 отзывов)

Вернуться назад