Новый год хороший праздник! В этот момент наряжают елки, украшают квартиры и дома. Если в наличии много Китайских гирлянд и световых приборов (лазеров в особенности) то всей этой технике необходимо время чтоб "остыть". Значит надо чередовать периоды включения и выключения. Напрашивающееся своей простотой решение ввиде горстки Китайских-же суточных таймеров по 150рэ не шибко хорошо потому что период там жестко задан 15 либо 30 минут. А хочется большей энтропии :) 

Поэтому берем в руки паяло, компьютер, микроконтроллер и горстку релюшек - делаем быстренько новогодний гирляндный автомат для умного дома! Возможно, кому-то этот пост будет полезен. Итак, ингридиенты:

  1. многострадальная MCU ESP8266 в исполнении ESP12-F или ESP12-E
  2. кусок одностороннего стеклотекстолита 85мм х 65мм
  3. часы реального времени (пойдут любые готовые платы-модули). у меня под рукой валялись TinyRTC (на DS1307)
  4. arduino ide для esp
  5. прямые руки и светлый ум

Схема достаточно тривиальна. Микроконтроллер соединяем с часами реального времени через двунаправленный конвертор логических уровней (3.3В <-> 5В). При этом плату TinyRTC подвергаем доработке - выпаиваем D1,R4,R5,R6, ставим перемычку вместо R6, заменяем R2,R3 на 10ком. Реле мы питаем энергосберегающим способом. Сначала даем импульс полный 5В (напряжение срабатывания) и потом опускаемся до 3х вольт (напряжения удержания) Цепи R6+C3 (и аналогичные от других каналов) являются задающими временную составляющую и ограничение напряжения. Для экземпляров реле NCR NRP12-A05DH имеющихся у меня в наличии временная характеристика указана на схеме принципиальной. Возможно при повторении потребуется снабберная цепочка шунтирующая реле и избавляющая от дребезга контактов и ЭМИ из варисторов RV1-RV3. Для моей маленькой нагрузки она не потребовалась.

Печатная плата разведена в одностороннем варианте. Потребуется 3 перемычки сделать (они красным цветом нарисованы). Блок питания используется тот который был под рукой из запасов MeanWell IRM-03-05. Хватило бы и IRM-02-05. Между силовой частью и слаботочной обязательно делаем фрезой пропил шириной 1.5мм. Дорожки силовой части дополнительно обязательно усиливаем луженым проводом 1-1.5мм2. После чего покрываем лаком.

Прошивка написана для эксплуатируемой у меня кастомной системы управления всем домом (требуется серверная часть ввиде СУБД + php). Когда-нибудь, возможно, подробно рассмотрю её. Но сейчас главное сам модуль. Харастеристики:

  • В режиме работы со всеми 3мя включенными реле и активным wifi - ток потребления общий 300мА
  • В idle-режиме (выключен wifi, реле) - 25мА.
  • Максимальный коммутируемый сетевой ток в нагрузке 8A

 

Алгоритм работы прошивки следующий:

после появления напряжения сетевого выключаем все выходы реле (начальное значение), считываем время, если оно было сброшено (батарейка разрядилась например) -  устанавливаем некое стартовое. включаем wifi и пробуем в течении 20секунд установить соединение с сетью нашей. если все ок - отправляем на сервер текущее положение релюшек, напряжение в батарейке и обратно получаем нашу конфигурацию и текущее время (если оно будет отличаться от нашего - синхронизируемся). после этого wifi отключаем. В следующий раз выходим на связь не ранее settings.CommInterval секунд. Этим мы не фоним в эфир, экономим питание, не греемся. Каждое реле дергаем с задержкой 200мс - для того чтоб не делать резких скачков нагрузки на БП.

Каждую смену минут часов реального времени проверяем настало ли время дергать какое-то реле или нет. Все три реле могут работать в 4х режимах:

  1. постоянно выкл
  2. постоянно вкл
  3. вкл когда время суток не в промежутке settings.RelayLowTime .... settings.RelayHighTime
  4. вкл/выкл с интервалом settings.RelayMaxPeriod когда время суток не в промежутке settings.RelayLowTime .... settings.RelayHighTime
  5. вкл/выкл с произвольным интервалом в пределах от settings.RelayMinPeriod до settings.RelayMaxPeriod когда время суток не в промежутке settings.RelayLowTime .... settings.RelayHighTime

Сервер может скомандовать записать конфигурацию в постоянную память MCU и тогда в следующий раз не обязательно вообще цепляться к wifi. Т.е. гирляндный автомат будет работать сам сразу после включения в розетку.

 

 В готовом виде устройство выглядит так:

undefined

undefined

 undefined

undefined