Контроллеры для аквариума своими руками

AQUAkmv

Сообщество аквариумистов

Контроллер для аквариума с LED на ARDUINO

Это продолжение предыдущего проекта ССЫЛКА .

На данном этапе в контроллере реализовано:
1. 5 канальный ШИМ для светодиодного света.
2. Раздельная регулировка яркости каналов.
3. Функция рассвета/заката с регулировкой длительности.
4. Функция луны с регулировкой красного и голубого канала.
5. Дневная пауза для освещения.
6. Датчик температуры для аквариума с каналом для подключения вентиляторов.
7. Датчик температуры для радиатора света с каналом для подключения вентиляторов.
8. Канал для подключения автокормушки.
9. Канал для подключения CO2.
10. 4 канала для подключения нагрузки с индивидуальными суточными расписаниями.
11. Энергонезависимая память для настроек и часов.
12. Автоматическая подсветка дисплея.
13. Управление одним энкодером, графический дисплей 16х2.

Маленькая анимация работы меню контроллера.

Управление старался делать интуитивно понятным. Переходы по меню выполняются нажатием на энкодер. Выбор параметра – поворотом энкодера. Изменение параметра поворотом нажатого энкодера.

Коротко о режимах подсветки LCD дисплея:
OFF подсветка включается только если пользоваться энкодером, отключается черз 15 сек бездействия.
ON подсветка всегда горит
AUTO подсветка горит только если пользоваться энкодером или если горит хотябы один канал освещения, отключается черз 15 сек бездействия.

Проект открытый, исходники в теме у нас на форуме.
Большая просьба при повторении проекта указывать первоисточник www.aquakmv.com. Ну и делиться своими доработками в этой теме. Буду очень благодарен!

Вот так собранная схема выглядит у меня. В корпусе от DVD привода. С деталями напечатанными на 3д принтере.

Начнем с необходимых комплектующих:

1. Arduino nano 3.0 с Atmega 328p на борту
Ссылка на али: Купить
2. Дисплей 1602 с модулем I2c
Ссылка на али: Купить
3. Датчик температуры Ds18b20 В герметичном корпусе
Ссылка на али: Купить
4. Часы реального времени DS3231
Ссылка на али: Купить
5. Модуль реле на 4 канала и еще один на 1 канал
Ссылка на али: Купить
5. Или модуль твердотельных реле (более надежный вариант)
Ссылка на али: Купить
6. Модуль с силовым ключем
Ссылка на али: Купить
6. Понижающий Преобразователь
Ссылка на али: Купить
7. Энкодер, 1шт

Ссылка на али: Купить 7. 16-канальный 12-битный PWM PCA9685, 1шт
Ссылка на али: Купить 8. Драйвера Meanwell LDD700,500,350 , 5шт
Ссылка на али: Купить 8. ИЛИ Драйвер PT4115 700ma, 5шт
Ссылка на али: Купить 10. Разъем на 8 контактов как у меня для подключения ЛЕД
Ссылка на али: Купить

Для монтажа потребуются провода, разъемы, макетные платы для сборки драйверов, принадлежности для пайки:

1. Отличный монтажный провод
Ссылка на али: Купить
3. Хороший припой
Ссылка на али: Купить
4. Макетные платы
Ссылка на али: Купить
5. Флюс безотмывочный RMA 223
Ссылка на али: Купить
7. Паяльник с регулировкой температуры
Ссылка на али: Купить

Перед сборкой нужно настроить понижающий преобразователь на 5В

Схемы проекта и прошивки:

Старая схема:

В этой версии нет
-автокормушки
-датчика для радиатора света
-дневной паузы
-настройки цвета луны
Архив с прошивками лежит ТУТ
Обновлен 12 апреля 2020г.

Под дисплей с i2c модулем 4T и 4AT.

Новая схема:

Архив с прошивками лежит ТУТ Обновлен 26 декабря 2020г.

Под дисплей с i2c модулем 4T и 4AT.

Ниже схема-пример подключения контроллера через драйвера MEANWELL серии LDD. Количество светодиодов на канал выбирается в зависимости от напряжения выдаваемого вашим БП.

При подключении драйверов к плате PCA9685 , обязательно нужно соединить GND светильника с любым из контактов GND платы PCA9685.

Схема на PT4115

Подробнее о сборке светильника на PT4115 -> ССЫЛКА

Силовая плата может быть как на основе реле:

Обычных

При использовании таких реле и индуктивной нагрузки (двигатели, помпы, фильтры) во избежании помех на контроллер следует поставить RC фильтр:

R=100 Oм, C=0.1мкФ*630V
или твердотельных

Так и на основе симисторов:

