Умный дом, как я до такого докатился. Часть 4-я

673c2149a8f545a489d87fdc79f93d38.png В первыхтрех частях я рассказал как у меня возникла идея (необходимость) построения «умного дома» и как я ее воплотил в жизнь.

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

Ну и небольшой спойлер: под катом будет краткое описание «очередной поделки на esp8266 с преферансом и куртизанками».
Итак, прошло четыре года (с начала эксплуатации первых модулей так вообще шесть) В целом система показала себя хорошо, но всплыли два недостатка, впрочем, вполне ожидаемых.

Первый — централизованность. Да, это плохо, да, об этом я знал, но опыта производства конечных автономных устройств не было, да и выбранный в качестве основного протокол 1-Wire такой возможности не предоставлял.

Соответственно, центральный сервер стал узким местом. Пять раз по вине выхода из строя «железа» вся система не работала больше суток (а то и двух-трех) и приходилось пользоваться резервной (включать освещение рубильниками в щитке, обходиться без теплого пола, вентиляции, производить повторную калибровку водяных счетчиков и т. д.).

Плюс к этому, в доме участились случаи отключения электропитания более чем на час. Заряд ИБП кончался и сервер производил аварийное отключение, а, точнее говоря, весьма грубо вырубался. После чего его подъем не всегда проходил гладко, главным образом потому, что MySQL не очень любит столь хамское к себе отношение. Восстановление таблиц (а там вся история по всем датчикам за многие годы) иногда занимало часы и не всегда ему удавалось сделать это без постороннего вмешательства. Да, эту проблему, теоретически, можно решить купив более умный ИБП, подключив его к серверу и научив сервер штатно выключаться при потере питания. Но мой текущий ИБП вполне еще бодрый старичок, да и материнка сервера, почему-то не захотела нормально работать в режиме, автоматического включения после подачи питания, если до этого была штатно выключена.

Второй — ограничение на топологию шины 1-Wire + моя неопытность.

Да, я читал что должен быть центральный ствол и лишь небольшие ответвления, об этом много где написано. Но проект расширялся весьма непредсказуемо и при этом все вроде как работало. А потом, в один «прекрасный» момент, работать перестало. Т. е. отключаешь часть устройств, все нормально, включаешь опять и сигнал начинает «плавать». Заменил часть основных линий на экранированные, минимизировал ответвления, но сделать полноценную единую шину без перфоратора и существенной порчи отделки уже нет возможности. В итоге разбил сеть на два сегмента, вывел на два отдельных контроллера, но, тем не менее, раз в пару месяцев опять возникала проблема когда устройства начинали выпадать из сети. Помогало только полное выключение всей системы с последующим включением, а эта процедура весьма не тривиальная и без меня мои домашние провести ее не в состоянии.

Тем временем, около двух лет назад, я натолкнулся на статью и у меня возникла идея сделать своеобразный подарок на день рождения своему отцу. Он увлекается разведением на приусадебном участке различных экзотических растений и ему нужен постоянный контроль температуры в разных климатических зонах его сада. Собственно, до внедрения системы, это осуществлялось обходом вполне (теплых ламповых :)) аналоговых спиртовых термометров дважды в сутки. Вынашивал я эту идею несколько месяцев, потом заказал в одном известном (тогда еще только в узких кругах) китайском интернет-магазине необходимые компоненты, сделал плату, написал прошивку. В общем, получилось как-то так:

Вся система размещается в стандартной телефонной розетке.

23ec8b463f9b422690f0450114e8f8bd.jpg

Разводка четырехжильным телефонным проводом.

86769bf6a95c4874b79c0fcef21d21e2.jpg

Питание пассивное. Для бассейна заказал водонепроницаемую версию датчика.

a02cfb1d2afe484fb4152487770ddf49.jpg

Теперь папа смотрит температуру на компьютере.

Вот так:

bf8cc2ac299d46828efdde149450e16c.png

Ну и с графиками:

e8081ab518b642d981f137d36f8dd63c.png

Схема модуля
527063d865224257a0972905e113a78e.png


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

Итак, вашему вниманию представляется «esp07_4PIO_6S v2».

Вид сверху:

bc6355f9e1d0428dbe96062bfc45255e.jpg

Вид снизу:

994af809019345c4825d343ae62f7bee.jpg

В прошлый раз большой проблемой было подбор корпуса, так что в этот раз я плясал именно от корпуса. Поскольку в наличии были корпуса от старых моделей медиаплеера Dune, выбор пал на них. После доработки напильником (отверстия под входы и выходы у медиаплеера немного другие, завести 220v на разъем HDMI не удалось :)) подошло идеально. Только датчик температуры пришлось снаружи делать, так как внутри начинка нагревает воздух.

Входы и выходы на 220v

ff9e7e8111054a59b12bf901b3d55b00.jpg

Входы и выходы на 5v и 12v

58b8a063416c4c31ab6032f6f04acdcc.jpg

Что может данный модуль и почему он лучше чем старая система?

  • Для монтажа не требуется никаких дополнительных проводов. Питается он от той же сети, что и управляет.
  • При отключении или недоступности центрального сервера или Wi-Fi он переходит в offline режим и осуществляет управление по автономному сценарию (сценарий под каждую зону может быть свой)
  • Снимает данные о температуре/влажности/освещенности в комнате.
  • Управляет 4-мя устройствами 220, считывает данные с 6 датчиков типа «сухой контакт».
  • Способен самостоятельно отправлять данные на thingspeak.com и аналогичные системы.
  • Реагирует быстрее чем старая система (не то чтобы это было проблемой, но раньше каждый датчик опрашивался два раза в секунду, что могло дать суммарный лаг более чем в секунду). Эта система работает по прерыванию.
  • Умеет обновлять прошивку «по воздуху».


Схема
eb80e5be61aa4ca48208f5a3d37d5ee5.png


Такую плату развести в один слой не удалось, так что пришлось осваивать двусторонний ЛУТ:

Плата
acafde89f1d74d9bb695ee3b2bcc39f2.png


Опыт эксплуатации уже более полугода, в планах заменить на данный модуль все управляющие части системы, на 1-Wire оставить только мониторинг.

Учитывая пожелания к прошлым статьям, схемы и код доступны на github. Старые тоже там есть, вдруг кому пригодятся.

Как-то так. Ставьте лайки и подписывайтесь на новые видео :) Шутка, все равно новая статья если будет, то через пару лет, чукча не писатель : P

Хотя, если появятся вопросы по прошивке и архитектуре esp07_4PIO_6S, напишу детальную статью об этой поделке, есть там, на мой взгляд, несколько интересных решений.

© Geektimes