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

02 ноября 2018, 12:14

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

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




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

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

Заключение


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

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


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Артем Симоненко (TopGun)
    Артем Симоненко (TopGun) отредактировано 8 месяцев назад

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

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

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

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

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

      • Артем Симоненко (TopGun)
        Артем Симоненко (TopGun) 8 месяцев назад

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

        • Дмитрий Крылов (DKrylov)
          Дмитрий Крылов (DKrylov) отредактировано 5 месяцев назад

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

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

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

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

    Годнота

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

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

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

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

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

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

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

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

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

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

  9. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано 4 месяца назад

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

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

  10. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано 4 месяца назад

    Собрал звонок на 220в 

    Звонок работает как положено но уведомления приходят со второго-третьего нажатия при условии что звонок и IPhone находятся в одной сети WiFi

  11. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) 4 месяца назад

    mega-20181101

  12. Дмитрий Крылов (DKrylov)
    Дмитрий Крылов (DKrylov) отредактировано 4 месяца назад

    По такой схеме на мой взгляд было-бы интереснее

    1) Не надо блок питания

    2) Все в компактном корпусе

    3) Звонок можно воткнуть любой на 220 или с минимальными переделками на батарейках

    4)  Сразу в Homekit  малина не нужна

    с этой прошивкой https://github.com/RavenSystem...

    Из минусов не работает камера так-как в настройках выбран Lock Mechanism но уведомления приходят без пропусков и задержек

    1000x_image.jpg?1552739109
  13. Карен  Закарян (Karen)
    Карен Закарян (Karen) отредактировано 3 месяца назад

    Ранее......

    В одной комнате находятся Датчик Движения и Камера, Но при обнаружении движения(звонка в дверь) HomeKit шлет push уведомление НО без изображения с камеры. В настройках Датчика Движения включено "Доступ уведомлений"

    Решение!!!

    "platform": "Camera-ffmpeg",

    "cameras": [ {

    "name": "Cams",

    "videoConfig": {

    "source": "-re -i rtsp://admin:asfssdf@192.168.1.41:554/Streaming/ch01/101",

    "stillImageSource": " -i rtsp://admin:asfssdf@192.168.1.41:554/Streaming/ch01/101 -vframes 1 -r 1",

    "maxStreams": 2,

    "maxWidth": 1280,

    "maxHeight": 720,

    "maxFPS": 30

    } }

     в строке  stillImageSource  должно повторяться из строки source  с приставкой   -vframes 1 -r 1 

    в моем случае это выглядит так  "stillImageSource": " -i rtsp://admin:asfssdf@192.168.1.41:554/Streaming/ch01/101 -vframes 1 -r 1",

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

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

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit
22 октября 2018, 19:00
Сборка DIY Лабораторного блока питания из китайских модулей
25 ноября 2018, 18:23
Умное зеркало добавляем модули Airplay и Google Calendar
03 октября 2018, 22:03
Как собрать и настроить Hyperion Ambilight - адаптивную подсветку ТВ.