Файл платы для Sprint в формате lay6 СКАЧАТЬ

Прошивка:

Прошиваем один HEX с помощью простейшей программы XLoader:

Работать с ней предельно просто:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт, который создался при подключении Arduino к USB (скорость порта автоматически подставится при выборе типа Arduino)
— жмем Upload

Архив с программой Xloader.zip

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

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

Если есть вопросы, то их можно обсудить в соответствующей теме. Там же вы можете найти исходники проекта!

Контроллер для аквариума с LED на ARDUINO : 10 комментариев

Добрый день! давно хотел что-то подобное собрать, но я в этом полный ноль! по вашей схеме думаю получится! только подскажите как соединить Драйвер PT4115 700ma в место LDD700, ? Спасибо большое!

Добавил схему в пост!

Подскажите, в архиве с прошивками для новой схемы 4 файла, каким прошивать?

Зависит от вашей версии дисплея 4T или 4АТ, если не знаете проверьте обе. На одной дисплей будет показывать – это ваша.
Еще два варианта зависят от версии реле – для обычных модулей NEGATIVE, для твердотельных обычная.

Доброго времени суток. Возможно ли на один из четырёх каналов, вывести включение нагревателя от датчика температуры воды? Нагрелась кулер включился, остыла нагреватель.
Спасибо.

На форуме в теме есть такая прошивка

Здравствуйте! Можно ли у Вас заказать прошивку для 6-ти канального лед светильника? Вся схема собрана по подобию вашего проекта (только свет). “Печенька” с меня

Источник

Реализация универсального аквариумного контроллера

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

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

Вступительная часть

Предпосылки для создания контроллера весьма банальны — был приобретен аквариум на 450 л, и к нему в дополнение шла крышка с установленными лампами, ЭПРА, кулерами, PH-электродом с усилителем, и управляющим всем этим многоканальным контроллером. Первое время все работало без сбоев, но потом начали умирать управляющие симисторы, сбрасываться текущее время, да и функционал не совсем удовлетворял возросшим требованиям. После длительного использования и анализа имеющегося контроллера было принято решение сделать свой управляющий орган, и продуман функционал будущего устройства:

1. Управление 8 каналами (+1 ШИМ канал):
— 4 канала освещения;
— компрессор;
— нагреватель;
— электроклапан системы CO2;
— помпа/электроклапан автодолива;
— кулера 12В (ШИМ).
2. Подключение 3-х температурных датчиков DS18B20.
3. Подключение электродов PH и Redox-потенциала.
4. Подключение датчика уровня воды (аналоговый датчик).
5. В качестве коммутирующего элемента использовать электромеханические реле.
6. Подключение 4-х строчного ЖКИ на контроллере HD44780.
7. Наличие часов реального времени DS1307Z.
8. Связь с ПК организовать 2 способами:
— радиомодуль, использующий Bluetooth HC-05 (основной канал);
— подключение по USB (резервный канал).
9. Номинальная мощность коммутируемой нагрузки 650 Вт.
10. Наличие электрических фильтров питающих напряжений и защитных элементов основных цепей устройства.
11. Промаркировать все разъемы и выводы подключений.
Возможности программного обеспечения для ПК:
— ручной режим управления нагрузкой;
— 4 автоматических режима (температурный режим, режим PH/CO2, режим вентиляции крышки, режим автодолива воды);
— использование 3-х таймеров на каждый канал, с возможностью по секундной установки интервалов;
— калибровка электродов;
— ограничивающие временные интервалы подсветки ЖКИ, работы кулеров и системы СО2;
— запись данных в энергонезависимую память контроллера и всевозможная индикация текущих параметров системы.

С некоторыми поправками данный функционал может быть отнесен к категории универсальных устройств. Это конечно не совсем корректно, т.к. аквариумные контроллеры можно разделить на 2 подгруппы – для пресноводных и морских обитателей. Различаются в данном случае и режимы освещения, и наличие различных электродов, определяющих параметры воды, и программные режимы, стабилизирующие эти параметры, и др. Аппаратная составляющая аквариумов так же весьма отличается. Освещение может быть организовано люминесцентными лампами, а могут быть использованы светодиоды или светодиодные ленты. IMHO – использование светодиодов более привлекательный подход, как с точки зрения получения необходимого спектрального состава, так и при организации управляющих режимов. Однако, использование качественных комплектующих, стабилизаторов тока, источников питания и вопрос отвода тепла делает этот подход более дорогостоящим. Ввиду чего, большое количество аквариумистов все еще использует люминесцентное освещение, и менять его пока не собираются. Различий может быть великое множество, ибо готовые решения приобретаются крайне редко, и большая часть аквариумов собраны под индивидуальные вкусы их владельцев. В данном случае рассматривались 3 аквариума, и были объединены/усреднены требования по оным. В итоге, получилась система для пресноводного аквариума (либо травника), с люминесцентным освещением, объемом до 500 л., автономным режимом работы, выводом необходимой информации на ЖКИ и подключением к ПК для конфигурации.

