Получилось таким образом, что Мама попросила сделать такой прибор для дачи.
Весь проект был реализован буквально за несколько часов на базе весьма доступных компонентов от сборки устройства до запуска в эксплуатацию.
Самое важное, что собрал я весь девайс быстрее, чем написал и оформил этот текст.
Ну и поехали=)
Техническое задание
Для разработки и сборки устройства управления (как и любого другого объекта) необходимо корректное ТЗ, чем оно подробнее, тем будет проще всё реализовать.
Непонятное ТЗ?
Результат -- ХЗ!
Нам нужно собрать устройство, которое будет имитировать рассвет и закат, то есть управлять яркостью ламп в помещении. В моём случае ламп в двух помещениях.
Сделать устройство надо максимально рационально и из доступных прямо сейчас деталей. Либо деталей, который купить можно буквально в своём районе.
Осмысление
Таким образом, после осмысления задачи пришёл к выводу, что мне проще всего сделать двухканальный ШИМ-контроллер на универсальной прошивке под ESP32 и значение ШИМ на каналах связать со временем. Подобные устройства уже как-то делал для управления подсветкой для растений. На уже готовом приборчике дома успешно протестировал работу.
В качестве прошивки решил использовать конструктор кода wifi-iot.com . Базовую настройку и прошивку ESP32 под эту прошивку описал чуть раньше.
Логика работы
Так как не очень хотел писать много своего кода на C++, а хотелось сделать сразу приличное решение на готовом функционале, то обратил внимание на опцию прошивки под названием cron - это простой, но удобный планировщик задач, который позволяет привязать различную логику контроллера ко времени.
А нам нужно каждые сутки, начиная с 5:00 по местному времени постепенно увеличивать яркость ламп, а затем с 22:00 по местному времени постепенно уменьшать и в 23:00 полностью гасить свет.
Таким образом контроллер начиная с 5 утра постепенно, каждые 10 минут немного прибавляет яркость, а затем с 22 часов её начинает уменьшать.
Лампы
В качестве источника освещения решил взять светодиодные ленты с напряжением питания 12В. На Авито в Санкт-Петербурге практически в каждом районе продаются такие ленты, по цене около 1000 руб за 5 метров (мощность около 50Вт). Такие ленты можно купить и в обычных магазинах, но ценник будет выше.
В комплект к лентам взял два импульсных блока питания 12 Вольт 50 Вт, и вот от них будет запитано освещение.
Схема прибора
Получилась довольно простая схема из минимального количества компонент.
Выбор пал на следующие модули и блоки:
- ESP32 Wemos lite - самая проста и не дорогая плата ESP32.
- Модули мосфетов 10А FR12ON - очень удобные, простое подключение, есть опторазвязка.
- Стандартный корпус, печать на 3D-принтере, из запасов.
- Разъем питания 5х2,1 мм тип мама для монтажа в корпус - он понадобится для подачи питания 12В с линии питания ламп.
- Кнопка SafeMode для монтажа в корпуc, очень нужна для настройки контроллера прямо на месте.
- Понижающий мини DC-DC преобразователь, который даст нам нам с 12В стабильные 5В для питания платы МК.
Итого бюджет приборчика составил около 750 рублей за контроллер и 3000 рублей за ленты и блоки питания (март 2024 года).
Сборка, пайка и прочие красивости
Так как корпус я брал из своих запасов, от других проектов, мне буквально повезло, что в него тютелька в тютельку влезла плата контроллера (слава ленивым китайцам, что она поставляется без запаянных гребенок) и два мосфета. После прошивки платы я её вместе с мосфетам аккуратно зафиксировал точечками термоклея. Вроде бы получилось весьма аккуратно.
После этого, согласно схеме из начала статьи начинаю всё соединять перемычками. Важно понимать, какой ток пойдёт по каждой конкретной линии и выбирать соответствующего сечения провод.
Так как в качестве ламп буду использовать светодиодные ленты с общей мощностью около 50 Вт на один канал, а при 12В ток составит около 4,2А, то и толщина проводов, которые отходят от мосфетов должны быть соответствующими.
ОЧЕНЬ ВАЖНО!
Пропускать через контроллер и плюсовую, и минусовую линию при таких токах крайне не рекомендуется, так как разъем питания 5х2,1мм всё же рассчитан на меньший ток.
Именно по этому в контроллер входит только земля, а плюсовая линия соединяется отдельно, вне контроллера. При этом питание контроллера берётся с плюсовой линии.
После пайки основного блока прибора, в верхнюю крышку корпуса врезал разъем и кнопку. На разъем впаял понижающий преобразователь и соединил всё это проводами с основной платой:
После проверки работоспособности и успешного подключения приборчика к Wi-Fi, заканчиваю сборку аккуратно соединяя корпус на 4 самореза. При нормальном использовании больше разбирать корпус не придётся. Так как даже последующая прошивка уже может производиться "по воздуху" через Wi-Fi.
Настройка прошивки контроллера
И наконец, добирались до самого последнего этапа - настройки контроллера.
Базовая настройка уже была описана до этого, лучше всего начать именно с неё. И, что забавно, в качестве примера там был именно контроллер, который ушёл потом в курятник 😂😂😂.
Для успешной работы нашей железки нам надо в него прошить вполне определённый список опций. Проставляем галочки на следующих опциях (жирным обязательные): BME280, narodmon.ru, MQTT клиент, TCP/UDP Клиент, Аппаратный PWM (ШИМ), Время и NTP, I2C через GET, I2C сканер, GPIO, Датчики GET запросом, Поддержка календаря, Ручная установка времени, Web KEY, OLED 128x64, WS2812, SHT30, Safe GPIO, Cron.
Параметры опций
1. Время и NTP - поставить галочку Ручная установка сервера
2. Аппаратный PWM (ШИМ):
3. Web KEY:
При включенном AJAX можно будет тыкать слайдеры без перезапуска странички, но тогда есть вероятность, что надо будет по всем вкладкам переходить дважды тыкая по ссылкам. хе-хе-хе😂
4. Safe GPIO:
И самое ВАЖНОЕ!
5. Cron:
Ну и всё, собрали прошивку, прошили её. Или если уже контроллер был прошит до этого, то обновили прошивку "по воздуху", что бы все опции были в наличии с правильными параметрами.
Итак, после прошивки контролера, подключения его к Wi-Fi переходим к настройки контроллера в веб-интерфейсе.
Настройка контроллера
1. Переходим во вкладку PWM и указываем параметры как на картинке:
2. Во вкладке Main (основные настройки), под параметром сервера NTP указываем свою необходимую зону часового пояса. Например для Санкт-Петербурга и Москвы это будет 3.
3. Добавляем красивые слайдеры-переключатели на главную страницу модуля. Вкладка Web Key:
4. Теперь главная веб-страничка контроллера будет выглядеть примерно вот так:
5. Настройка Cron (делаем сценарий работы со светом)
В самом начале рекомендую в любом случае пробежаться по Вики конструктора, как именно работает Cron.
В целом указываем нужный номер PWM, режим PWM, минимум и максимум, и вписываем весь сценарий работы:
set:250
5:00-5:10
set:500
5:10-5:20
set:1000
5:20-5:30
set:2000
5:30-5:40
set:3000
5:40-6:00
set:4096
6:00-22:00
set:3000
22:00-22:10
set:2000
22:10-22:20
set:1000
22:20-22:30
set:500
22:30-22:40
set:250
22:40-22:50
И вот так это должно выглядеть в веб-интерфейсе контроллера:
После ввода параметров не забываем нажимать кнопочку Set, и для включения планировщика надо поставить галочку Enable Scheduler.
Настраиваем так необходимое нам количество планировщиков (Cron) и радуемся красоте.
Монтаж
А тут я просто положу фоточки как это всё получилось смонтировать и как работает и светится в курятнике.
В принципе если интересно что-то описать про сам электромонтаж подобных вещей, могу написать - задавайте вопросы в комментариях.
Для одного канала получился вот такой простенький монтаж на стене:
Второй канал уже тоже подключил, но в лучших традициях забыл отснять.
И конечно же видео с тем как это выглядит работает и по традициям Рунета, счастливые кошечки цыплята:
Если есть какие-то вопросы, задавайте, спрашивайте, постараюсь ответить в комментариях.
На данный момент приборчик в курятнике стабильно работает уже почти месяц (с 8 марта 2024 года).