Статья

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

"Бомж" Умный дом, подбор комплектующих. Часть 1

"Бомж" Умный дом, подбор и установка ПО для центрального хаба. Часть 2

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

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

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

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

DHT11, пожалуй, один из самых простых устройств. При подаче сигнала высокого уровня (либо низкого в зависимости от модели и настроек) реле переключается. Имеет два выхода 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 и прописывать базовую логику работы. 


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

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



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


1000x_image.jpg?1556353993

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

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

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

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

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

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

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

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

АЦП adc 1115 не в курсе?

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

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

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

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

Это одна из немногих статей в интернетах где в одном месте встречаются Tasmota и MQ-2 (MQ-7). У меня есть такие и я совершенно не понимаю как их можно в тасмоту завести, в списке поддерживаемых их нет, на гитхабе что-то пообсуждали и разошлись =)

Если не сложно, можно подробнее что куда подключать и главное как это описать в Tasmota -> Configuration, заранее спасибо!

Если нужны аналоговые данные, то просто подключаем к пину А0 и считываем текущие показания качества воздуха. Чем они выше, тем концентрация газов выше. Второй вариант настроить как бинарный датчик (как показано в статье). Для этого необходимо настроить уровень срабатывания встроенным потенциометром, а цифровой выход завести на один из пинов как свич. После этого можно считывать статус срабатывания и данные по концентрации газов. Перечитайте статью, там описаны все необходимые настройки с картинками. 


У вас опечатка - http://v2.sprut.ai/catalog/item/noname-datcik-temperatury-vlaznosti-dht11">DHT11 указан в качестве название реле.


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