"Бомж" Умный дом, конфигурирование конечных устройств. Часть 3

26 апреля 2019, 19:45

Пришло время подключения наших датчиков и реле к ESP8266. В качестве прошивки я выбрал Sonoff-Tasmota как достаточно стабильный и активно развивающийся open source проект. Прошивка на сегодня поддерживает "из коробки" огромное множество сенсоров, систем управления умным домом Home Assistant,  DomoticzHomeBridge,  AlexaGoogle Assistant и многое другое.  Качаем прошивку с гитхаба, нам подойдет практически любая бинарная сборка, sonoff-sensors поддерживает больше сенсоров (и даже дисплей). 

Прошивка ESP8266

Заливать пошивку мы будем с помощью инструментов esptool и nodemcu-pyflasher. Устанавливаем. 

git clone https://github.com/espressif/esptool.git
cd esptool
sudo python setup.py install

После установки esptool запускаем nodemcu-pyflasher. Здесь нужно указать порт загрузки - он появляется после после подключения USB to TTL конвертера (либо после подключения USB кабеля если конвертер уже распаян на плате), путь к нашей прошивке, скорость можно оставить 115200. В случае ошибок загрузки, скорость нужно уменьшить, например до 9600. Указываем нужно ли нам стирать все данные на флеш памяти ESP, нажимаем кнопку Flash NodeMCU, ждем несколько секунд - все готово! Иногда перед подключением ESP к компьютеру нужно зажать на плате кнопку "flash", а уже потом подключать питание. Если кнопки flash нет на плате, просто замыкаем контакты GPIO0 и GND, затем подаем питание, это переведет наш модуль в режим прошивки, позволяя загрузить нашу микропрограмму на устройство. 

Подключение датчиков

Для датчика движения HC-SR501 необходимо подать питание от 5 до 20 вольт, угол обзора составляет около 130 градусов, зона обнаружения движения от 3 до 7 метров. На самом устройстве имеется два подстроечных резситора - первый отвечает за настройку чувствительности (размера объекта, дальнобойность), второй отвечает за время релаксации (время, которое датчик будет активен). В случае обнаружения движения датчик подает на подключенный пин сигнал высокого уровня. Сигнальный выход находится посередине, слева ноль, справа - плюс. Подключаем сигнальный провод к цифровому выходу D1 (GPIO 5). 

Датчик дыма MQ-2 чувствителен к дыму, природному газу. При обнаружении дыма, датчик подает сигнал высокого уровня на цифровой выход, уровень срабатывания настраивается  с помощью встроенного потенциометра. Через аналоговый выход датчик выдает текущие показания качества воздуха. Подключаем аналоговый выход к пину А0, цифровой - к TX (GPIO 1). После включения датчику необходимо немного времени для того, чтобы прогреться и войти в рабочий режим. Настраиваем на уровень срабатывания примерно 100-150. 

Релейный блок, пожалуй, один из самых простых устройств. При подаче сигнала высокого уровня (либо низкого в зависимости от модели и настроек) реле переключается. Имеет два выхода COM (common - общий), NC (normally closed) и NO (normally open). Другими словами, при выключенном реле контакты COM-NC замкнуты, при подаче питания на реле контакты COM-NC размыкаются, контакты COM-NO замыкаются. Это следует учитывать при подключении потребителей. Реле бывает на 5А, 10А, 16А. Реле нужно подбирать в зависимости от планируемой нагрузки. Подключаем сигнальные выходы к пинам D4 (GPIO 2) и D6 (GPIO 12). Для питания реле, как правило, необходимо 5V. 

Датчик температуры и влажности DHT11. Плюсом его является разве что стоимость, лучше выбрать датчик немного подороже DHT22, но в целом для наших целей DHT11 подойдет. Подключаем сигнальный пин к D2 (GPIO 4), плюс подключаем к 3.3V, минус к GND. 

Герконы - одни из самых простых устройств. В присутствии магнитного поля контакты замыкаются. 

TSL-2561- цифровой датчик освещенности. Датчик работает на шине данных: I2C, измеряет освещенность в  пределах от 1 до 40000 люкс с точностью 0.1 люкс. На одну шину I2C можно подключить до трёх таких датчиков. Прошивка  Sonoff-Tasmota имеет поддержку драйвера этого датчика. Подключаем выход SDA к пину D8 (GPIO 15), SCL к пину D0 (GPIO 16). 

Датчик протечки и дождя. Датчик питается от напряжения 5V, имеет аналоговый и цифровой выходы. Цифровой выход калибруется встроенным потенциометром и выдает высокий уровень при превышении установленного порога. Есть аналогичный датчик влажности почвы. Его можно использовать в умном доме для информирования о необходимости полива домашних растений (либо организации автоматического полива). Подключим сигнальный вывод к выходу D7 (GPIO 13)

Подключение базовых сенсоров и реле выполнено, теперь необходимо указать в прошивке что мы там к ней подключали. Заходим в браузере по IP адресу нашей ESP (его можно посмотреть в настройках роутера), далее идем в меню Конфигурация -> Конфигурация модуля. 

Для датчиков, управляемых уровнем сигнала (изменением с высокого на низкий или наоборот) выбираем в настройках напротив подключенного пина тип "СвичN". N - порядковый номер в системе. Каждому "свичу" sonoff-tasmota сопоставляет реле с точно таким же порядковым номером. Например, при выборе типа Свич1, подключенный пин ESP конфигурируется на Input, т.е. для чтения сигнала. Пин, подключенный к Реле1 конфигурируется на Output т.е. на подачу сигнала. Другими словами, после срабатывания датчика и получения сигнала высокого уровня, реле переключается (если оно физически подключено к ESP), при этом отображается индикация срабатывания датчика на стартовой странице модуля ESP. Реле сенсоров, конечно, мы не будем подключать физически - управление выключателями мы организуем в системе управления умным домом.  

После сохранения конфигурации и перезагрузки устройства. на заглавной странице ESP появляются все наши подключенные датчики - уровень освещенности, температура, влажность. При срабатывании датчика дыма, переключатель с номером 1 меняет свое значение на единицу. То же самое происходит с датчиком движения. Если нажать на кнопку 3 или 4 - произойдет переключение реле, при обнаружении протечки - значение над кнопкой 5 меняет свое состояние на 1. В принципе уже с помощью текущей конфигурации можно сделать себе "безумный дом". Реле будут переключаться по сигналу от датчика движения, температуры или освещенности, но это не наш путь. Философия умного дома не в наборе одиночных кнопок и датчиков, она заключается в совместной и слаженной работе всех элементов умного дома вне зависимости от типа и точки подключения. 

Абсолютно аналогичным способом подключаются все оставшиеся устройства к второй ESP8266. Нужно помнить одну вещь - ESP8266 очень чувствительна к стабильному питанию, поэтому если в источнике питания нет стабилизатора на 3.3V, его нужно припаять иначе наши ESPхи со временем будут умирать. Все датчики и реле лучше также припаять, плохой контакт может быть причиной постоянных перезагрузок модуля. Контакт GPIO 0 при запуске модуля всегда должен быть всегда разомкнут для нормальной загрузки ESP, поэтому на него вешаем виртуальные реле для индикации состояния либо кнопку. 

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


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

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

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

    Однозначно лайк =)

  2. (Locy)
    (Locy) 2 месяца назад

    А можно статью дополнить еще одной картинкой?) А именно, фотография sonoff/esp с разложенными датчиками, со всеми припаянными проводами. А то датчиков много, а куда их паять не ясно..

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) отредактировано 2 месяца назад

      Я собирал все на макетной плате (Breadboard) 😂

      1000x_image.jpg?1556353993

      Плюс на датчике обычно обозначают VCC (Common Collector Voltage), минус к GND (Ground), сигнальный пин S (Signal) или D (Digital) - их можно подключать к любому цифровому входу ESP (у меня в статье предложены варианты подключения), аналоговые пины часто обозначают  AO (Analog output) - их нужно подключить к аналоговым входам (например, A0). 

  3. Владимир Старостенко (StarVV)
    Владимир Старостенко (StarVV) отредактировано 2 месяца назад

    Статья интересная, но сборка на макетной плате не нужна, вот если бы в жизни показали. Нет у меня макетной платы и не хочу её покупать. Такое чувство, что дальше макетной платы у вас это не уходит. 

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) 2 месяца назад

      Макетная плата нужна для удобства тестовой сборки, совсем не обязательно ее использовать, можно сразу паять контакты к плате и к сенсорам. 

  4. (Paliy)
    (Paliy) месяц назад

    Очень интересная статья! Бомж, как раз для меня) Подскажите полезную статью или расскажите как подключать аналоговые датчики, собираю свой "умный дом" на сонофах (с прошивкой тасмота), централь- малинка с HA. Что делать с данными после получения их в тасмоте я вроде понимаю (уже много цифровых датчиков подключил). Но вот зависти данные с аналогового датчика (например у меня есть датчик влажности почвы, как Вы пишете) не получается. Уже много гуглил, вроде понимаю, что в  Sonoff basic всего один аналоговый выход А0 к которому так просто не добраться. Уже купил АЦП adc 1115, вроде есть какие-то схемы как это все спаять но конкретной толковой схемы не нахожу, или тасмоту не правильно настраиваю. Может есть вариант проще подключать аналоговые датчики в мою систему?   

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) месяц назад

      Тебе нужна компиляция Tasmota "sensors" (она есть на гитхабе). В остальных компиляциях выход A0 используется для чтения VCC. Можно как альтернативный вариант скомпилировать собственную сборку с разблокированным А0 (он настраивается внутри прошивки). После чего выход А0 становится доступным, он прокидывается в ХА (возможно в консоле нужно ввести SetOption19 On)

  5. (Paliy)
    (Paliy) отредактировано месяц назад

    я ее и использую- Tasmota "sensors". В этом варианте я смогу подключить 1 аналоговый датчик правильно? и к каким выводам мне его подключать (в Sonoff Basic)?  

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) месяц назад
      Я подозреваю, что аналоговый выход не разведен на Sonoff Basic, у Sonoff нет устройств с подключением аналоговых датчиков. Как вариант подпаяться напрямую к процессору (это не так просто, там выводы очень тонкие), второй вариант использовать переходник на шине i2c (если хочешь именно аналоговые данные получать). Но проще взять обычную ESP8266 на плате (как у меня) и с ней все настроить. 

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

    какую esp ты используешь? я так понимаю к ней тоже только 1 аналоговый датчик можно подключить? про  АЦП adc 1115 не в курсе?

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) месяц назад

      ESP 8266, с ADS 1115 можно подключить дополнительно до 4 аналоговых датчиков, используя шину i2c. (ADS подключается к цифровым пинам ESP). 

  7. (Paliy)
    (Paliy) месяц назад

    так же  к сонофу можно подключить и его прошить простим тасмота?

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) месяц назад

      Сам экспандер не нуждается в прошивке. Да, ты можешь его подключить к sonoff basic, тебе для этого понадобится два свободных цифровых пина. По идее все должно заработать на прошивке sonoff-tasmota без дополнительных настроек, но сам не тестировал. 

  8. (Paliy)
    (Paliy) месяц назад

    ок, спасибо. Попробую отпишу 

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

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

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в 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