Делаем на Arduino автоматизацию для аквариума

Arduino – микроконтроллер, использующийся в качестве конструктора и платформы для самостоятельной разработки электроники. Устройство подходит как новичкам, так и профессионалом в техническом строении. Ардуино заслужило популярность среди разработчиков благодаря удобному и легкому языку, на котором пишут программный код для МК.

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

1. Определение задач для микроконтроллера Arduino при автоматизации аквариума

Первое, о чем должен позаботиться пользователь, – формулировка задач для работы аквариума. По-другому, за что должен отвечать программный код на Arduino для аквариума. Список задач представлен в списке ниже:

  • подача подсветки в разных тонах в утреннее, дневное, вечернее и ночное время;
  • включение света белого оттенка утром, в дневное время яркость увеличивается, а в вечернее, наоборот, уменьшается, ночью запрещается включать свет вообще;
  • синий оттенок включается, когда рыбам становится «холодно»;
  • красный оттенок подается, когда рыбам «жарко»;
  • на аквариуме устанавливается датчик, который всегда отображает точное время;
  • компрессор в аквариуме регулируется: пузыри с воздухом пускаются строго вечером, на ночь компрессор прекращает работу;
  • пользователь создает пульт управления устройством;
  • сигнальный свет регулируется строго с переходом температуры воды, пользователь настраивает данные диапазоны;
  • регулируется утреннее и вечернее время;
  • дополнительная функция – отображение данных о показателе влажности воздуха и температуры вне аквариумной зоны, вывод температуры воды обязателен при этом;
  • подсвечивание даты, когда пользователь нажимает соответствующую кнопку на пульте управления, если дополнительных действий не последовало, экран меркнет.

2. Необходимая периферия и способы ее подключения к Arduino

Для собрания аппаратной части потребуются следующие компоненты:

  • микроконтроллер Arduino Uno(можно и с Мегой);
  • пьезо сигналка;
  • светодиодная лента RGB для подачи света, при погружении в емкость ее следует поместить в силиконовый шланг, чтобы вода не проникала внутрь;
  • белая светодиодная лента;
  • датчик, отслеживающий температурный режим и влажность, наиболее оптимальный вариант – DHT11;
  • небольшой LCD экран;
  • часы, отображающие реальное время, оптимальный вариант – DS1307;
  • 2 штуки реле, один управляет работой компрессора, другой регулирует аэрацию, причем оба работают только при 220;
  • ик-приемник;
  • транзисторы в количестве 5 штук, 3 штуки для rgb-ленты, 1 для помпы и последний для работы белой ленты.

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

Одна из возможных схем:

На просторах интернета найдена была еще одна возможная схема для сборки стеклянного друга:

3. Программирование на Arduino для автоматизации аквариума

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

3.1 Меню и ЖК-Дисплей

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

Например, для вывода "Hello World" нам нужен такой код:

Для нашего урока базовый класс может выглядеть так:

Ну и как пример с одним из пунктов меню (позаимствовано на просторах интернета):

Все датчики и светодиодные ленты к платформе Ардуино подключаются с помощью контактов, у которых действительно есть возможность поддержания широтно-импульсной модуляции. Нельзя подключать сразу 3 контакта при максимальном напряжении, так как лента может перегореть: не сразу, но в течение 50 минут светодиоды прекращают мерцать. Такая ситуация возникает, когда резисторы выходят из строя.

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

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

3.2 Код для работы цветной ленты

Отрегулируем яркость белой ленты с помощью кода:

На этом пока всё. Желаем вам дальнейших успехов с проектами на разных микроконтроллерах.