» » » Самодельный акваконтроллер на Arduino - необходим для домашнего аквариума

Самодельный акваконтроллер на Arduino - необходим для домашнего аквариума


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


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

- невысокая стоимость и доступность компонентов;
- настраиваемое время включения и выключения света в аквариуме;
- режим кормления (фильтр отключается и запускается через 15 минут автоматически);
- включение режима кормления по расписанию;
- измерение температуры и влажности окружающего воздуха (как дополнение);
- отображение текущей даты, времени и других параметров на ЖКИ дисплее;
- управление и настройка параметров через меню при помощи 4-х кнопок (Вверх, Вниз, Ок, Отмена) ;


Исходя из вышеперечисленного родилась схема, показанная на рисунке №1.


Рисунок №1 – электрическая схема акваконтроллера

Основным элементом является плата Arduino ProMini, приобретённая в Китае. Как выяснилось позже, на ней был установлен контроллер ATMega168 вместо ATMega328. Это заставило меня повозиться с оптимизацией программы, так как она оказалась неподъёмной для этого контроллера из-за вдвое меньшего размера flash-памяти.


Для отображение информации был выбран всем известный 2-х строчный 16-ти символьный ЖКИ-дисплей. В проекте он подключен к Arduino по 4-х проводной шине данных.


За измерение температуры и влажности отвечает цифровой датчик DTH11. Для бытовых нужд его вполне достаточно. По сути, он не несёт определённой цели и добавлен чисто как дополнение к общей картине.


Для управления лампой дневного света и фильтром я применил два симмисторных канала, выполненных на связке оптосиммистора MOC3063 и силового симмистора BT137-600E. Это позволило избавить схему от механических реле, к которым почему-то не испытываю симпатии.


Кнопки управления – обычные тактовые, без фиксации.


Ну и так как все настройки завязаны на определённый временной период, устройство должно обязательно содержать часы реального времени. В данном случае я использовал модуль TinyRTC на базе микросхемы DS1703. Модуль управляется по протоколу i2c и содержит разъём для установки батарейки, что позволяет сохранить значение даты и времени при отключении питания. Внешний фид модуля показан на фото №2


Самодельный акваконтроллер на Arduino - необходим для домашнего аквариума
Фото №2 – модуль часов реального времени

Итак, требования определены, схема составлена – можно пререходить к этапу проектирования печатной платы. С этой задачей мне успешно помог справиться онлайн-сервис EasyEda. Чтобы не возиться со сверлением отверстий, все токоведущие дорожки и компоненты я решил расположить в верхнем слое. Немного покрутив детали в редакторе, получил проект печатной платы всего с тремя перемычками. Внешний вид платы можно увидеть на рисунке №3.


Рисунок №3 – внешний вид печатной платы акваконтроллера

Желающие повторить проект могут скачать файл печатной платы по этой ссылке: pcb-lut.pdf [69.4 Kb] (скачиваний: 28)
Посмотреть онлайн файл: pcb-lut.pdf

Итак, на какие моменты стоит обратить внимание. Сопротивления R4 и R8 – двухватные, все остальные выполнены в SMD корпусе 1206. Тактовые кнопки имеют размер 12х12. На плате также установлен китайский преобразователь напряжения 220В/5В, внешний вид которого паказан на фото №4.


Фото №4 – преобразователь напряжения 220В/5В.

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


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


Итак, для начала ищем любой журнал с глянцевыми страницами или лист фотобумаги. Распечатываем на лазерном принтере рисунок платы, не забыв его зеркально перевернуть. Подготавливаем отрезок фольгированного стеклотексалита по размеру загатовки и шлифуем до блеска медную поверхность мелкозернистой наждачной бумагой. Должно получиться что-то вроди этого (фото №5).


Фото №5 – плата подготовлена к переводу рисунка

Далее, переворачиваем распечатку рисунком к фольге и прикладываем к текстолиту. После этого около 3-х минут водим по бумаге разогретым утюгом. Время прогрева тут может меняться в зависимости от температуры утюга и опыта исполнителя этого тайного ритуала. Наглядно это выглядит примерно так (фото №6):


Фото №6 – перевод рисунка на поверхность фольги

После того, как бумага надёжно прилипнит к текстолиту, выключаем утюг и даём плате остыть. Теперь необходимо аккуратно снять бумажный слой и при этом не повредить прикипевший тонер. Чтобы дело увенчалось успехом, бумагу необходимо смачить и удалить путём скатывания подушечками пальцев. Более наглядно этот процесс показан на фото №7.


Фото №7 – удаление бумаги с печатной платы

Иногда случается так, что в некоторых местах тонер просто не прилипает. В таком случае эти участки можно дорисовать перманентным маркером. На фото №8 показана плата после удаления бумаги. Обратите внимание, что в верхней левой части отсутствует часть рисунка, которая в последствии будет восстановлена вышеуказанным методом.


Фото №8 – плата после удаления бумаги

Когда все неприятные моменты устранены, можно приступать к травлению. Для этого я использовал раствор хлорного железа, как один из самых доступных и безопасных вариантов. Вытравив плату, тщательно промываем её растворителем, чтобы снять тонер с дорожек. Затем ещё раз зачищаем мелкой наждачкой, обезжириваем и лудим. Результат показан на фото №9.


Фото №9 – плата готова к установке радиокомпонентов

Один из основных этапов завершён. Следующий этап – монтаж и пайка радиодеталей. Это процесс творческий и сугубо индивидуальный. Если возникнут вопросы – готов ответить на них в комментариях, а сейчас просто покажу то, что у меня получилось (фото №10):


Фото №10 – плата с запаянными компонентами

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


Фото №11 – акваконтроллер без корпуса

Перед тем, как запечатать верхнюю часть корпуса, необходимо записать прошивку в Arduino ProMini. Для этого я вывел на плате штырьки, соединённые с контактами VCC, GND, RX и TX. Программировать Arduino ProMini проще всего используя USB-программатор, но в наличии такого не оказалось. Его роль с успехом выполнила другая плата Arduino Uno с изъятым контроллером. Не буду вдаваться в подробности этого процесса, так как на эту тему в Интернете есть множество статей. Приведу лишь фото №12 для наглядности.


Фото №12 – подготовка к прошивке

Теперь поговорим о самой программе. При включении питания отображается основной экран. На нём выводится информация о текущей дате, времени, температуре и влажности. Также отображаются несколько спецсимволов в зависимости от текущего состояния системы, а именно: свет включен – значок солнца; свет выключен – значок луны; фильтр включен – значок фильтра; идёт кормление – значок рыбки. При нажатии кнопки ОК, пользователь попадает в меню, где есть возможность настройки таких параметров, как:
- режим управления освещением. В этом разделе можно включать и выключать свет вручную выбором соответвтующего пунта меню, а также задать время включения и выключения по расписанию.
- режим управления фильтром. Позволяет включать и выключать фильтр вручную, выбирать функцию «кормление» (fedding), и задавать кормление по расписанию. В режиме кормления работа фильтра прекращается и восстанавливается автоматически по истечении 15 минут.
- установка текущей даты.
- установка текущего времени. Данные даты и времени записываются в модуль часов и при выключении питания не сбрасываются, если на нём установлена батарейка.

Для более наглядного понимания, на рисунке №13 изображена структура меню.


Рисунок №15 – структура меню акваконтроллера.

Скачать прошивку для Arduino Pro Mini и все необходимые библиотеки можно по этой ссылке

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


Фото №16 – акваконтроллер в работе
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Автоматическая кормушка для кота на Arduino

7.5
Идея
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
10
Описание
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
9.5
Исполнение
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Итоговая оценка: 9.0 из 10 (голосов: 2 / История оценок)
Чтобы написать комментарий необходимо войти на сайт через соц. сети (или зарегистрироваться):
Обычная регистрация
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
4 комментария
  1. Oltaviro Oltaviro
    "Возможно будет" или "необходим"? Или не то и не другое?
  2. Korolev
    акваконтроллер на Arduino - необходим для домашнего аквариума
    Столько лет держал аквариум, и даже не догадывался, что ему необходим акваконтроллер, тем более такой, который не поддерживает заданную температуру воды, не подаёт корм, зато информирует обитателей аквариума о текущей дате, времени, температуре и влажности окружающего воздуха! xaxa
    1. Drv
      ТОчно))
  3. Drv
    Много много лет назад купил розетку с таймером, которая включает и выключает свет вместе с фильтром, цена вопроса ~150 рублей.
    И что там за скетч такой который на флеш память не мог влезть? Поколение ардуино.. грустно. А вообще молодец что своими руками что то можешь сделать

Добрый день, Гость!


Зарегистрируйтесь

Или войдите на сайт, если уже зарегистрированы...

Войти

А затем...

Добавьте самоделку

Или...

Добавьте тему

Онлайн чат

Опрос
Сколько по времени, чаще всего, Вы делаете самоделку?

Последние комментарии

Скандалист, я посмотрел что у вас много комментариев, и все они негативные, и ни одной публикации. почему бы вам не выставить на общее обозрение ваши самоделки? Или критиковать намного легче ??...
Не нужно никакой трубы. После снятия стопорной шайбы (или отвинчивания гайки), я просто огромной плоской отвёрткой, как рычагом, выдавливаю якорь из подшипника, вставив отвёртку между торцом якоря и...
На одном из радиозаводов нашего города пытались ускорить процесс травления печатных плат ультразвуковым барботажем. До тех пор, пока фундамент не стал рассыпаться!...
Мне кажется, где есть положительный эффект от воды (пара), так это в капельной горелке на отработке. но там другая ситуация, реакция масла и воды, когда начинаешь через капельницу подавать воду в...
Все комментарии