Аппаратная реализация

Исходя из личного опыта, опыта других разработчиков и вредности своего IMHO – конструкции типа «бутерброд», построенных на базе Arduino и иже с ним, стараюсь не использовать. Вообще и никогда. Это же касается и программного обеспечения (низкого или высокого уровня). Исключения составляют внешние библиотеки, собственноручно переработанные и прошедшие не одну сотню часов тестирования. Ну и разумеется стандартные либы, блокнот, компилятор, программатор/отладчик и осциллограф.

Аппаратная часть основана на микроконтроллере фирмы Atmel — ATmega32A, работающего от внешнего кварцевого резонатора 11.0592 MHz. Выбор обоснован наличием большого кол-ва флеш- и оперативной памяти, необходимым кол-вом выводов, дабы не чувствовать себя стесненным в средствах (в итоге было использовано

80% ресурсов МК). Коммутация нагрузки реализована посредством электромеханического реле. В устройстве использовались реле герметичного исполнения фирмы OMRON, серия – G5LA. Получение текущего времени организовано посредством микросхемы DS1307Z + прецизионный термостабильный резонатор, заблаговременно снятый со швейцарского промышленного оборудования. Выбор был обусловлен наличием этой микросхемы и качественного резонатора. В другом случае предпочтительно использовать DS3231. Для управления кулерами используется ШИМ-сигнал. В качестве ключевого элемента используется полевой транзистор LR3714Z. Для вывода данных на ЖКИ используется 4-х битная шина, для коммутации подсветки используется транзистор FMMT717TA. Связь с ПК организована посредством радиоканала (RS232-Bluetooth HC05), либо преобразователя RS232-USB CP2102. Скорость передачи данных 9600 kbit/s. Фильтрация сетевого напряжения рассчитана на номинальную мощность

650 Вт. Терминирование температурных датчиков DS18B20 необходимо производить в непосредственной близости от датчика. Для повышения надежности устройства использовался внешний супервайзер ADM690ANZ, отслеживающий тактирование МК и уровень питающего напряжения. Радиоканал реализован отдельным модулем, подключаемым на плату контроллера через 4 пиновый разъем. Присутствует всевозможная индикация (активность каналов, наличие питающих напряжений, тактирование МК, передача пакета данных).

Хотелось бы, конечно, использовать Wi-Fi подключение, с HTTP сервером. Но для этого необходимо иметь в распоряжении Ethernet MAC модуль, что тянет за собой также необходимость и DMA интерфейса, — а это уже задача не для AVR. Да и стоимость адекватного Wi-Fi модуля довольно высока. Не будем рассматривать цепочку из нескольких плат (об этом я писал вначале параграфа), или же дешевых китайских модулей, способных на все, но при этом отваливающихся каждые полчаса. И с ARM7TDMI на более свежую архитектуру все никак не осилю себя перейти. Да и смысл использовать ARM для такой задачи, где с лихвой хватает AVR. Только для Ethernet/Wi-Fi — не вижу смысла. В общем, это уже задача другого уровня. Для текущего автономного контроллера было принято решение ограничиться USB/Bluetooth и внешним супервайзером.

Для разработки устройства использовался программный продукт P-CAD 2006 SP2. Ниже приведена принципиальная схема устройства (кликабельно):

Печатная плата устройства была разработана под SMD-монтаж. Класс точности – 4. Используются корпуса TQFP44, QFN28, SOT23, TAN-A, TAN-B, SMA, 0805, 0603 и др. Плата имеет двухстороннюю реализацию. Общий вид печатной платы устройства приведен ниже (кликабельно):

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

После напайки всех компонентов, прочистки ультразвуком от флюса и прошивки контроллера устройство приобрело следующий вид:

Для установки супервайзера предусмотрена 8-пиновая панелька. ADM690ANZ весьма чувствителен к флуктуациям питающего напряжения, и если у вас нет возможности установить качественный стабилизированный источник питания на 5В – лучше супервайзер не использовать. Иначе получите больше проблем, нежели пользы от его использования. Для переключения между USB и Bluetooth используется соответствующая перемычка.

Изначально, устройство планировалось устанавливать в крышку аквариума. Поэтому организация корпуса не предусмотрена. Однако, в дальнейшем, возможно, надобность в оном появится. Для отображения информации использовался 4-х строчный ЖКИ WH2004L-TMI-CTW, устанавливаемый на переднюю часть алюминиевой крышки. Во избежание наводок на индикатор, во время коммутации силовой нагрузки, сам индикатор необходимо изолировать от соприкасающихся металлических частей крышки, а шлейф, идущий от контроллера к экрану, — экранировать.

Ну и в завершении описания аппаратной составляющей ниже представлена фотография крышки аквариума. В ней установлен сам контроллер с ЖКИ, источник бесперебойного питания на 5В с аккумулятором, импульсный источник питания на 12В, 6 ЭПРА, плата усилителя для PH-электрода (основана на CA3140E), 2 80мм кулера и разъем для сетевого питания с простеньким входным фильтром.

Реализация связи с устройством

Основным каналом связи предусмотрен радиоканал Bluetooth (HC-05), USB-подключение – резервное. Устройство не имеет гальванической развязки между микроконтроллером и преобразователем уровней CP2102 (USART-USB). При подключении посредством USB необходимо убедиться, что источник электропитания, используемый для получения +5В, и питающее напряжение ПК включены в один узел электросети (розетку). В ином случае возможна некорректная работа устройства, выход из строя определенных элементов конструкции. Ниже приведена схема и печатная плата радиомодуля:

Программная реализация

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

— обработка данных входящих пакетов;
— преобразование текущего времени в числовое значение (для удобства все временные значения в программе представлены в числовом виде HHMMSS);
— управление заданными каналами, в соответствии с выбранными режимами работы (раз в секунду);
— управление каналом PWM;
— обработка данных управляющих режимов (температурный режим, режим PH/CO2, режим вентиляции крышки, режим автодолива воды);
— установка ограничений временных интервалов (подсветка ЖКИ, работа кулеров и системы CO2);
— запись данных в EEPROM;
— анализ текущего состояния каждого из каналов, выбранных режимов с соответствующей индикацией;

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

Проект состоит из нескольких файлов: main.c, hd44780.h, i2c.h, USART.h, Functions.h, ds18b20.c, delay.h, crc8.c. Библиотеки для работы с шиной 1-Wire были позаимствованы с открытого проекта на одном из немецких сайтов и переработаны под собственные нужды (убраны неиспользуемые функции и добавлено указание используемого порта и вывода МК для соответствующего датчика). Все остальные либы написаны с чистого листа.

Для отладки низкоуровневого программного обеспечения использовалось компьютерное моделирование устройства, посредством программного пакета Proteus 7.7 SP2. Ниже приведена собранная схема устройства:

Для разработки программного обеспечения высокого уровня использовался программный продукт Microsoft Visual Studio 2007. Основные возможности ПО представлены 4-мя закладками: отображение информации, режимы/события, ежедневные таймеры, калибровка электродов. Данные обновляются раз в 3 секунды. Для передачи данных используется метод транзакций. ПО отправляет пакет данных устройству, которое в свою очередь, после получения, отправляет принятый пакет обратно на ПК. Если отправленный и принятый пакеты совпадают — транзакция прошла успешно. Если же данные различаются, то текущий пакет данных отправляется заново. При многократном не совпадении отправленного и принятого пакета данных отображается ошибка соединения с устройством. Для передачи данных использовался строковый тип, что позволяет безошибочно определить начало/конец пакета, его тип и сами данные. Ниже представлен интерфейс программного обеспечения для ПК:

Полное описание работы программного обеспечения AquaController 2014 находится в справочных материалах, доступных через меню Помощь/Справка. Детальное описание устройства находится в файле «Техническое описание».

Примерная стоимость устройства, учитывая доставку комплектующих,

Это первая реализация проекта аквариумного контроллера. За более чем полгода не выявлено ни единого сбоя в его работе. Некоторые конструктивные и программные недочеты все же имеются, но этого пока недостаточно, для разработки следующего прототипа.

С учетом эксплуатации текущего контроллера, перечень того, что может быть дополнительно воплощено в последующем устройстве:

— аппаратная реализация на ARM Cortex;
— связь по Ethernet/Wi-Fi с организацией HTTP-сервера;
— наличие внешней клавиатуры для аварийного отключения или активации управляемых каналов;
— интеграция усилителя для PH и Redox электродов на плату контроллера;
— наличие управляемых каналов для светодиодной подсветки;
— управление дополнительными агрегатами (автокормушкой, системой подачи удобрения и прочее);
— увеличена номинальная мощность нагрузки;
— замена DS1307 на DS3231;
— возможность установки в один из стандартных корпусов.

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

Ниже загружена на github необходимая документация, программное обеспечение и исходники программ: Акваконтроллер 2014

Источник

Читайте также:  Маленький пруд своими руками возле дома
Оцените статью
Своими руками