Rośliny akwariowe potrzebują światła do wytwarzania energii w procesie fotosyntezy, podczas gdy wiele ryb korzysta z regularnego cykl świetlny, ale jak możesz zapewnić im sztuczne oświetlenie za pomocą narzędzi elektronicznych do majsterkowania, które już masz? mieć? Zbudujmy system oświetlenia akwarium DIY za pomocą Arduino, zegara czasu rzeczywistego i taśmy LED.
Korzystanie z oświetlenia akwarium LED
Zanim zaczniemy, warto zauważyć, że diody, których używamy w tym projekcie, nie są diodami o pełnym spektrum, które naśladują światło dzienne. Oznacza to, że nie zapewniają one wszystkich długości fal światła, które są korzystne dla roślin, co sprawia, że nieodpowiednie dla roślin akwariowych o dużych potrzebach świetlnych i marnujących niewielką ilość wytwarzanej przez nie energii Diody LED.
To powiedziawszy, w przypadku akwariów roślinnych o niskich wymaganiach oświetleniowych takie oświetlenie LED może być doskonałe wybór, który zapewnia szybszy i zdrowszy wzrost roślin bez kosztów związanych z oświetleniem wielu akwarium produkty; po prostu nie dostaniesz tej samej mocy.
Nie tylko rośliny w akwarium korzystają na oświetleniu LED: wiele gatunków ryb cieszy się regularnym cyklem świetlnym, który naśladuje dzień i noc, aby zachować rytm dobowy, umożliwiając im odpoczynek, poszukiwanie pożywienia i aktywność tak, jak w dziki.
Aby zbudować system oświetlenia LED, który zasila cykl dnia i nocy dla ryb i roślin w akwarium, będziemy używać Arduino, zegara czasu rzeczywistego (RTC) i paska LED — które mogą być używane do szerokiej gamy z Projekty oświetlenia LED Arduino.
Czego potrzebujesz?
Do skompletowania tej wersji potrzebujesz tylko kilku części:
- 1x Mikrokontroler Arduino z pinami SDA/SCL (Uno, Leonardo, Micro itp.; używamy Pro Micro)
- 1x moduł RTC DS3231
- 1x taśma LED NeoPixel RGB WS2812/WS2812B o stopniu ochrony IP65 lub wyższym (używamy taśmy 60 LED o długości 1 metra WS2812, która została uszczelniona silikonem; możesz skorzystać z użycia większej liczby diod LED, jeśli masz zbiornik o pojemności ponad 20 galonów)
- 1x zasilacz 12 V AC na DC z żeńskim złączem beczki
- 1x kondensator 1000uF (opcjonalnie)
- Różne przewody i kawałki termokurczliwe
- Superglue/taśma dwustronna
- Filament do drukarki 3D (opcjonalnie)
Do ukończenia tego projektu potrzebne będą również narzędzia.
- Lutownica
- Przecinaki do drutu / narzędzia do ściągania izolacji
- Opalarka
- Drukarka 3D (opcja)
Okablowanie DIY Konfiguracja oświetlenia LED w akwarium
Okablowanie oświetlenia akwarium DIY jest proste, wystarczy wykonać kilka połączeń, zanim zaczniesz kodować swój projekt. Powyższy schemat pokazuje wszystkie połączenia, które musisz wykonać, ale podzieliliśmy je w poniższych sekcjach.
Podłączanie zegara czasu rzeczywistego
DS3231 RTC w tym projekcie pełni funkcję timera dla oświetlenia LED w naszym akwarium. Ten moduł ma cztery piny, których będziemy używać: SCL, SDA, VCC i GND, z których wszystkie można bezpośrednio podłączyć do naszego Arduino Pro Micro.
- SCL do 3 na Arduino
- SDA do 2 na Arduino
- VCC do 5V na Arduino
- GND do GND na Arduino
Okablowanie taśmy LED
Okablowanie paska LED jest bardziej skomplikowane niż RTC, ponieważ diody LED mogą znajdować się w pewnej odległości od Arduino i trzeba użyć osobnego zasilacza aby uzyskać pełną jasność z twoich diod LED. Powyższy schemat pokazuje, jak najlepiej podłączyć pasek LED NeoPixel do Arduino i źródła zasilania wyniki.
- DIN do cyfrowego pinu 7 w Arduino
- GND do GND na Arduino i ujemnym (-) terminalu źródła zasilania
- VCC/5V+/12V do dodatniego (+) zacisku źródła zasilania
- Zdecydowanie zaleca się użycie kondensatora 1000uF na ujemnych (-) i dodatnich (+) zaciskach źródła zasilania, aby zapobiec uszkodzeniu diod LED
Oprócz podłączenia naszej taśmy LED do naszego Arduino i źródła zasilania 12 V, będziemy również modyfikować nasze Klon NeoPixel do stworzenia trzech mniejszych taśm LED, które zostaną połączone w łańcuch długim kablem. Do tego celu użyjemy izolowanego kabla trójżyłowego, a także termokurczliwego uszczelnienia połączeń. Nasza taśma LED została wyposażona w złącza JST na każdym końcu, co daje nam wygodny sposób na odłączenie taśmy od naszego Arduino.
Kodowanie DIY Arduino Aquarium NeoPixel Lights
Element kodujący tego projektu jest bardziej skomplikowany niż okablowanie. Możesz zacząć od podstawowego pustego projektu Arduino, ponieważ nie będziemy potrzebować niczego poza funkcjami, które są z nim związane.
Dodawanie bibliotek
Przed dodaniem jakiegokolwiek kodu musimy zainstalować kilka bibliotek, a wszystkie z nich można znaleźć w Arduino IDE Library Manager.
- Drut.h: Ta biblioteka jest dostarczana z Arduino IDE i umożliwia komunikację z komponentami I2C, takimi jak nasz RTC.
- Adafruit_NeoPixel.h: Ta biblioteka dodaje funkcje/klasy do sterowania diodami LED NeoPixel, ale działa równie dobrze z naszą zwykłą taśmą LED WS2812.
- RTClib.h: Ta biblioteka umożliwia nam sterowanie naszym modułem DS3231 RTC.
#zawierać //Biblioteka taśm LED
#zawierać
#zawierać //Biblioteka RTC
Dodawanie zmiennych globalnych (opcjonalnie)
Do naszego kodu dodaliśmy zmienne globalne, dzięki czemu możemy zmieniać zachowanie naszego oświetlenia za pomocą przycisków i innych danych wejściowych w przyszłych projektach. Nie jest to konieczne, ale ułatwi edycję kodu, gdy będziesz musiał wprowadzić zmiany. Dodaliśmy zmienne jasności i odcienia LED, a także zmienną do przechowywania koloru naszej taśmy LED.
Deklarowanie i inicjowanie taśmy LED/obiektów RTC
Następnie musimy zadeklarować naszą taśmę LED i RTC jako obiekty, które mogą być używane przez nasze Arduino, a następnie zainicjować je w naszej pętli konfiguracji.
Nasze taśmy LED można zadeklarować poprzez zdefiniowanie używanego pinu i ustawienie ilości diod LED na pasku, ale następnie za pomocą poniższych wierszy można dokonać samej deklaracji.
#define LED_PIN 7 // Ustawia nasz pasek LED na pin 7
#define LED_COUNT 60 // Ustawia liczbę diod LED NeoPixel
Pasek Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Deklaruje nasz obiekt taśmy LED
RTC jest łatwiejszy do zadeklarowania i wystarczy użyć poniższej linii, aby uruchomić; wszystkie ważne ustawienia są stosowane domyślnie.
RTC_DS3231 RTC;
Gdy to się zakończy, wystarczy zainicjować nasz RTC za pomocą następującego kodu w naszej klasie konfiguracyjnej.
Serial.początek (57600); //Rozpoczyna nasze połączenie szeregowe
#ifndef ESP8266
podczas (!Serial); // Poczekaj na połączenie portu szeregowego
#endif
Jeśli (! rtc.początek()) {
Serial.println("Nie można znaleźć czasu RTC");
Serial.flush();
podczas gdy (1) opóźnienie (10);
} //Ten test, aby upewnić się, że nasz RTC jest podłączony
Budowanie pętli czasowej
Teraz nadszedł czas na zbudowanie głównej pętli do pasków LED do akwarium. Jest to obsługiwane w głównej pętli dostarczonej z pustym projektem Arduino, a to oznacza, że będzie działać w sposób ciągły.
Pętlę rozpoczynamy od sprawdzenia aktualnego czasu za pomocą naszego zegara czasu rzeczywistego i ustawienia zmiennej do jej przechowywania, zapewniając, że światło dzienne jest zapewnione w ciągu dnia. Kiedy już mamy Data i godzina zmienną do zabawy, możemy przypisać bieżącą godzinę i minutę do osobnych zmiennych, dzięki czemu możemy sterować naszym oświetleniem z dużą precyzją.
DataCzas teraz = rtc.now(); //Zbiera aktualny czas
int hh = teraz.godzina(); //Zastosuje bieżące nasze do zmiennej
Następnie zastosowaliśmy serię Jeśli oświadczenia w celu ustalenia, czy włączyć nasze światła. Te Jeśli wyciągi sprawdzają, czy bieżąca godzina jest równa lub większa niż 9 rano i równa lub mniejsza niż 21, co daje nam okno od 9 do 21, aby nasze światła LED były włączone.
Jeśli te warunki są spełnione, kod w obrębie Jeśli Instrukcja ustawia jasność i kolor naszych taśm LED na zmienne globalne, które ustawiliśmy wcześniej, wraz z użyciem a pokazać polecenie aktualizacji paska LED. Jeśli warunki nie są spełnione, a w przeciwnym razie Instrukcja służy do ustawienia jasności diod LED na 0, skutecznie je wyłączając w nocy.
strip.początek(); //Włącza pasek LED
strip.show(); //Pokazuje zmiany diod LED z każdej pętliif (hh <= 8) { //Jeśli czas jest równy lub mniejszy niż 8 rano, pasek LED jest czyszczony
pasek.wyczyść();
}
if ((hh > 8) && (hh < 21)) { //Jeśli czas jest między 9 a 21, diody zapalają się
strip.setJasność (255);
strip.fill (żółtobiały, 0, 59);
}
if (hh >= 21) { //Jeśli czas jest równy lub większy niż 21:00, pasek LED jest czyszczony
pasek.wyczyść();
}
Pełny kod
#zawiera //bibliotekę taśm LED
#zawierać
#include //Biblioteka RTC
#define LED_PIN 7 // Ustawia nasz pasek LED na pin 7
#define LED_COUNT 60 // Ustawia liczbę diod LED NeoPixel
Pasek Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Deklaruje nasz obiekt taśmy LED
uint32_t żółtyBiały = pasek. Kolor (255, 251, 201); //Tworzy zmienną koloru jasnego
RTC_DS3231 RTC; //Deklaruje nasz obiekt RTC
pusta konfiguracja () {
Serial.początek (57600); //Rozpoczyna nasze połączenie szeregowe
#ifndef ESP8266
podczas (!Serial); // Poczekaj na połączenie portu szeregowego
#endif
Jeśli (! rtc.początek()) {
Serial.println("Nie można znaleźć czasu RTC");
Serial.flush();
podczas gdy (1) opóźnienie (10);
} //Ten test, aby upewnić się, że nasz RTC jest podłączony
}
pusta pętla () {
DataCzas teraz = rtc.now(); //Zbiera aktualny czas
int hh = teraz.godzina(); //Zastosuje bieżące nasze do zmiennej
strip.początek(); //Włącza pasek LED
strip.show(); //Pokazuje zmiany diod LED z każdej pętli
if (hh <= 8) { //Jeśli czas jest równy lub mniejszy niż 8 rano, pasek LED jest czyszczony
pasek.wyczyść();
}
if ((hh > 8) && (hh < 21)) { //Jeśli czas jest między 9 a 21, diody zapalają się
strip.setJasność (255);
strip.fill (żółtobiały, 0, 59);
}
if (hh >= 21) { //Jeśli czas jest równy lub większy niż 21:00, pasek LED jest czyszczony
pasek.wyczyść();
}
opóźnienie (1000); //Opóźnienie dla stabilności
}
Dopasowanie oświetlenia LED do akwarium
Do naszej taśmy LED dołączono poręczną taśmę samoprzylepną, dzięki czemu niezwykle łatwo można ją przymocować do maski/pokrywy naszego zbiornika. Ten sam efekt można osiągnąć stosując taśmę dwustronną lub klej superglue, ale należy uważać, aby wybrany klej przetrwał kondensację. Możesz również wydrukować w 3D stojak na nowe oświetlenie akwarium, jeśli twój zbiornik nie ma pokrywy, oraz etui na inne używane komponenty.
DIY oświetlenie do akwarium Arduino
Rośliny i ryby akwariowe czerpią korzyści z regularnego cyklu oświetlenia. Chociaż nasze światło nie jest w pełnym spektrum, nadal zapewnia dużą część światła niebieskiego, zielonego i czerwonego, którego potrzebują twoje rośliny. Najlepsze jest jednak to, że ten projekt jest niesamowicie przystępny cenowo, prosty i przyjemny w realizacji.
Zautomatyzuj swoje akwarium, inwestując w inteligentne akcesoria, które zmniejszą potrzebę ręcznej interwencji, utrzymując zdrowe i szczęśliwe ryby.
Czytaj dalej
- majsterkowanie
- Arduino
- Światła ledowe
- Inteligentny dom

Samuel jest pisarzem technologicznym z Wielkiej Brytanii z pasją do wszystkiego, co DIY. Rozpoczynając działalność w dziedzinie tworzenia stron internetowych i druku 3D, a także pracując przez wiele lat jako pisarz, Samuel oferuje wyjątkowy wgląd w świat technologii. Koncentrując się głównie na projektach DIY technologicznych, uwielbia dzielić się zabawnymi i ekscytującymi pomysłami, które możesz wypróbować w domu. Poza pracą Samuela można zwykle spotkać na rowerze, grając w gry komputerowe lub desperacko próbując komunikować się ze swoim krabem.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować