Наконец то я добрался до реализации умного дома в своей квартире.
Исходные данные: 3-х комнатная квартира с печным отоплением.
Планы работ:
— установка в печь нагревательного бака, установка автоматической пиллетной горелки, установка батарей отопления в комнатах по отдельному контуру в каждой комнате с управлением контурами термическими сервоприводами
— замена всей электропроводки с разделением групп розеток (2 группы), освещения (1 группа) и управления автоматикой и термическими сервоприводами (1 группа).
основное оборудование установлено в шиток
основной мозг это OrangePi PC с установленной DietPi и MajorDoMo, установка системы описана в статье «Умный дом. мозг«, на форуме MajorDoMo можно найти информацию об установке системы на другие системы.
в качестве управления освещением и контурами отопления применены китайские блоки на 8 реле, но я рекомендую использовать блоки на 8 твердотельных реле, тем более ток в 2 ампера вполне достаточно чтобы питать термические сервопривода и светодиодные лампочки, хоть цена и выше (780 рублей против 280 рублей), но зато не будет слышно звука срабатывания реле. и габариты меньше, всё уменьшится в один ряд. Для того чтобы к блоку реле подводить только один провод общие контакты были спаяны проводом между собой.
Сначала была идея использовать в качестве блока реле Wi-fi реле HLK-SW16 но так и не разобрался как им управлять из MajorDoMo (далее МД), поэтому установлено 2 блока реле с управлением iMatic 16, подключение его описано в статье «Умный дом. Подключаем управление реле iMatic к MajorDoMo.»
В процессе был установле ещё один блок на 8 реле под управлением ESP8266 c прошивкой wifi-iot.com, настройки модуля во вкладке GPIO
Настройки в МД:
в методе turnOff в объекте Switch пишем
1 |
getURL ("http://192.168.1.21/gpio&st=0&pin=12",0); |
в методе turnOn объекта Switch пишем
1 |
getURL ("http://192.168.1.21/gpio&st=1&pin=12",0); |
где айпи адрес ESP и номер пина (pin), состояние пина (st)
Собственно пример настройки выключателя есть в настройках МД по умолчанию, добавление выключателя есть в статье «Умный дом. Подключаем управление реле iMatic к MajorDoMo.»
В принципе управление освещением со смартфона или планшета настроено и пол месяца пока шли пульты я включал свет с смартфона на Android.
Поскольку мест для проводных выключателей не предусмотрено необходимо что то беспроводное поэтому заказан приемник на 315 МГц, в комплекте идет и передатчик, но нам нужен только приемник MX-05V.
подключен модуль приемника на ту же ESP что и реле на контакт GPIO2 со следующими настройками.
Прописываем адрес нашего мозга системы.
включаем на GPIO2 модуль и отправку кода на сервер МД
не уверен нужно ли прописывать в данной вкладке номер GPIO2, но я прописал на всякий случай.
коды можно посмотреть на вкладке /debug модуля нажимая на кнопки пульта.
далее я создал сценарий RCSwitch или данный сценарий там уже был и я его только поправил
1 2 3 4 5 |
$idd=getGlobal("rcdata.rcswitch"); //кухня if ($idd=="3535353") { callMethod("Switch10.switch"); } |
далее я создал в Объектах класс ESP_rcdata в нем объект rcdata в объекте метод rccode и свойство rcswitch
в методе rccode делаем выполнить сценарий RCSwitch
Ну и в заключении надо привязать код, передаваемый с ESP8266, для этого необходимо установить модуль esp8266_wifiot, появиться в устроуствах меню, зайти в редактирование нашего ESP к которому подключен приемник
Вкладка данные, свойство rcdata связанный объект rcdata, связанное свойство rcswitch метод rccode
на этом настройка пультов закончена, но иметь пульты вместо выключателей не удобно и не эстетично.
Хотелось не только что то беспроводного, но и красивого, присмотрел на Али выключатели Livolo, но они устанавливаются в стандартные установочные места которых у меня в принципе не пердусмотрено, примечательно что у данных выключателей есть просто крышки, они и были заказаны.
В принципе аналогичные можно самому изготовить просто заказать вырезать стекло с обработкой кромки и покрасить сзади или использовать вырезанную пленку, думаю в следующем проекте я именно так и сделаю.
В комнаты проведены провода для подключения датчиков 18b20, планировалось подключение датчиков непосредственно к OrangePi PC через DS9490R как это сделано в одном предыдущем проекте управления отоплением, но цена на данный адаптер увеличилась почти до 4000 рублей и как то покупать адаптер за 4000 рублей при том, что сам мозг умного дома был приобретен за 1500 рублей, а 3 модуля ESP8266R в сумме стоят 450 рублей, поэтому было принято решение провода для датчиков использовать для питания ESP8266 и датчик температуры подключать непосредственно к ESP на коротком проводе. При попытке подключить датчики 18b20 к ESP в щитке датчики модуль не видел, причину так и не установил, но датчики 18b20 модуль ESP видит при длинне проводов не длиннее 3-4 метров, возможно получиться сделать адаптер к 18b20 с длинными проводами на Arduino.
К сожалению датчики в 2-х комнатах из трех не совпадали с местами устрановки выключателей, а вот в зале как раз попал на место установки выключателя, поэтому ESP использовал для подключения сенсорного выключателя.
В качестве сенсоров использовал готовые модули на микросхеме TTP223
модули подключены к выводам ESP8266, сенсоры на двухсторонний скотч, рамка пластиковая оторвана (была приклеина к стеклу на двухсторонний скотч и снимается с помощью тонкого канцелярского ножа) и перевернута, проделаны отверстия под крепления на саморезы.
вот так это выглядит на стене с вынесенным датчиком температуры
теперь нам надо настроить ESP и МД
выше есть картинка с настройками отправки данных на МД, нам надо настроить на ESP кнопки, заходим во вкладку GPIO и настраиваем как показано на рисунке.
у меня заданы 4 вывода, а кнопки 3, 4-ю я планировал сделать в углу для команды выключения света в коридоре и на кухне из зала, кнопки присоеденены к контактам 4,5,13,14 ESP, на этом настройки модуля закончены, настраиваем обработку в МД.
В класс relays добавим свойство esp_status и метод esp_switch, метод будет иметь следующий код
1 2 3 4 5 6 7 8 9 |
$status2=$this->getProperty("esp_status"); $status=$this->getProperty("status"); if ($status2) { if ($status) { $this->callMethod("turnOff"); } else { $this->callMethod("turnOn"); } } |
далее редактируем данные устройства ESP на котором у нас выключатели.
связанные объекты это наши объекты в switch в relays ну и задаем связанные свойства и метод в соответстви с рисунком выше.
Вот работа выключателя.
Свет включается с задержкой потому что светодиоды включены через регулируемый БП ИРБИС.
Как реализовать остальные выключатели с корпусом Livolo пока не придумал.
Ну и в заключение: на одном из ESP сделал вывод информации с датчиков и сообщения Алисы
Поделиться в соц. сетях
Понравилась статья? Подпишитесь на RSS .