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

26 апр. 2019 г.

Пришло время подключения наших датчиков и реле к 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)

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

  2. (Locy)
    (Locy) 23 дня назад

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

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

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

      1000x_image.jpg?1556353993

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

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

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

    • Антон Киселёв (Whilser)

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

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

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

4 сент. 2018 г.
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
2 нояб. 2018 г.
Кнопка звонка с уведомлениями в HomeKit
15 окт. 2018 г.
Прошивка для Sonoff c нативным HomeKit
15 нояб. 2018 г.
Способы автоматизации механических ворот
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