Аквариумните растения се нуждаят от светлина, за да създават енергия чрез фотосинтеза, докато много риби се възползват от редовното светлинен цикъл, но как можете да им осигурите изкуствено осветление с електронните инструменти "Направи си сам" вече имам? Нека изградим система за осветление за аквариум „Направи си сам“, използвайки Arduino, часовник в реално време и LED лента.

Използване на LED аквариумна светлина

Преди да започнем, си струва да отбележим, че светодиодите, които използваме в този проект, не са светодиоди с пълен спектър, които имитират дневна светлина. Това означава, че те не осигуряват всички дължини на светлинните вълни, които са полезни за растенията, което ги прави неподходящи за аквариумни растения с големи нужди от светлина и губене на малко количество енергия, произведена от светодиоди.

Въпреки това, за засадени аквариуми с ниска светлина, LED осветлението като това може да бъде отлично избор, който предлага по-бърз и по-здравословен растеж на растенията без разходите, които идват с много аквариумно осветление продукти; просто няма да получите същата мощност.

instagram viewer

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

За да създадете LED осветителна система, която захранва цикъл ден-нощ за рибите и растенията във вашия аквариум, ще използваме Arduino, часовник в реално време (RTC) и LED лента - както може да се използва за голямо разнообразие на Проекти за LED осветление на Arduino.

Какво ти е необходимо?

Имате нужда само от шепа части, за да завършите тази конструкция:

  • 1x Микроконтролер Arduino с щифтове SDA/SCL (Uno, Leonardo, Micro и др.; ние използваме Pro Micro)
  • 1x DS3231 RTC модул
  • 1x WS2812/WS2812B NeoPixel RGB LED лента с IP65 или по-висок рейтинг (използваме 60 LED 1-метрова WS2812 лента, която е запечатана със силиций; може да се възползвате от използването на повече светодиоди, ако имате резервоар от 20+ галона)
  • 1x 12v AC към DC захранващ адаптер с женски конектор
  • 1x 1000uF кондензатор (по избор)
  • Разнообразни проводници и термосвиваеми парчета
  • Суперлепило/двустранно тиксо
  • нишка за 3D принтер (по избор)

Ще ви трябват и някои инструменти, за да завършите този проект.

  • Поялник
  • Резачи/пречистващи тел
  • Топлинен пистолет
  • 3D принтер (по избор)

Окабеляване на вашата DIY LED лампа за аквариум

Свързването на вашето „Направи си сам“ аквариумно осветление е лесно, само с няколко връзки, които трябва да направите, преди да можете да започнете с кодирането на вашия проект. Диаграмата по-горе показва всички връзки, които трябва да направите, но ние разбихме това в секциите по-долу.

Окабеляване на часовника за реално време

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

  • SCL до 3 на Arduino
  • SDA до 2 на Arduino
  • VCC до 5V на Arduino
  • GND към GND на Arduino

Окабеляване на LED лентата

Окабеляването на вашата LED лента е по-сложно от RTC, тъй като светодиодите вероятно ще бъдат на известно разстояние от Arduino и трябва да използвате отделен захранващ адаптер за да получите пълната яркост от вашите светодиоди. Диаграмата по-горе показва как можете да свържете вашата LED NeoPixel лента към вашия Arduino и източник на захранване за най-доброто резултати.

  • DIN към цифров пин 7 на Arduino
  • GND към GND на Arduino и отрицателен (-) терминал за източник на захранване
  • VCC/5V+/12V към положителна (+) клема за източник на захранване
  • Силно препоръчително е да използвате 1000uF кондензатор през отрицателните (-) и положителните (+) клеми на източника на захранване, за да предотвратите повреда на вашите светодиоди

Наред с свързването на нашата LED лента към нашия Arduino и 12V източник на захранване, ние също ще модифицираме нашата Клониране на NeoPixel за създаване на три по-малки LED ленти, които ще бъдат свързани във верига с дълъг кабел. За това ще използваме изолиран трижилен кабел, заедно с термосвиване за запечатване на фугите. Нашата LED лента се предлага с JST конектори на всеки край, което ни предоставя удобен начин да направим възможно отделянето на лентата от нашия Arduino.

Кодиране на вашите DIY Arduino Aquarium NeoPixel светлини

Елементът за кодиране на този проект е по-сложен от окабеляването. Можете да започнете с основен празен проект на Arduino, тъй като няма да имаме нужда от нищо извън функциите, които идват с него.

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

Преди да добавим код, трябва да инсталираме някои библиотеки и всички те могат да бъдат намерени в Arduino IDE Library Manager.

  • Wire.h: Тази библиотека идва с Arduino IDE и ви позволява да общувате с I2C компоненти, като нашия RTC.
  • Adafruit_NeoPixel.h: Тази библиотека добавя функции/класове за управление на светодиодите NeoPixel, но работи също толкова добре с нашата обикновена LED лента WS2812.
  • RTClib.h: Тази библиотека ни позволява да контролираме нашия DS3231 RTC модул.
#включи  // Библиотека за LED лента
#включи
#включи // Библиотека RTC

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

Добавихме глобални променливи към нашия код, за да можем да променим поведението на нашето осветление с бутони и други входове в бъдещи проекти. Това не е от съществено значение, но ще улесни редактирането на кода ви, когато трябва да направите промени. Добавихме променливи за яркост и нюанс на LED, заедно с променлива за съхраняване на цвета на нашата LED лента.

Деклариране и инициализиране на LED лента/RTC обекти

След това трябва да декларираме нашата LED лента и RTC като обекти, които могат да бъдат използвани от нашия Arduino, последвано от инициализирането им в нашия цикъл за настройка.

Нашите LED ленти могат да бъдат декларирани, като първо дефинирате използвания щифт и зададете броя на светодиодите на лентата, но след това можете да използвате редовете по-долу, за да направите самата декларация.

#define LED_PIN 7 // Настройва нашата LED лента на щифт 7
#define LED_COUNT 60 // Задава броя на светодиодите NeoPixel
Adafruit_NeoPixel лента (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Декларира нашия обект с LED лента

RTC е по-лесен за деклариране и трябва само да използвате реда по-долу, за да го стартирате; всички важни настройки се прилагат по подразбиране.

RTC_DS3231 rtc;

След като това приключи, просто трябва да инициализираме нашия RTC, използвайки следния код в нашия клас за настройка.

 Serial.begin (57600); // Започва нашата серийна връзка

#ifndef ESP8266
while (!Serial); // Изчакайте серийния порт да се свърже
#endif

ако (! rtc.begin()) {
Serial.println("Не можах да намеря RTC");
Serial.flush();
докато (1) забавяне (10);
} //Това тества, за да се уверим, че нашият RTC е свързан

Изграждане на цикъла на таймера

Сега е време да изградите основния контур за вашия аквариум LED ленти. Това се обработва в рамките на главния цикъл, който дойде с вашия празен проект Arduino и това означава, че той ще работи непрекъснато.

Започваме цикъла, като проверяваме текущото време с нашия часовник в реално време и задаваме променлива, която да го съхранява, като гарантираме, че дневната светлина е осигурена през деня. След като имаме a Време за среща променлива, с която да играем, можем да присвоим текущия час и минута на отделни променливи, което ни позволява да контролираме осветлението си с голяма точност.

 Дата и час сега = rtc.now(); // Събира текущото време
int hh = сега.час(); // Прилага текущата наша към променлива

След това използвахме серия от ако изявления, за да определим дали да включим светлините си. Тези ако изявленията проверяват дали текущият час е равен или повече от 9 сутринта и равен или по-малък от 21 вечерта, което ни дава прозорец от 9 до 21 часа, за да включим нашите LED светлини.

Ако тези условия са изпълнени, кодирайте в ако оператор задава яркостта и цвета на нашите LED ленти към глобалните променливи, които сме задали по-рано, заедно с използването на a шоу команда за актуализиране на LED лентата. Ако условията не са изпълнени, ан друго операторът се използва за задаване на яркостта на светодиодите на 0, като ефективно ги изключва през нощта.

 strip.begin(); //Включва LED лентата
strip.show(); //Показва промените на светодиода от всеки цикъл

if (hh <= 8) { //Ако времето е равно или по-малко от 8 сутринта, LED лентата се изчиства
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Ако времето е между 9 сутринта и 21 вечерта, светодиодите се включват
strip.setBrightness (255);
лента.запълване (жълтоБяло, 0, 59);
}

if (hh >= 21) { //Ако времето е равно или по-голямо от 21:00, LED лентата се изчиства
strip.clear();
}

Пълният код

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

Поставяне на вашето LED осветление за аквариум

Нашата LED лента се доставя с прикрепена удобна залепваща лента, което прави невероятно лесно прикрепването й към качулката/капака на нашия резервоар. Същият резултат може да се постигне с двустранна лента или суперлепило, но трябва да внимавате, за да сте сигурни, че избраното от вас лепило ще може да издържи натрупването на конденз. Можете също така да отпечатате 3D стойка за вашата нова аквариумна светлина, ако резервоарът ви няма капак и калъф за другите компоненти, които сте използвали.

Направи си сам Arduino аквариумни светлини

Аквариумните растения и риби се възползват от редовен цикъл на осветление. Въпреки че нашата светлина не е с пълен спектър, тя все още осигурява голяма част от синята, зелената и червената светлина, от които се нуждаят вашите растения. Най-доброто обаче е, че този проект е невероятно достъпен, прост и забавен за поемане.

Най-добрите аксесоари за интелигентни аквариумни резервоари

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

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Направи си сам
  • Arduino
  • LED светлини
  • Умен дом
За автора
Самюел Л. Гарбет (33 публикувани статии)

Самуел е базиран в Обединеното кралство технологичен писател със страст към всичко, което си направи сам. След като стартира бизнес в областта на уеб разработката и 3D печата, заедно с работата си като писател в продължение на много години, Самуел предлага уникален поглед към света на технологиите. Фокусирайки се главно върху технологични проекти „Направи си сам“, той не обича нищо повече от споделянето на забавни и вълнуващи идеи, които можете да опитате у дома. Извън работа Самуел обикновено може да бъде намерен да кара колоездене, да играе компютърни видеоигри или отчаяно да се опитва да общува със своя домашен рак.

Още от Samuel L. Гарбет

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате