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

Использование светодиодной лампы для аквариума

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

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

instagram viewer

Светодиодное освещение выгодно не только растениям в вашем аквариуме: многим видам рыб нравится регулярный световой цикл, который имитирует день и ночь, чтобы сохранить свой циркадный ритм, что позволяет им отдыхать, искать пищу и быть активными, как если бы они были в дикий.

Чтобы создать систему светодиодного освещения, обеспечивающую смену дня и ночи для рыб и растений в вашем аквариуме, мы будем использовать Arduino, часы реального времени (RTC) и светодиодную ленту, которые можно использовать для самых разных целей. из Проекты светодиодного освещения Arduino.

Что вам нужно?

Для завершения этой сборки вам понадобится всего несколько деталей:

  • 1x Ардуино микроконтроллер с контактами SDA/SCL (Uno, Leonardo, Micro и т. д.); мы используем Pro Micro)
  • 1x модуль DS3231 RTC
  • 1x WS2812/WS2812B Светодиодная лента NeoPixel RGB со степенью защиты IP65 или выше (мы используем 1-метровую ленту WS2812 из 60 светодиодов длиной 1 метр, герметизированную силиконом; вы можете использовать больше светодиодов, если у вас есть резервуар на 20+ галлонов)
  • 1x 12-вольтовый адаптер переменного тока в постоянный с разъемом «мама»
  • 1x 1000 мкФ конденсатор (опционально)
  • Различные провода и термоусадки
  • Суперклей/двусторонний скотч
  • Нить для 3D-принтера (опционально)

Вам также понадобятся некоторые инструменты для завершения этого проекта.

  • паяльник
  • Кусачки/инструменты для зачистки проводов
  • Тепловая пушка
  • 3D-принтер (по желанию)

Подключение светодиодного освещения для аквариума своими руками

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

Подключение часов реального времени

DS3231 RTC в этом проекте действует как таймер для светодиодного освещения в нашем аквариуме. Этот модуль имеет четыре контакта, которые мы будем использовать: SCL, SDA, VCC и GND, и все они могут быть напрямую подключены к нашему Arduino Pro Micro.

  • SCL до 3 на Arduino
  • ПДД до 2 на Ардуино
  • VCC на 5V на Arduino
  • GND к GND на Arduino

Подключение светодиодной ленты

Подключение вашей светодиодной ленты сложнее, чем RTC, так как светодиоды, вероятно, будут находиться на некотором расстоянии от Arduino, и вам нужно использовать отдельный адаптер питания. чтобы получить полную яркость от ваших светодиодов. На приведенной выше схеме показано, как вы можете подключить светодиодную ленту NeoPixel к Arduino и источнику питания для достижения наилучших результатов. Результаты.

  • DIN к цифровому контакту 7 на Arduino
  • GND к GND на Arduino и отрицательной (-) клемме источника питания
  • VCC/5V+/12V к положительной (+) клемме источника питания
  • Настоятельно рекомендуется использовать конденсатор емкостью 1000 мкФ между отрицательными (-) и положительными (+) клеммами источника питания, чтобы предотвратить повреждение светодиодов.

Наряду с подключением нашей светодиодной ленты к нашему Arduino и источнику питания 12 В, мы также будем модифицировать наш Клон NeoPixel для создания трех светодиодных лент меньшего размера, которые будут соединены в цепочку длинным кабелем. Для этого мы будем использовать изолированный трехжильный кабель, а также термоусадку для герметизации соединений. Наша светодиодная лента поставляется с разъемами JST на каждом конце, что дает нам удобный способ отсоединить ленту от нашего Arduino.

Программирование аквариума Arduino NeoPixel Lights своими руками

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

Добавление библиотек

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

  • Провод.ч: Эта библиотека поставляется с Arduino IDE и позволяет вам взаимодействовать с компонентами I2C, такими как наш RTC.
  • Adafruit_NeoPixel.h: Эта библиотека добавляет функции/классы для управления светодиодами NeoPixel, но она работает так же хорошо с нашей обычной светодиодной лентой WS2812.
  • RTClib.h: Эта библиотека позволяет нам управлять нашим модулем DS3231 RTC.
#включать  //библиотека светодиодных лент
#включать
#включать //Библиотека РТК

Добавление глобальных переменных (необязательно)

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

Объявление и инициализация объектов светодиодной ленты/RTC

Затем нам нужно объявить нашу светодиодную ленту и RTC объектами, которые может использовать наша Arduino, а затем инициализировать их в нашем цикле настройки.

Наши светодиодные ленты можно объявить, сначала определив используемый контакт и установив количество светодиодов на ленте, но затем вы можете использовать строки ниже, чтобы сделать само объявление.

#define LED_PIN 7 // Устанавливаем нашу светодиодную ленту на контакт 7
#define LED_COUNT 60 // Устанавливает количество светодиодов NeoPixel
Лента Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Объявляем наш объект светодиодной ленты

RTC проще объявить, и вам нужно только использовать строку ниже, чтобы запустить его; все важные настройки применяются по умолчанию.

RTC_DS3231 ртк;

Как только это будет завершено, нам просто нужно инициализировать наш RTC, используя следующий код в нашем классе установки.

 Serial.begin (57600); //Начинаем наше последовательное соединение

#ifndef ESP8266
пока (!Серийный); // Ожидаем подключения последовательного порта
#endif

если (! rtc.begin()) {
Serial.println("Не удалось найти RTC");
Серийный.flush();
в то время как (1) задержка (10);
} //Это тест, чтобы убедиться, что наш RTC подключен

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

Теперь пришло время построить основной контур для светодиодных лент вашего аквариума. Это обрабатывается в основном цикле, который поставляется с вашим пустым проектом Arduino, и это означает, что он будет работать непрерывно.

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

 DateTime сейчас = rtc.now(); // Собирает текущее время
int чч = сейчас.час(); // Применяет текущий наш к переменной

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

Если эти условия соблюдены, код в пределах если оператор устанавливает яркость и цвет наших светодиодных лент в глобальные переменные, которые мы установили ранее, вместе с использованием показывать команда для обновления светодиодной ленты. Если условия не выполняются, еще оператор используется для установки яркости светодиодов на 0, эффективно отключая их в ночное время.

 полоса.начало(); // Включаем светодиодную ленту
стриптиз.шоу(); //Показывает изменения светодиода в каждом цикле

if (hh <= 8) { //Если время равно или меньше 8:00, светодиодная полоса очищается
полоса.очистить();
}
if ((hh > 8) && (hh < 21)) { //Если время между 9:00 и 21:00, светодиоды включаются
strip.setBrightness (255);
strip.fill (желто-белый, 0, 59);
}

if (hh >= 21) { //Если время равно или превышает 9 вечера, светодиодная полоса очищается
полоса.очистить();
}

Полный код

#include //библиотека светодиодных лент
#включать
#include //Библиотека RTC
#define LED_PIN 7 // Устанавливаем нашу светодиодную ленту на контакт 7
#define LED_COUNT 60 // Устанавливает количество светодиодов NeoPixel
Лента Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Объявляем наш объект светодиодной ленты
uint32_t yellowWhite = полоса. Цвет (255, 251, 201); // Создает переменную цвета света
RTC_DS3231 ртк; // Объявляем наш объект RTC
недействительная установка () {
Serial.begin (57600); //Начинаем наше последовательное соединение
#ifndef ESP8266
пока (!Серийный); // Ожидаем подключения последовательного порта
#endif
если (! rtc.begin()) {
Serial.println("Не удалось найти RTC");
Серийный.flush();
в то время как (1) задержка (10);
} //Это тест, чтобы убедиться, что наш RTC подключен
}
недействительный цикл () {
DateTime сейчас = rtc.now(); // Собирает текущее время
int чч = сейчас.час(); // Применяет текущий наш к переменной
полоса.начало(); // Включаем светодиодную ленту
стриптиз.шоу(); //Показывает изменения светодиода в каждом цикле
if (hh <= 8) { //Если время равно или меньше 8:00, светодиодная полоса очищается
полоса.очистить();
}
if ((hh > 8) && (hh < 21)) { //Если время между 9:00 и 21:00, светодиоды включаются
strip.setBrightness (255);
strip.fill (желто-белый, 0, 59);
}
if (hh >= 21) { //Если время равно или превышает 9 вечера, светодиодная полоса очищается
полоса.очистить();
}
задержка (1000); //Задержка для стабильности
}

Установка светодиодного освещения для аквариума

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

Аквариумные светильники на Arduino своими руками

Аквариумные растения и рыбы получают пользу от регулярного цикла освещения. Хотя наш свет не имеет полного спектра, он по-прежнему обеспечивает большую часть синего, зеленого и красного света, которые нужны вашим растениям. Что лучше всего, так это то, что этот проект невероятно доступен, прост и интересен.

Лучшие аксессуары для умных аквариумов

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

Читать дальше

ДелитьсяТвитнутьЭл. адрес
Похожие темы
  • сделай сам
  • Ардуино
  • Светодиодные светильники
  • Умный дом
Об авторе
Сэмюэл Л. Гарбетт (опубликовано 33 статьи)

Сэмюэл — британский писатель, который обожает все, что можно сделать своими руками. Начав бизнес в области веб-разработки и 3D-печати, а также много лет работая писателем, Сэмюэл предлагает уникальное понимание мира технологий. Сосредоточившись в основном на технических проектах DIY, он любит делиться забавными и захватывающими идеями, которые вы можете попробовать дома. Вне работы Сэмюэля обычно можно встретить на велосипеде, за компьютерными видеоиграми или отчаянно пытающимся общаться со своим домашним крабом.

Другие работы Сэмюэля Л. Гарбетт

Подписывайтесь на нашу новостную рассылку

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

Нажмите здесь, чтобы подписаться