Светодиодный светильник для аквариума своими руками. Микроконтроллерное управление, рассветы/закаты и настройка Tasmota через Rules.

Аквариумом мы с женой загорелись еще в 2015 году. Сразу начали делать травник — грунт ADA PowerSand + ADA AquaSoil Amazonia, подача CO2 и много света. Я тогда изготовил самодельную крышку для аквариума со встроенными люминесцентными лампами. Несколько лет травник нас радовал своим удивительным видом, но в какой-то момент, жене процесс ухода за ним надоел и аквариум из травника был переделан в чисто рыбник. Из света оставили только одну лампу T8 на 18вт. Со временем начались проблемы, изнутри крышки аквариума начала появляться плесень, хотя раньше такого не было, видимо помогало обилие света. В общем, решено было аквариум сделать открытым, отсюда и родилась идея данного светильника. Что из этого получилось — читайте далее.

Когда-то наш аквариум выглядел вот так:

В крышку аквариума были установлены две лампы Т5 по 24Вт (Sylvania Grolux и Aquastar) и одна T8 18Вт (Sylvania Daylightstar). По освещенности получалось где-то 1 вт на литр (яркость люминесцентных лампы считали почему-то именно ваттами, а не люменами). И этой освещенности было вполне достаточно для нашего травника. Тумба под аквариум, кстати, тоже самодельная:

А вот так вот лампы светили:

Теперь аквариум с новым светильником выглядит так:

Размер и мощность нового светильника рассчитаны на аквариум-травник длиной 60см с полезным объемом около 65л (общий 85л). Нужно отметить, что для травника по типу амановских, это самый минимум по интенсивности освещения для данного объема. Считается, что разогнанному травнику (с подачей CO2) нужно порядка 40-50 люмен на литр воды (зависит от плотности растений). Таким образом, для моих 65 литров необходим уровень освещенности от 2600 до 3200 люмен. Выбранные светодиоды обеспечивают каждый порядка 120 люмен белые и около 20 люмен цветные. Что в общей сложности должно дать световой поток в 2320 люмен… Ну, в общем почти…)) Белые светодиоды для аквариума рекомендуют использовать с цветовой температурой 6500К. Я таких, правда, не нашел и использовал обычные 4500К.

Использование в светильнике светодиодов открывает дополнительные возможности, например регулировку яркости. Естественно я этим решил воспользоваться и еще мне захотелось сделать имитацию заката и рассвета. Для этого мне понадобились LED-драйверы (самодельные) с возможностью подачи ШИМ сигнала, а так-же микроконтроллер, я применил ESP8266 (плата D1 Mini) и прошивку проекта Tasmota.

Вариантов изготовления подобных светильников довольно много, лично я делал из тех материалов и компонентов, которые у меня были в наличие дома или продавались в ближайшем строительном магазине. По этому, конкретно мой экземпляр светильника немного отличается от чертежей и моделей, приведенных ниже в статье.… Кто-то использует радиаторы от компьютерных процессоров, кто-то ставит активное охлаждение… Мой вариант без всего этого, но как показала практика, теплоемкости использованного алюминиевого профиля вполне достаточно для эффективного отведения и рассеивания тепла от 26 светодиодов мощностью 1 Вт. После нескольких часов работы, температуру радиатора не напрягаясь терпит рука (надо бы замерить).

Светильник изготовлен из алюминиевого профиля, 18ти холодных белых светодиодов (1Вт), 4х красных 650нм и 4х синих 450нм светодиодов. Цветные светодиоды необходимы для компенсации неравномерности спектра белых светодиодов (правда расчетов я ни каких специальных для этого не производил).

Характеристики белых светодиодов

 

Сборка

Коротко о сборке. 3D модель в скетчап.
Основание светильника выполнено из отрезков алюминиевого профиля 15мм х 30мм.
Алюминиевые детали складываются попарно на ребро, надежно фиксируются и просверливаются сверлом 2,5 мм. При чем, у верхнего профиля просверливаются обе стенки, а у нижнего только примыкающая стенка. В верхнем профиле отверстия, расположенные на верхней грани рассверливаются до 7мм. Далее детали нужно разъединить и в нижнем профиле нарезать резьбу М3, а нижней стенке верхнего профиля рассверлить отверстие сверлом 3мм (чтобы свободно винт М3 проходил). Таким образом, пара профилей скрепляется винтами М3 в 5 точках. После соединения первой пары профилей, всё разбираем, предварительно промаркировав какой профиль с каким стыкуется, верхний профиль убираем, ставим вниз следующий профиль и всё повторяем, но с некоторым смещением. На иллюстрации попробовал это изобразить:

После подготовки всех деталей соприкасающиеся поверхности необходимо промазать тонким слоем термопасты (я использовал КПТ8). Собрать детали основания светильника, скрутив их винтами с использованием фиксатора резьбы.
Если в вашем случае светодиоды попадают на стыки профилей, то для нормального теплового контакта между профилем и радиатором светодиода нужно тщательно отшлифовать всю поверхность. На представленных здесь чертежах такой проблемы нет, однако, т.к. я собирал свой светильник из материалов, которые были под рукой, то я столкнулся с необходимостью шлифовки. Выбираем сторону, к которой планируем крепить светодиоды и тщательно шлифуем её до тех пор, пока палец не перестанет ощущать переход между соседними профилями (я шлифовал сначала болгаркой с наждачкой на липучке, а потом вибрационной плоскошлифовальной машиной Фиолент МПШ 4-28 наждачкой зернистостью 400).

Далее с обеих сторон крепим алюминиевые уголки. Я использовал 25×15, но лучше взять размером по больше. Крепление винтами М4, в предварительно просверленные отверстия, диаметром 3,5мм с нарезанными резьбами М4.

Далее сверху крепим Ш-образный профиль — он будет служить радиатором. Каждую деталь промазываем термопастой, крепим на винты M3 или M2,5 (головки от М3 могут не вместиться между ребрами).

Вертикальные стойки изготовлены из того же профиля, что и основание светильника (15×30мм). Для установки на ребро стекла аквариума, снизу стоек на уголках закреплёны детали из П-образного профиля.

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

Сборка корпуса завершена, осталось закрепить светодиоды.
В любой чертежной программе или в редакторе векторной графики делаем макет расположения светодиодов и выводим на печать в масштабе 1:1 на 2 листа формата А4 с последующей склейкой в один шаблон. Приклеиваем макет на клей-карандаш к основанию светильника и накерниваем места отверстий для крепежа светодиодов. Пример макета.
Затем сверлим отверстия сверлом 2,5мм, нарезаем резьбу M3 и на термопасту садим звезды (радиаторы типа Star) светодиодов на основание. Особо обращу внимание, что под головки винтов, во избежание замыкания, необходимо подкладывать изолирующие шайбы из стеклотекстолита (я покупал в Чип и Дип) <img
Примененные мной LED-драйверы имеют наибольшую эффективность при питании от 24В и последовательном соединении 6 одноваттных светодиодов, схема будет ниже. Соединяем все светодиоды по схеме (для монтажа я использовал провод МГТФ 0,35 кв.мм) и затем защищаем лаком контакты и все элементы светильника обращенные к воде (ну, кроме линз светодиодов разумеется). В итоге должно получится как-то так:

Электроника

Драйвера для питания светодиодов использованы самодельные на базе микросхемы MBI6651 в корпусе SOT23-6L. Платы сделаны под smd-монтаж, обратная сторона стеклотекстолита осталась полностью гладкой, что позволило их закрепить на задней стороне профиля, который служит для драйверов радиатором.

Данные микросхемы из обвязки требуют 2 танталовых конденсатора, дроссель, диод Шоттки и токозадающий резистор.

Имеется вход для подачи ШИМ сигнала для управления яркостью (от 0 до 100%). При питании от 24в и подключенных 6ти светодиодах, эти драйвера обеспечивают эффективность около 98%. В моём случае использованы 5 таких микросхем. 3 драйвера питают 18 белых светодиодов, и по одному использованы для красных и синих светодиодов. В принципе, можно было 8 цветных светодиодов повесить на один драйвер, т.к. они имеют меньшее напряжение питания и ограничиться четырьмя микросхемами MBI6651 на весь светильник. Два параллельно включенных резистора по 0,47Ом (в сумме дают ~0,23Ома) обеспечивают ток около 350мА. Индуктивность я использовал с выводами, расположив её над микросхемой драйвера. Для SMD-дросселя, понадобилось бы дополнительное место на плате.


Плата в формате SprintLayout6
На плате драйверов необходимо соединить перемычками все пятачки «In +» и туда же подать плюсовой вывод блока питания на 24в. Подключить общий, и выход ШИМ сигнала с микроконтроллера, о котором ниже:
Для управления светом использован модуль D1-mini на базе Wi-Fi микроконтроллера ESP8266 с прошивкой проекта Tasmota.

Плату с минимальными переделками и корпус использовал из одного предыдущего своего проекта димера для светодиодных лент Для питания платы D1 Mini применен DC-DC преобразователь MINI 360 на вход которого подается 24в.

Светильником можно управлять из любой системы умного дома по MQTT или посредством GET-запросов. Для первоначального конфигурирования и управления имеется веб-интерфейс.
Tasmota также можно сконфигурировать и для автономной работы (различные таймеры и сценарии по ним запускаемые). Таким образом у меня настроена полная автоматическая автономная работа светильника, реализованы режимы рассвета и заката (конфигурирование подробно будет описано ниже).

Прошивка и конфигурирование

Так как изначально я ставил задачу иметь возможность управления из системы умного дома, то сразу хотел применить понравившийся мне проект MySensors. Но в какой-то момент поняв, что лень и недостаточность опыта в программировании Arduino (что бы реализовать все свои хотелки) могут затянуть изготовление светильника до бесконечности, я принял решение использовать что-то готовое и конфигурируемое в процессе работы. Из подобных проектов мне хорошо знаком WiFi-iot и чуть хуже Tasmota (из подобных еще есть ESP Easy и ESPHome…).
Выбор Tasmota был обусловлен рядом факторов, таких, как частота ШИМ, которую можно задрать аж до 4кГц; встроенная функция wakeup (рассвет), заката правда нет, пришлось делать руками; бесплатность в конце-концов в отличие от WiFi-iot, например… и возможность писать сценарии через, в тот момент мне еще не знакомые, Rules (пришлось не полениться и разобраться))))…
Прошивку Tasmota можно скачать в виде исходного кода (что бы что-то подправить там под себя) или в виде уже скомпилированного бинарника, который можно сразу прошить в контроллер. Воспользуемся вторым вариантом, скачиваем бинарник текущей версии тасмоты и прошиваем его в плату D1 Mini. Для прошивки я использовал программу NodeMCUFlasher , так же можно воспользоваться Tasmota PyFlasher

При первом запуске не сконфигурированная Tasmota запускает свою (одноименную) точку доступа Wi-Fi. После подключения идем по адресу 192.168.4.1 и в открывшемся веб-интерфейсе первым делом настраиваем подключение к своему Wi-Fi роутеру (Configuration=>Configure WiFi). Задав нужные параметры нажимаем Save, после чего девайс перезагрузится и подключится к вашему роутеру. Далее идем в Configuration=>Configure Module и выбираем Sonoff LED (здесь же можно сконфигурировать подключение дополнительных устройств, типа кнопок, термодатчиков и т.п.). Вернувшись в главное меню мы увидим органы управления светом.

В оригинале модуль Sonoff LED может управлять светодиодным светильником с теплыми и холодными светодиодами и вот верхний ползунок как раз регулирует баланс между ними. Нам он не нужен, поэтому сразу загоняем его до конца влево. Нижним ползунком мы будем вручную управлять освещенностью нашего аквариума. Кнопка Toggle переключает состояние светильника из выключенного во включенное и наоборот. Можно испытывать!
После успешных испытаний перейдем к более тонкой настройке:
Откроем консоль и введем команду PWMFrequency и в ответ увидим

это значит, что частота ШИМ сигнала будет составлять 800Гц. Не плохо, но можно лучше, поэтому пишем в консоле:

