Akvārija augiem ir nepieciešama gaisma, lai radītu enerģiju ar fotosintēzes palīdzību, savukārt daudzas zivis gūst labumu no parastās gaismas cikls, bet kā jūs varat nodrošināt tiem mākslīgo apgaismojumu ar DIY elektronikas rīkiem, kurus jūs jau ir? Izveidosim akvārija apgaismojuma sistēmu, izmantojot Arduino, reāllaika pulksteni un LED lenti.
Izmantojot LED akvārija apgaismojumu
Pirms sākam darbu, ir vērts atzīmēt, ka šajā projektā izmantojamās gaismas diodes nav pilna spektra gaismas diodes, kas atdarina dienas gaismu. Tas nozīmē, ka tie nenodrošina visus gaismas viļņu garumus, kas ir labvēlīgi augiem, padarot tos nav piemērots akvārija augiem, kam ir liela vajadzība pēc gaismas un tiek izšķērdēts neliels daudzums enerģijas, ko ražo Gaismas diodes.
Tas nozīmē, ka stādītiem akvārijiem ar zemu apgaismojuma prasībām šāds LED apgaismojums var būt lielisks izvēle, kas piedāvā ātrāku un veselīgāku augu augšanu bez izmaksām, kas saistītas ar daudziem akvārija apgaismojumiem produkti; jūs vienkārši nesaņemsit tādu pašu jaudu.
Ne tikai augi jūsu akvārijā gūst labumu no LED apgaismojuma: daudzas zivju sugas bauda regulāru gaismas ciklu, kas atdarina dienu un nakti, lai saglabātu savu diennakts ritmu, ļaujot viņiem atpūsties, meklēt pārtiku un būt aktīviem, kā viņi būtu savvaļas.
Lai izveidotu LED apgaismojuma sistēmu, kas nodrošina dienas-nakts ciklu zivīm un augiem jūsu akvārijā, mēs izmantosim Arduino, reāllaika pulksteni (RTC) un LED lenti, ko var izmantot ļoti dažādiem no Arduino LED apgaismojuma projekti.
Ko tev vajag?
Lai pabeigtu šo būvi, jums ir nepieciešamas tikai dažas daļas:
- 1x Arduino mikrokontrolleris ar SDA/SCL tapām (Uno, Leonardo, Micro utt.; mēs izmantojam Pro Micro)
- 1x DS3231 RTC modulis
- 1x WS2812/WS2812B NeoPixel RGB LED sloksne ar IP65 vai augstāku vērtējumu (mēs izmantojam 60 LED 1 metra WS2812 lenti, kas ir noslēgta ar silīciju; Ja jums ir vairāk nekā 20 galonu tvertne, varat izmantot vairāk gaismas diožu)
- 1x 12v maiņstrāvas līdz līdzstrāvas adapteris ar čaulas savienotāju
- 1x 1000uF kondensators (pēc izvēles)
- Dažādi vadi un termiski saraušanās gabali
- Superlīme/divpusēja lente
- 3D printera kvēldiegs (pēc izvēles)
Lai pabeigtu šo projektu, jums būs nepieciešami arī daži rīki.
- Lodāmurs
- Stiepļu griezēji/noņēmēji
- Siltuma lielgabals
- 3D printeris (pēc izvēles)
DIY akvārija LED gaismas iestatīšanas vadu pievienošana
DIY akvārija apgaismojuma vadu pievienošana ir vienkārša — ir jāveic tikai daži savienojumi, pirms varat sākt kodēt savu projektu. Iepriekš redzamajā diagrammā ir parādīti visi savienojumi, kas jums jāizveido, taču mēs esam to sadalījuši tālāk esošajās sadaļās.
Reāllaika pulksteņa pieslēgšana
DS3231 RTC šajā projektā darbojas kā taimeris LED apgaismojumam mūsu akvārijā. Šim modulim ir četras tapas, kuras mēs izmantosim: SCL, SDA, VCC un GND, kuras visas var tieši savienot ar mūsu Arduino Pro Micro.
- SCL uz 3 uz Arduino
- SDA uz 2 uz Arduino
- VCC uz 5 V uz Arduino
- GND uz GND vietnē Arduino
LED sloksnes elektroinstalācija
LED sloksnes vadu pievienošana ir sarežģītāka nekā RTC, jo gaismas diodes, visticamāk, atrodas zināmā attālumā no Arduino, un jums ir jāizmanto atsevišķs strāvas adapteris. lai iegūtu pilnu gaismas diožu spilgtumu. Iepriekš redzamajā diagrammā parādīts, kā vislabāk savienot savu LED NeoPixel joslu ar Arduino un barošanas avotu rezultātus.
- DIN uz Digital Pin 7 uz Arduino
- GND uz GND uz Arduino un negatīvā (-) barošanas avota termināļa
- VCC/5V+/12V uz pozitīvo (+) barošanas avota spaili
- Ir ļoti ieteicams izmantot 1000 uF kondensatoru negatīvajā (-) un pozitīvajā (+) barošanas avota spailē, lai novērstu gaismas diožu bojājumus.
Līdzās mūsu LED sloksnes pievienošanai mūsu Arduino un 12 V barošanas avotam, mēs arī pārveidosim mūsu NeoPixel klons, lai izveidotu trīs mazākas LED sloksnes, kas tiks savienotas ķēdē ar garu kabeli. Šim nolūkam mēs izmantosim izolētu trīsdzīslu kabeli, kā arī siltuma saraušanos, lai noblīvētu savienojumus. Mūsu LED lentes abos galos bija JST savienotāji, nodrošinot mums ērtu veidu, kā sloksni atvienot no mūsu Arduino.
Arduino akvārija NeoPixel apgaismojuma kodēšana
Šī projekta kodēšanas elements ir sarežģītāks nekā elektroinstalācija. Varat sākt ar vienkāršu tukšu Arduino projektu, jo mums nekas nebūs vajadzīgs, izņemot tajā iekļautās funkcijas.
Bibliotēku pievienošana
Pirms koda pievienošanas mums ir jāinstalē dažas bibliotēkas, un tās visas var atrast Arduino IDE bibliotēkas pārvaldniekā.
- Wire.h: Šī bibliotēka ir aprīkota ar Arduino IDE un ļauj sazināties ar I2C komponentiem, piemēram, mūsu RTC.
- Adafruit_NeoPixel.h: Šī bibliotēka pievieno funkcijas/klases, lai kontrolētu NeoPixel gaismas diodes, taču tā darbojas tikpat labi ar mūsu parasto WS2812 LED joslu.
- RTClib.h: Šī bibliotēka ļauj mums kontrolēt mūsu DS3231 RTC moduli.
#iekļauts //LED lentes bibliotēka
#iekļauts
#iekļauts //RTC bibliotēka
Globālo mainīgo pievienošana (neobligāti)
Mēs savam kodam esam pievienojuši globālos mainīgos, lai turpmākajos projektos varētu mainīt apgaismojuma uzvedību, izmantojot pogas un citus ievades datus. Tas nav būtiski, taču tas atvieglos koda rediģēšanu, kad būs jāveic izmaiņas. Mēs pievienojām mainīgos lielumus LED spilgtumam un nokrāsai, kā arī mainīgo, lai saglabātu mūsu LED lentes krāsu.
LED lentes/RTC objektu deklarēšana un inicializācija
Tālāk mums ir jādeklarē mūsu LED sloksne un RTC kā objekti, kurus var izmantot mūsu Arduino, un pēc tam tie jāinicializē mūsu iestatīšanas cilpā.
Mūsu LED sloksnes var deklarēt, vispirms definējot izmantojamo tapu un iestatot gaismas diožu skaitu uz lentes, bet pēc tam varat izmantot tālāk norādītās rindiņas, lai izveidotu pašu deklarāciju.
#define LED_PIN 7 // Iestata mūsu LED sloksni uz 7. tapu
#define LED_COUNT 60 // Iestata NeoPixel gaismas diožu skaitu
Adafruit_NeoPixel josla (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Deklarē mūsu LED lentes objektu
RTC ir vieglāk deklarēt, un jums ir jāizmanto tikai tālāk esošā rindiņa, lai to palaistu; visi svarīgie iestatījumi tiek lietoti pēc noklusējuma.
RTC_DS3231 rtc;
Kad tas ir pabeigts, mums vienkārši jāinicializē mūsu RTC, izmantojot šo kodu mūsu iestatīšanas klasē.
Serial.begin (57600); //Sāk mūsu seriālo savienojumu
#ifndef ESP8266
kamēr (!Seriāls); // Pagaidiet, līdz izveido savienojumu ar seriālo portu
#endif
ja (! rtc.begin()) {
Serial.println ("Nevarēja atrast RTC");
Serial.flush();
kamēr (1) kavēšanās (10);
} //Tā pārbauda, vai mūsu RTC ir pievienots
Taimera cilpas veidošana
Tagad ir pienācis laiks izveidot galveno cilpu jūsu akvārija LED sloksnēm. Tas tiek apstrādāts galvenajā cilpā, kas tika pievienota jūsu tukšajam Arduino projektam, un tas nozīmē, ka tas darbosies nepārtraukti.
Mēs sākam ciklu, pārbaudot pašreizējo laiku ar mūsu reāllaika pulksteni un iestatot mainīgo, lai to saglabātu, nodrošinot dienasgaismas nodrošināšanu dienas laikā. Kad mums būs a Datums Laiks Mainīgais, ar kuru var spēlēt, mēs varam piešķirt pašreizējo stundu un minūti atsevišķiem mainīgajiem, ļaujot mums ļoti precīzi kontrolēt mūsu apgaismojumu.
Datums un laiks tagad = rtc.now(); //Apkopo pašreizējo laiku
int hh = tagad.stunda(); //Piemēro pašreizējo mūsu mainīgajam
Pēc tam mēs izmantojām virkni ja paziņojumus, lai noteiktu, vai ieslēgt mūsu apgaismojumu. Šīs ja pārskati pārbauda, vai pašreizējā stunda ir vienāda ar vai lielāka par 9:00 un vienāda ar vai mazāka par 21:00, dodot mums iespēju no 9:00 līdz 21:00 ieslēgt mūsu LED apgaismojumu.
Ja šie nosacījumi ir izpildīti, iekodējiet ja paziņojums nosaka mūsu LED sloksņu spilgtumu un krāsu atbilstoši globālajiem mainīgajiem, ko iestatījām iepriekš, kā arī izmanto a parādīt komandu, lai atjauninātu LED lenti. Ja nosacījumi nav izpildīti, an cits paziņojums tiek izmantots, lai iestatītu gaismas diožu spilgtumu uz 0, efektīvi izslēdzot tās nakts laikā.
strip.begin(); //Ieslēdz LED lenti
strip.show(); //Rāda LED izmaiņas no katras cilpasif (hh <= 8) { //Ja laiks ir vienāds vai mazāks par 8:00, LED lente tiek notīrīta
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Ja laiks ir no 9:00 līdz 21:00, gaismas diodes ieslēdzas
strip.setSpilgtums (255);
strip.fill (dzeltensBalts, 0, 59);
}
if (hh >= 21) { //Ja laiks ir vienāds vai lielāks par 21:00, LED lente tiek notīrīta
strip.clear();
}
Pilns kods
#include //LED lentes bibliotēka
#iekļauts
#include //RTC bibliotēka
#define LED_PIN 7 // Iestata mūsu LED sloksni uz 7. tapu
#define LED_COUNT 60 // Iestata NeoPixel gaismas diožu skaitu
Adafruit_NeoPixel josla (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Deklarē mūsu LED lentes objektu
uint32_t yellowWhite = sloksne. Krāsa (255, 251, 201); //Izveido gaišas krāsas mainīgo
RTC_DS3231 rtc; //Deklarē mūsu RTC objektu
void setup() {
Serial.begin (57600); //Sāk mūsu seriālo savienojumu
#ifndef ESP8266
kamēr (!Seriāls); // Pagaidiet, līdz izveido savienojumu ar seriālo portu
#endif
ja (! rtc.begin()) {
Serial.println ("Nevarēja atrast RTC");
Serial.flush();
kamēr (1) kavēšanās (10);
} //Tā pārbauda, vai mūsu RTC ir pievienots
}
void loop() {
Datums un laiks tagad = rtc.now(); //Apkopo pašreizējo laiku
int hh = tagad.stunda(); //Piemēro pašreizējo mūsu mainīgajam
strip.begin(); //Ieslēdz LED lenti
strip.show(); //Rāda LED izmaiņas no katras cilpas
if (hh <= 8) { //Ja laiks ir vienāds vai mazāks par 8:00, LED lente tiek notīrīta
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Ja laiks ir no 9:00 līdz 21:00, gaismas diodes ieslēdzas
strip.setSpilgtums (255);
strip.fill (dzeltensBalts, 0, 59);
}
if (hh >= 21) { //Ja laiks ir vienāds vai lielāks par 21:00, LED lente tiek notīrīta
strip.clear();
}
kavēšanās (1000); //Stabilitātes aizkave
}
LED akvārija apgaismojuma uzstādīšana
Mūsu LED sloksnei bija pievienota ērta līmlente, kas padara to neticami viegli piestiprināt pie tvertnes pārsega/vāka. To pašu rezultātu var sasniegt ar abpusējo līmlenti vai superlīmi, taču jums jābūt uzmanīgiem, lai nodrošinātu, ka izvēlētā līme spēs izturēt kondensāta uzkrāšanos. Varat arī izdrukāt 3D statīvu jaunajam akvārija apgaismojumam, ja tvertnei nav vāka, un futrāli citām izmantotajām sastāvdaļām.
DIY Arduino akvārija gaismas
Akvārija augi un zivis gūst labumu no regulāra apgaismojuma cikla. Lai gan mūsu gaisma nav pilna spektra, tā joprojām nodrošina lielu daļu zilās, zaļās un sarkanās gaismas, kas nepieciešama jūsu augiem. Tomēr vislabākais ir tas, ka šis projekts ir neticami izdevīgs, vienkāršs un aizraujošs.
Automatizējiet savu akvāriju, ieguldot viedos piederumos, kas samazinās vajadzību pēc manuālas iejaukšanās, lai jūsu zivis būtu veselas un laimīgas.
Lasiet Tālāk
- DIY
- Arduino
- LED gaismas
- Viedā māja
Samuels ir Apvienotajā Karalistē dzīvojošs tehnoloģiju rakstnieks, kurš aizraujas ar visu, ko dari pats. Uzsācis uzņēmējdarbību tīmekļa izstrādes un 3D drukāšanas jomā, kā arī ilgus gadus strādājis par rakstnieku, Samuels piedāvā unikālu ieskatu tehnoloģiju pasaulē. Viņš galvenokārt koncentrējas uz DIY tehnoloģiju projektiem, un viņam patīk tikai dalīties jautrās un aizraujošās idejās, kuras varat izmēģināt mājās. Ārpus darba Samuelu parasti var atrast braucam ar velosipēdu, spēlējam datora videospēles vai izmisīgi mēģina sazināties ar savu mājdzīvnieku krabi.
Abonējiet mūsu biļetenu
Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!
Noklikšķiniet šeit, lai abonētu