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

2 нояб. 2018 г.

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

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

ESP01

 01S Relay




Проводной звонок, подойдет абсолютно любой

Блок питания на 5В.

ttl контроллер

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

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

Приступим к программной части. Для прошивки 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 уведомление с изображением с камеры. При условии что в настройках Датчика Движения включено "Доступ уведомлений"

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

На заблокированном телефоне

На заблокированном телефоне если развернуть уведомление 

В приложении HomeKit

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

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


 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 уведомления получать мы будем, но звонок не будет проигрывать мелодию. Тем самым получим "Режим без звука". 

Заключение


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

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


Мы в Telegram - t.me/soprut
  1. (TopGun) отредактировано 3 месяца назад

    А если звонок на 220 в? То как быть? Если я в вашей схеме в место кнопки поставлю контактор, а сам контактор будет уже подключен к звонку(кнопке, при нажатии на которую на проводах появляется ток)?

    • Дмитрий Батюшин (ReD)
      Дмитрий Батюшин (ReD) 3 месяца назад

      Все получиться только зачем контактор щёлкает громко, лучше маломощное реле 220в

      • (TopGun) 3 месяца назад

        Можете посоветовать?

    • Дмитрий Батюшин (ReD)
      Дмитрий Батюшин (ReD) 3 месяца назад

      поискав реле в гугле их достаточно, вообще как бы вы не делали будет работать главное чтоб контакты на ESP замыкались, а то через что вы будете это делать уже не важно. Только вот сижу голову ломаю а для чего вам замыкать именно 220В линию? можно ведь отключить 220 и просто замыкать есп.

      • (TopGun) 3 месяца назад

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

        • (DKrylov) отредактировано 6 дней назад

          01S Relay 10a 220v просто вставить провода от вашей кнопки в место проводов звонка на схеме 

  2. Артур Минасян (aptyp222) 3 месяца назад

    драйвера для eps01S 

  3. Vladislav Volchkov (vladislav_volchkov)
    Vladislav Volchkov (vladislav_volchkov) 3 месяца назад

    Годнота

  4. Александр Шотиди (Grek) 3 месяца назад

    Пытаюсь повторить , но  не удается прошить  после старта прошивки  вылетает пишет что ошибка чтения (TTL контроллеры для ESP01) не подскажешь куда смотреть ?

    • Александр Шотиди (Grek) 3 месяца назад

      Вот это самый прошивальшик для ленивых  ну никак не  завелся у меня ((  Прошил обычным , все работает сейчас закончу тесты  и буду в домофон прилаживать !

      • Дмитрий Батюшин (ReD)
        Дмитрий Батюшин (ReD) 2 месяца назад

        а гпио0 замыкал на гнд?

  5. Александр Шотиди (Grek) 2 месяца назад

    Да чего только не замыкал , я погуглил , говорят проблемы с этим прошивальщиком , то ли ему USB 3 не нравится то ли драйвер нужно какой то другой на 10 винду , сходу решение не нашел  и  оставил на потом . Обычным прошивается все  без проблем.  Кстати я купил немного не тот релейный блок , пришлось немного паяльником поработать , но сейчас все работает ! 

    • Дмитрий Батюшин (ReD)
      Дмитрий Батюшин (ReD) месяц назад

      Напиши в личку помогу

      • Александр Шотиди (Grek) месяц назад

        ок, 3 го до дома доберусь напишу.

  6. (nusf) месяц назад

    Добрый день, подскажите пожалуйста как прошить Esp8266 на MacOs, чтобы получить такой-же результат? Спасибо

  7. (DKrylov) отредактировано 21 день назад
    Комментарий был удален
  8. Alex Khmelenko (Outsiderz)
    Alex Khmelenko (Outsiderz) 23 дня назад

    А как сделать тоже самое но когда звонят в домофон?? Когда в квартире звонить трубка домофона

    • Дмитрий Батюшин (ReD)
      Дмитрий Батюшин (ReD) отредактировано 22 дня назад

      Не понял, объясни подробнее 

    • (DKrylov) отредактировано 22 дня назад
      Комментарий был удален
  9. (DKrylov) 17 дней назад

    Возможно ли сделать звонок на 220в из Sonoff Basic или ESP01+01S Relay без использования Homebridge

    Как в этой статье (https://sprut.ai/client/articl...)

К списку статей

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

4 сент. 2018 г.
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 нояб. 2018 г.
Способы автоматизации механических ворот
15 окт. 2018 г.
Прошивка для Sonoff c нативным HomeKit
27 окт. 2018 г.
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
1 окт. 2018 г.
Нативный HomeKit на ESP8266
15 июн. 2018 г.
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
2 окт. 2018 г.
Установка SDK для компиляции прошивок под HomeKit
22 окт. 2018 г.
Сборка DIY Лабораторного блока питания из китайских модулей
25 нояб. 2018 г.
Умное зеркало добавляем модули Airplay и Google Calendar
3 окт. 2018 г.
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.