(где-то читал, что частоту ШИМ для освещения рекомендуют делать не кратной частоте сети, которая составляет 50Гц)
в ответ получаем:

Давайте еще включим плавное изменение яркости и скорость изменения яркости командами:

 

Так же необходимо задать время (в секундах) за которое будет отрабатывать функция wakeup (рассвет) доступны значения от 1 до 3000. Для экспериментов можно задать секунд 20 и дав из консоли команду wakeup посмотреть как это работает (светильник должен быть выключенным). Эту функция можно использовать добавляя значение яркости в процентах. Например команда wakeup 50 сделает за заданное время в параметре WakeupDuration, плавное изменение яркости от текущего значения до 50%. Таким образом можно обойти ограничения на длину рассвета в 1час (3000 секунд). Для этого просто поделим рассвет на несколько этапов, например от 0 до 30% за первый час, от 30 до 70% за второй и от 70% до 100% за третий час.
Надо отметить, что введенные выше команды Fade и Speed на функцию wakeup ни как не влияют и изменения яркости в сценарии рассвета происходит немного ступенчато (хотя если не присматриваться, то не заметно). Зато они помогут нам сгладить процесс заката, который будем настраивать при помощи последовательности команд Dimmer (с указанием значения) собранных в сценарий, посредством инструмента Rule. Команду Dimmer можно испытать введя с консоли:

,

и т.п. Команд множество, ознакомиться со всеми можно здесь.
Любую команду можно выполнить по расписанию, но предварительно нужно обеспечить нашему модулю управления доступ к NTP серверам в интернет или локальной сети. По умолчанию всё должно прекрасно работать через интернет (если, конечно Вы специально ни чего не блокировали на роутере) и нам останется только настроить временную зону. Для этого введите с консоли команду:

(вместо 3 подставьте свое число). Проверить корректность времени можно командой

если ответ корректен, то на этом предварительную настройку модуля можно считать оконченной, можно переходить к написанию сценариев и настройке таймеров. Но если по каким-то причинам вы не можете предоставить контроллеру доступ в интернет, по тут путь только один — подключать модуль часов реального времени, но это уже выходит за рамки данной статьи.
Отвлечемся от Tasmota и на понятном языке составим план действий, итак:

Световой день поделен на 4 части:
• рассвет с 9:00 до 12:00
• зенит с 12:00 до 14:00
• 90% освещенности с 14:00 до 16:00
• закат с 16:00 до 20:00

Рассвет поделен на 3 этапа, а после 14:00 освещенность снижается до 90%. Этапы активируются глобальными таймерами (Configuration=>Configure Timer):

В поле Action выставляем значение Rule, теперь это правило нужно написать. Всего можно задать 3 правила, каждое из которых может содержать некоторое кол-во команд, ограниченное 511 символами. Если кол-во символов в первом правиле исчерпано, то нужно начинать второе. С синтаксисом можно ознакомится тут
Для ввода правил опять понадобится консоль, открываем и пишем всё в одну строку:

Активируем правило:

В этом правиле мы записали сценарии, запускаемые глобальными таймерами 1…4.

Закат состоит из 3х этапов (т.к. одно правило состоит из не более 511 символов). Начинается в 16:00 по глобальному таймеру №5 (Rule2). Продолжение в 19:00 по глобальному таймеру №6(Rule3) и выключение в 20:00 по глобальному таймеру №6.

Так, как функция «закат» в Tasmota отсутствует, всё реализовано, посредством функции dimmer, а паузы, посредством RuleTimer (имеется 8шт). Процедура описана в Rule2 и Rule3 (в правило вмещается только 511 знаков).

Для читабельности пишу всё с новой строки, хотя можно попробовать и вводить сразу всё копипастом

Активируем:

 

Активируем:

 

На графике это будет выглядеть как-то так:

На этом пожалуй всё, возможно о чём-то забыл рассказать, спрашивайте в комментариях… Статья получилась огромной, надеюсь вам понравится и будет кому-то полезна…

P.S.
Это перепечатка моей же статью с муськи.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *