Akvarieplanter har brug for lys for at skabe energi via fotosyntese, mens mange fisk har godt af en almindelig lyscyklus, men hvordan kan du give kunstig belysning til dem med de DIY-elektronikværktøjer, du allerede har? Lad os bygge et DIY akvariebelysningssystem ved hjælp af et Arduino, realtidsur og LED-strimmel.
Brug af et LED akvarielys
Før vi går i gang, er det værd at bemærke, at de LED'er, vi bruger i dette projekt, ikke er fuldspektrede LED'er, der efterligner dagslys. Det betyder, at de ikke giver alle de lysbølgelængder, der er gavnlige for planter, hvilket gør dem uegnet til akvarieplanter med store lysbehov og spilder en lille del af den energi, der produceres af LED'er.
Når det er sagt, for plantede akvarier med lave lyskrav kan LED-belysning som denne være en fremragende valg, der giver hurtigere og sundere plantevækst uden de omkostninger, der følger med mange akvariebelysning Produkter; du får bare ikke den samme watt.
Det er ikke kun planterne i dit akvarium, der nyder godt af LED-belysning: mange fiskearter nyder en regelmæssig lyscyklus, som imiterer dag og nat for at bevare deres døgnrytme, så de kan hvile, lede efter mad og være aktive, som de ville være i det vilde.
At bygge et LED-belysningssystem, der driver en dag-nat-cyklus for fiskene og planterne i dit akvarium, vi vil bruge en Arduino, et realtidsur (RTC) og en LED-strimmel - som kan bruges til en bred vifte af Arduino LED-belysningsprojekter.
Hvad har du brug for?
Du behøver kun en håndfuld dele for at fuldføre denne build:
- 1x Arduino mikrocontroller med SDA/SCL-stifter (Uno, Leonardo, Micro osv.; vi bruger en Pro Micro)
- 1x DS3231 RTC-modul
- 1x WS2812/WS2812B NeoPixel RGB LED-strimmel med IP65-klassificering eller højere (vi bruger en 60 LED 1-meter WS2812-strimmel, der er blevet forseglet med silicium; du kan drage fordel af at bruge flere lysdioder, hvis du har en 20+ gallon tank)
- 1x 12v AC til DC strømadapter med hun-tøndestik
- 1x 1000uF kondensator (valgfrit)
- Assorterede ledninger og varmekrympestykker
- Superlim/dobbeltklæbende tape
- 3D printer filament (valgfrit)
Du skal også bruge nogle værktøjer til at fuldføre dette projekt.
- En loddekolbe
- Trådskærere/strippere
- En varmepistol
- En 3D-printer (valgfri)
Tilslutning af din DIY Aquarium LED Light Setup
Det er nemt at tilslutte din gør-det-selv-akvariebelysning, med nogle få forbindelser, du skal lave, før du kan komme i gang med at kode dit projekt. Diagrammet ovenfor viser alle de forbindelser, du skal lave, men vi har opdelt dette i sektionerne nedenfor.
Tilslutning af realtidsuret
DS3231 RTC i dette projekt fungerer som en timer for LED-belysningen i vores akvarium. Dette modul har fire ben, som vi vil bruge: SCL, SDA, VCC og GND, som alle kan kobles direkte til vores Arduino Pro Micro.
- SCL til 3 på Arduino
- SDA til 2 på Arduino
- VCC til 5V på Arduino
- GND til GND på Arduino
Ledning af LED-strimlen
Ledning af din LED-strimmel er mere kompliceret end RTC, da LED'erne sandsynligvis vil være et stykke fra Arduino, og du skal bruge en separat strømadapter for at få den fulde lysstyrke fra dine LED'er. Diagrammet ovenfor viser, hvordan du kan forbinde din LED NeoPixel-strip til din Arduino og strømkilde for det bedste resultater.
- DIN til Digital Pin 7 på Arduino
- GND til GND på Arduino og negativ (-) strømkildeterminal
- VCC/5V+/12V til positiv (+) strømkildeterminal
- Det anbefales stærkt, at du bruger en 1000uF kondensator på tværs af de negative (-) og positive (+) strømkildeterminaler for at forhindre beskadigelse af dine LED'er
Udover at forbinde vores LED-strimmel til vores Arduino og 12V strømkilde, vil vi også ændre vores NeoPixel klon for at skabe tre mindre LED-strips, der bliver forbundet i en kæde med et langt kabel. Vi vil bruge et isoleret triple-core kabel til dette sammen med varmekrympning til at forsegle samlingerne. Vores LED-strimmel kom med JST-stik i hver ende, hvilket giver os en bekvem måde at gøre det muligt at afmontere strimlen fra vores Arduino.
Kodning af dine DIY Arduino Aquarium NeoPixel Lights
Kodningselementet i dette projekt er mere kompliceret end ledningerne. Du kan starte med et grundlæggende tomt Arduino-projekt, da vi ikke skal bruge noget udover de funktioner, der følger med.
Tilføjelse af bibliotekerne
Før vi tilføjer nogen kode, skal vi installere nogle biblioteker, og alle disse kan findes i Arduino IDE Library Manager.
- Wire.h: Dette bibliotek kommer med Arduino IDE og giver dig mulighed for at kommunikere med I2C-komponenter, som vores RTC.
- Adafruit_NeoPixel.h: Dette bibliotek tilføjer funktioner/klasser til at styre NeoPixel LED'er, men det fungerer lige så godt med vores almindelige WS2812 LED strip.
- RTClib.h: Dette bibliotek gør det muligt for os at styre vores DS3231 RTC-modul.
#omfatte //LED Strip bibliotek
#omfatte
#omfatte //RTC bibliotek
Tilføjelse af globale variabler (valgfrit)
Vi har tilføjet globale variabler til vores kode, så vi kan ændre adfærden af vores belysning med knapper og andre input i fremtidige projekter. Dette er ikke vigtigt, men det vil gøre det nemmere at redigere din kode, når du skal foretage ændringer. Vi tilføjede variabler for LED-lysstyrke og farvetone sammen med en variabel til at gemme farven på vores LED-strimmel.
Erklæring og initialisering af LED Strip/RTC-objekter
Dernæst skal vi erklære vores LED-strimmel og RTC som objekter, der kan bruges af vores Arduino, efterfulgt af initialisering af dem i vores opsætningsløkke.
Vores LED-strips kan deklareres ved først at definere den pin, der bruges, og indstille antallet af LED'er på strimlen, men derefter kan du bruge linjerne nedenfor til at lave selve erklæringen.
#define LED_PIN 7 // Indstiller vores LED-strimmel til pin 7
#define LED_COUNT 60 // Indstiller NeoPixel LED-antallet
Adafruit_NeoPixel strimmel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Erklærer vores LED strip objekt
RTC er nemmere at deklarere, og du behøver kun at bruge linjen nedenfor for at få det til at køre; alle vigtige indstillinger anvendes som standard.
RTC_DS3231 rtc;
Når dette er fuldført, skal vi blot initialisere vores RTC ved hjælp af følgende kode i vores opsætningsklasse.
Serial.begin (57600); //Begynder vores seriel forbindelse
#ifndef ESP8266
mens (!Serial); // Vent på, at seriel port tilsluttes
#Afslut Hvis
hvis (! rtc.begin()) {
Serial.println("Kunne ikke finde RTC");
Serial.flush();
mens (1) forsinkelse (10);
} //Dette tester for at sikre, at vores RTC er forbundet
Opbygning af timersløjfen
Nu er det tid til at bygge hovedsløjfen til dine akvarie LED-strips. Dette håndteres i hovedsløjfen, der fulgte med dit tomme Arduino-projekt, og det betyder, at det vil køre kontinuerligt.
Vi begynder løkken med at tjekke det aktuelle klokkeslæt med vores realtidsur og indstille en variabel til at gemme det, så vi sikrer, at der er dagslys i løbet af dagen. Når vi har en Dato tid variabel at lege med, kan vi tildele den aktuelle time og minut til separate variabler, hvilket gør os i stand til at styre vores belysning med stor præcision.
DatoTid nu = rtc.now(); //Samler den aktuelle tid
int hh = nu.time(); //Anvender den aktuelle our til en variabel
Efter dette brugte vi en række hvis erklæringer for at afgøre, om vi skal tænde vores lys. Disse hvis erklæringer kontrollere for at se, om den aktuelle time er lig med eller mere end 9 AM og lig med eller mindre end 9 PM, hvilket giver os et vindue på 9 AM til 9 PM til at have vores LED-lys tændt.
Hvis disse betingelser er opfyldt, skal du kode inden for hvis statement indstiller lysstyrken og farven på vores LED-strimler til de globale variabler, vi indstillede tidligere, sammen med at bruge en at vise kommando for at opdatere LED-strimlen. Hvis betingelserne ikke er opfyldt, skal en andet statement bruges til at indstille lysstyrken på LED'erne til 0, hvilket effektivt slukker dem om natten.
strip.begin(); //Tænder LED-strimlen
strip.show(); //Viser LED-ændringerne fra hver sløjfeif (hh <= 8) { //Hvis tiden er lig med eller mindre end 8AM, ryddes LED-strimlen
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Hvis tiden er mellem 9 AM og 9PM, tændes LED'erne
strip.setLysstyrke (255);
strip.fill (gulHvid, 0, 59);
}
if (hh >= 21) { //Hvis tiden er lig med eller større end 21:00, ryddes LED-strimlen
strip.clear();
}
Den fulde kode
#include //LED Strip-bibliotek
#omfatte
#include //RTC bibliotek
#define LED_PIN 7 // Indstiller vores LED-strimmel til pin 7
#define LED_COUNT 60 // Indstiller NeoPixel LED-antallet
Adafruit_NeoPixel strimmel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Erklærer vores LED strip objekt
uint32_t yellowWhite = strimmel. Farve (255, 251, 201); //Opretter en lys farvevariabel
RTC_DS3231 rtc; //Erklærer vores RTC-objekt
void setup() {
Serial.begin (57600); //Begynder vores seriel forbindelse
#ifndef ESP8266
mens (!Serial); // Vent på, at seriel port tilsluttes
#Afslut Hvis
hvis (! rtc.begin()) {
Serial.println("Kunne ikke finde RTC");
Serial.flush();
mens (1) forsinkelse (10);
} //Dette tester for at sikre, at vores RTC er forbundet
}
void loop() {
DatoTid nu = rtc.now(); //Samler den aktuelle tid
int hh = nu.time(); //Anvender den aktuelle our til en variabel
strip.begin(); //Tænder LED-strimlen
strip.show(); //Viser LED-ændringerne fra hver sløjfe
if (hh <= 8) { //Hvis tiden er lig med eller mindre end 8AM, ryddes LED-strimlen
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Hvis tiden er mellem 9 AM og 9PM, tændes LED'erne
strip.setLysstyrke (255);
strip.fill (gulHvid, 0, 59);
}
if (hh >= 21) { //Hvis tiden er lig med eller større end 21:00, ryddes LED-strimlen
strip.clear();
}
forsinkelse (1000); //Forsinkelse for stabilitet
}
Montering af din LED akvariebelysning
Vores LED-strimmel kom med en praktisk klæbestrimmel påsat, hvilket gør det utrolig nemt at fastgøre det til hætten/låget på vores tank. Det samme resultat kan opnås med dobbeltklæbende tape eller superlim, men du skal være omhyggelig med at sikre, at den klæber, du vælger, vil kunne overleve kondensdannelse. Du kan også 3D-printe et stativ til dit nye akvarielys, hvis din tank ikke har et låg, og et etui til de andre komponenter, du har brugt.
DIY Arduino Aquarium Lights
Akvarieplanter og fisk nyder godt af en regelmæssig belysningscyklus. Selvom vores lys ikke er fuldspektret, giver det stadig meget af det blå lys, grønne lys og røde lys, som dine planter har brug for. Det bedste er dog, at dette projekt er utroligt overkommeligt, enkelt og sjovt at tage fat på.
Automatiser dit akvarium ved at investere i smart tilbehør, der reducerer behovet for manuel indgriben og holder dine fisk sunde og glade.
Læs Næste
- gør det selv
- Arduino
- LED lys
- Smart hjem
Samuel er en britisk-baseret teknologiskribent med en passion for alt, hvad der gør-det-selv. Efter at have startet virksomheder inden for webudvikling og 3D-print, sammen med arbejdet som forfatter i mange år, tilbyder Samuel et unikt indblik i teknologiens verden. Han fokuserer hovedsageligt på DIY tech-projekter og elsker intet mere end at dele sjove og spændende ideer, som du kan prøve derhjemme. Uden for arbejdet kan Samuel normalt findes cyklende, spille pc-videospil eller desperat forsøge at kommunikere med sin kæledyrskrabbe.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere