Strangeman

 
<<< Назад

Управление уличным освещением

Управление уличным освещением на базе ESP-12F (ESP8266) и прошивки ESPEasy.
По совместительству кнопка дверного звонка.

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

  1. Астротаймер - включение освещения с закатом и отключение с рассветом (время вычисляется автоматически);
  2. Управление яркостью освещения по заданному алгоритму;
  3. Контроль состояния аккумуляторной батареи и защита от переразряда;
  4. Связь с сервером системы умного дома.

Устройство предназначено для питания уличного освещения от автономной системы с напряжением 12 или 24В, но может быть взято за основу системы с сетевым питанием.
В качестве дополнительной функции обрабатывает нажатие кнопки звонка у калитки, по которому система умного дома голосом проговаривает сообщение "Дорогие хозяева, к вам приперлись долгожданные гости" :) Целесообразность последнего недавно была поставлена под вопрос, т.к. иногда вызывает бурю негодования уже пришедших долгожданных, когда приходят новые долгожданные.
Схему можно посмотреть здесь. Ничего особенного она собой не представляет.

Правила для ESPEasy.

on System#Boot do // При загрузке
   gpio,16,0
   pwm,0,1024
endon
on Lamp1#Switch do // Когда изменилось значение выключателя
  gpio,16,[Lamp1#Switch] // Установить выход в новое состояние
endon
on Lamp1#Bright do // Когда изменилось значение регулятора яркости
   Let,1,[Lamp1#Bright] // Используем промежуточную переменную, иначе, формула не работает
   Let,1,1024-%v1%*10 // Переводим удобоваримое значение яркости 0 - 100% в понятное драйверу 1024 - 0
   pwm,0,%v1%
endon

On Clock#Time=All,%sunset% do // Когда солнце село - включить свет ярко
  taskvalueset 2,1,1 // Включить светильник
  taskvalueset 2,2,100 // %
endon

on Clock#Time=All,00:00 do // Снизить яркость в полночь до дежурного уровня
  taskvalueset 2,2,10 // %
endon

On Clock#Time=All,%sunrise% do // Когда солнце встало - выключить свет
  taskvalueset 2,1,0
  taskvalueset 2,2,0 // %
endon

on BAT#U do // Когда напряжение батареи изменилось
  if [BAT#U]<27.5 // и стало меньше 27,5 В - снизить яркость
    taskvalueset 2,2,10
  endif
  if [BAT#U]<26 // если стало меньше 26 В - отключить освещение
    taskvalueset 2,1,0
  endif
endon

Формула для указанных на схеме номиналов в устройстве BAT %value%/27.867

В MD значения передаются через MQTT, обратное управление пока не сделал.

Обсуждение (5) (1)

Смотрите так же:
07.01.2019 Резервно-автономная система электроснабжения
07.01.2019 Фотон-100-50-IoT взаимодействие

Таганрог, Россия

На форуме: Strangeman

Веб-сайт:
http://home-garden.org