Az akváriumi növényeknek fényre van szükségük ahhoz, hogy fotoszintézis útján energiát hozhassanak létre, míg sok halnak jót tesz a rendszeres fény fényciklus, de hogyan tud mesterséges világítást biztosítani számukra a már meglévő barkács elektronikai eszközökkel van? Építsünk DIY akvárium világítási rendszert Arduino, valós idejű óra és LED szalag segítségével.

LED akváriumi lámpa használata

Mielőtt elkezdenénk, érdemes megjegyezni, hogy a projektben használt LED-ek nem teljes spektrumú LED-ek, amelyek utánozzák a nappali fényt. Ez azt jelenti, hogy nem biztosítják az összes fényhullámhosszt, amely előnyös a növények számára, és visszaadja őket nem alkalmas olyan akváriumi növények számára, amelyek nagy fényigényűek, és kis mennyiségű energiát pazarolnak a LED-ek.

Ennek ellenére az alacsony fényigényű, telepített akváriumok számára az ilyen LED-es világítás kiváló lehet választás, amely gyorsabb és egészségesebb növénynövekedést kínál az akváriumvilágítással járó költségek nélkül Termékek; egyszerűen nem fogsz ugyanannyi wattot kapni.

instagram viewer

Nem csak az akváriumban lévő növények számára előnyös a LED világítás: sok halfaj élvezi a rendszeres fényciklust, nappal és éjszaka utánozza, hogy megőrizze cirkadián ritmusát, lehetővé téve számukra, hogy pihenjenek, táplálékot keressenek és aktívak legyenek a vad.

Olyan LED-es világítási rendszer kiépítéséhez, amely nappal-éjszaka ciklust biztosít az akváriumban lévő halak és növények számára, Arduino-t, valós idejű órát (RTC) és LED-szalagot fogunk használni – sokféleképpen használható nak,-nek Arduino LED világítási projektek.

Mire van szükséged?

Csak néhány alkatrészre van szüksége ennek az összeállításnak a befejezéséhez:

  • 1x Arduino mikrokontroller SDA/SCL tűkkel (Uno, Leonardo, Micro stb.; Pro Micro-t használunk)
  • 1x DS3231 RTC modul
  • 1x WS2812/WS2812B NeoPixel RGB LED szalag IP65 vagy magasabb besorolással (60 LED-es, 1 méteres WS2812 szalagot használunk, amely szilíciummal van lezárva; előnyös lehet több LED használata, ha több mint 20 gallonos tartálya van)
  • 1x 12 V AC-DC tápadapter belső csatlakozóaljzattal
  • 1x 1000uF kondenzátor (opcionális)
  • Válogatott vezetékek és hőre zsugorodó darabok
  • Szuperragasztó/kétoldalas szalag
  • 3D nyomtató izzószál (opcionális)

A projekt befejezéséhez néhány eszközre is szüksége lesz.

  • Egy forrasztópáka
  • Drótvágók/lehúzók
  • Egy hőfegyver
  • 3D nyomtató (opcionális)

A barkács akvárium LED-világításának bekötése

A barkács akvárium világításának bekötése egyszerű, mindössze néhány csatlakozást kell létrehozni, mielőtt elkezdené a projekt kódolását. A fenti diagram bemutatja az összes szükséges csatlakozást, de ezt az alábbi szakaszokban lebontottuk.

A valós idejű óra bekötése

A projektben szereplő DS3231 RTC időzítőként működik az akváriumunk LED-világításához. Ennek a modulnak négy érintkezője van, amelyeket használni fogunk: SCL, SDA, VCC és GND, amelyek mindegyike közvetlenül csatlakoztatható az Arduino Pro Micro-hoz.

  • SCL 3-ra Arduino-n
  • SDA 2-re Arduino-n
  • VCC 5V-ra Arduino-n
  • GND-ről GND-re Arduino-n

A LED szalag bekötése

A LED-szalag bekötése bonyolultabb, mint az RTC-é, mivel a LED-ek valószínűleg bizonyos távolságra vannak az Arduino-tól, és külön hálózati adaptert kell használnia. hogy teljes fényerőt kapjon a LED-eiből. A fenti diagram bemutatja, hogyan csatlakoztathatja a LED NeoPixel szalagot az Arduino-hoz és az áramforráshoz a legjobban eredmények.

  • DIN a Digital Pin 7-hez az Arduino-n
  • GND-ről GND-re az Arduino és a negatív (-) tápforrás terminálon
  • VCC/5V+/12V a pozitív (+) tápforrás csatlakozóhoz
  • Erősen ajánlott 1000 uF-os kondenzátort használni a negatív (-) és pozitív (+) tápforrás terminálokon, hogy elkerülje a LED-ek károsodását.

A LED szalag Arduino és 12 V-os áramforráshoz való csatlakoztatása mellett módosítani fogjuk NeoPixel klón három kisebb LED-szalag létrehozásához, amelyeket egy hosszú kábellel láncba kötnek. Ehhez szigetelt háromerű kábelt fogunk használni, valamint hőre zsugorodót használunk az illesztések tömítésére. LED szalagunk mindkét végén JST csatlakozókkal volt ellátva, így kényelmesen leválaszthatjuk a szalagot Arduinónkról.

A DIY Arduino Aquarium NeoPixel lámpáinak kódolása

Ennek a projektnek a kódolási eleme bonyolultabb, mint a vezetékezés. Kezdheted egy alap üres Arduino projekttel, hiszen a hozzá tartozó funkciókon kívül semmire nem lesz szükségünk.

A könyvtárak hozzáadása

Mielőtt bármilyen kódot hozzáadnánk, telepítenünk kell néhány könyvtárat, és ezek mindegyike megtalálható az Arduino IDE Library Managerben.

  • Wire.h: Ez a könyvtár az Arduino IDE-vel érkezik, és lehetővé teszi az I2C komponensekkel, például az RTC-vel való kommunikációt.
  • Adafruit_NeoPixel.h: Ez a könyvtár funkciókat/osztályokat ad hozzá a NeoPixel LED-ek vezérléséhez, de ugyanolyan jól működik a szokásos WS2812 LED-szalaggal.
  • RTClib.h: Ez a könyvtár lehetővé teszi a DS3231 RTC modulunk vezérlését.
#beleértve  //LED szalag könyvtár
#beleértve
#beleértve //RTC könyvtár

Globális változók hozzáadása (opcionális)

Globális változókat adtunk a kódunkhoz, hogy a jövőbeni projektek során gombokkal és egyéb bemenetekkel módosíthassuk világításunk viselkedését. Ez nem elengedhetetlen, de megkönnyíti a kód szerkesztését, ha változtatásokat kell végrehajtania. Változókat adtunk a LED fényerejének és árnyalatának meghatározásához, valamint egy változót a LED-szalag színének tárolására.

LED szalag/RTC objektumok deklarálása és inicializálása

Ezután deklarálnunk kell a LED-szalagot és az RTC-t olyan objektumként, amelyet az Arduinónk használhat, majd inicializálnunk kell őket a beállítási hurkon belül.

LED szalagjainkat úgy deklarálhatjuk, hogy először meghatározzuk a használt tűt és beállítjuk a LED-ek számát a szalagon, majd az alábbi sorok segítségével elkészítheti magát a nyilatkozatot.

#define LED_PIN 7 // A LED-szalagunkat 7-es tűre állítja
#define LED_COUNT 60 // Beállítja a NeoPixel LED-ek számát
Adafruit_NeoPixel szalag (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Kijelenti a LED-szalag objektumunkat

Az RTC-t könnyebb deklarálni, és csak az alábbi sort kell használnia a futtatáshoz; alapértelmezés szerint minden fontos beállítás érvényesül.

RTC_DS3231 rtc;

Ha ez kész, csak inicializálnunk kell az RTC-nket a következő kóddal a beállítási osztályunkban.

 Serial.begin (57600); //Elindítja a soros kapcsolatunkat

#ifndef ESP8266
míg (!Sorozat); // Várja meg, amíg a soros port csatlakozik
#endif

ha (! rtc.begin()) {
Serial.println("Nem található RTC");
Serial.flush();
míg (1) késleltetés (10);
} //Ez azt ellenőrzi, hogy az RTC-nk csatlakoztatva van-e

Az időzítő hurok felépítése

Most itt az ideje megépíteni a fő hurkot az akváriumi LED-szalagokhoz. Ezt az üres Arduino projekthez tartozó fő hurkon belül kezelik, és ez azt jelenti, hogy folyamatosan fut.

A ciklust úgy kezdjük, hogy a valós idejű órával ellenőrizzük az aktuális időt, és beállítunk egy változót a tárolására, biztosítva, hogy a nap folyamán biztosítva legyen a nappali fény. Ha egyszer megvan a Dátum idő változóval játszható, külön változókhoz rendelhetjük az aktuális órát és percet, így nagy pontossággal tudjuk szabályozni a világítást.

 DateTime most = rtc.now(); //Összegyűjti az aktuális időt
int hh = most.óra(); //Az aktuális our értéket alkalmazza egy változóra

Ezt követően egy sorozatot használtunk ha nyilatkozatokat annak eldöntésére, hogy fel kell-e kapcsolni a lámpákat. Ezek ha A kimutatások ellenőrzik, hogy az aktuális óra egyenlő-e vagy több, mint reggel 9 óra és egyenlő-e vagy kevesebb, mint este 9 óra, így reggel 9 és este 9 óra között lehet bekapcsolni a LED-lámpákat.

Ha ezek a feltételek teljesülnek, kódolja be a ha utasítás beállítja LED-szalagjaink fényerejét és színét a korábban beállított globális változókra, valamint a előadás parancsot a LED-szalag frissítéséhez. Ha a feltételek nem teljesülnek, egy más Az utasítás a LED-ek fényerejét 0-ra állítja, hatékonyan kikapcsolva őket éjszaka.

 strip.begin(); //Bekapcsolja a LED szalagot
strip.show(); //Megjeleníti a LED változásait minden ciklusban

if (óó <= 8) { //Ha az idő egyenlő vagy kevesebb, mint 8:00, a LED szalag törlődik
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Ha az idő reggel 9 és este 9 között van, a LED-ek bekapcsolnak
strip.setFényerő (255);
csík.kitöltés (sárgaFehér, 0, 59);
}

if (óó >= 21) { //Ha az idő egyenlő vagy nagyobb, mint este 21:00, a LED-szalag törlődik
strip.clear();
}

A teljes kód

#include //LED Strip könyvtár
#beleértve
#include //RTC Library
#define LED_PIN 7 // A LED-szalagunkat 7-es tűre állítja
#define LED_COUNT 60 // Beállítja a NeoPixel LED-ek számát
Adafruit_NeoPixel szalag (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Kijelenti a LED-szalag objektumunkat
uint32_t sárgaFehér = csík. színes (255, 251, 201); //Létrehoz egy világos színű változót
RTC_DS3231 rtc; //Deklarálja az RTC objektumunkat
void setup() {
Serial.begin (57600); //Elindítja a soros kapcsolatunkat
#ifndef ESP8266
míg (!Sorozat); // Várja meg, amíg a soros port csatlakozik
#endif
ha (! rtc.begin()) {
Serial.println("Nem található RTC");
Serial.flush();
míg (1) késleltetés (10);
} //Ez azt ellenőrzi, hogy az RTC-nk csatlakoztatva van-e
}
void loop() {
DateTime most = rtc.now(); //Összegyűjti az aktuális időt
int hh = most.óra(); //Az aktuális our értéket alkalmazza egy változóra
strip.begin(); //Bekapcsolja a LED szalagot
strip.show(); //Megjeleníti a LED változásait minden ciklusban
if (óó <= 8) { //Ha az idő egyenlő vagy kevesebb, mint 8:00, a LED szalag törlődik
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Ha az idő reggel 9 és este 9 között van, a LED-ek bekapcsolnak
strip.setFényerő (255);
csík.kitöltés (sárgaFehér, 0, 59);
}
if (óó >= 21) { //Ha az idő egyenlő vagy nagyobb, mint este 21:00, a LED-szalag törlődik
strip.clear();
}
késés (1000); //A stabilitás késleltetése
}

LED-es akváriumi világítás felszerelése

LED szalagunkhoz egy praktikus ragasztócsík is volt rögzítve, így hihetetlenül könnyen rögzíthető a tartályunk fedelére. Ugyanez az eredmény érhető el kétoldalas ragasztószalaggal vagy szuperragasztóval, de ügyeljen arra, hogy a választott ragasztó túlélje a páralecsapódást. Ha a tartálynak nincs fedele, 3D-s nyomtathat állványt az új akváriumi lámpához, valamint tokot a többi használt alkatrésznek.

DIY Arduino akváriumi lámpák

Az akváriumi növények és halak számára előnyös a rendszeres világítás. Bár a mi fényünk nem teljes spektrumú, mégis biztosítja a növényeinek szükséges kék, zöld és vörös fény nagy részét. A legjobb azonban az, hogy ez a projekt hihetetlenül megfizethető, egyszerű és szórakoztató.

A legjobb intelligens akváriumi tartályok kiegészítői

Automatizálja akváriumát azáltal, hogy intelligens kiegészítőkbe fektet be, amelyek csökkentik a kézi beavatkozás szükségességét, így a halak egészségesek és boldogok maradnak.

Olvassa el a következőt

RészvényCsipogEmail
Kapcsolódó témák
  • DIY
  • Arduino
  • LED lámpák
  • Okos otthon
A szerzőről
Samuel L. Garbett (33 cikk megjelent)

Samuel az Egyesült Királyságban élő technológiai író, aki minden barkácsolás iránti szenvedéllyel foglalkozik. A webfejlesztés és a 3D nyomtatás területén indított vállalkozást, valamint sokéves írói munkát Samuel egyedülálló betekintést nyújt a technológia világába. Főleg a barkácsolástechnikai projektekre összpontosítva nem szeret jobban, mint szórakoztató és izgalmas ötleteket megosztani, amelyeket otthon is kipróbálhat. A munkán kívül Samuelt általában biciklizni, számítógépes videojátékokat játszani, vagy kétségbeesetten próbál kommunikálni kedvenc rákjával.

További alkotások Samuel L. Garbett

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez