Akvariumo augalams reikia šviesos, kad fotosintezės būdu sukurtų energiją, o daugeliui žuvų yra naudinga įprasta šviesos ciklą, bet kaip galite suteikti jiems dirbtinį apšvietimą naudodami „pasidaryk pats“ elektronikos įrankius turi? Sukurkime „pasidaryk pats“ akvariumo apšvietimo sistemą naudodami „Arduino“, realaus laiko laikrodį ir LED juostelę.

LED akvariumo lemputės naudojimas

Prieš pradedant, verta paminėti, kad šiame projekte naudojami šviesos diodai nėra viso spektro šviesos diodai, imituojantys dienos šviesą. Tai reiškia, kad jie nesuteikia visų augalams naudingų šviesos bangų ilgių ir juos atskleidžia netinka akvariumo augalams, kuriems reikia daug šviesos ir kurie eikvoja nedidelį kiekį energijos, kurią pagamina šviesos diodai.

Be to, pasodintiems akvariumams, kuriems reikalingas mažas apšvietimas, toks LED apšvietimas gali būti puikus pasirinkimas, kuris siūlo greitesnį ir sveikesnį augalų augimą be išlaidų, susijusių su daugybe akvariumo apšvietimo Produktai; tiesiog negausite tos pačios galios.

instagram viewer

LED apšvietimas naudojasi ne tik augalais akvariume: daugelis žuvų rūšių naudojasi reguliariu šviesos ciklu, imituoja dieną ir naktį, kad išlaikytų savo cirkadinį ritmą, leisdamas jiems ilsėtis, ieškoti maisto ir būti aktyviems taip, kaip būtų laukinis.

Norėdami sukurti LED apšvietimo sistemą, kuri maitintų dienos ir nakties ciklą jūsų akvariumo žuvims ir augalams, mes naudosime Arduino, realaus laiko laikrodį (RTC) ir LED juostelę, kurią galima naudoti įvairiems apie Arduino LED apšvietimo projektai.

Ko tau reikia?

Norėdami užbaigti šią konstrukciją, jums reikia tik kelių dalių:

  • 1x Arduino mikrovaldiklis su SDA/SCL kaiščiais (Uno, Leonardo, Micro ir kt.; mes naudojame Pro Micro)
  • 1x DS3231 RTC modulis
  • 1x WS2812/WS2812B NeoPixel RGB LED juostelė su IP65 ar aukštesniu reitingu (naudojame 60 LED 1 metro WS2812 juostelę, kuri buvo užsandarinta siliciu; gali būti naudinga naudoti daugiau šviesos diodų, jei turite daugiau nei 20 galonų baką)
  • 1x 12v AC į DC maitinimo adapteris su vidine cilindrine jungtimi
  • 1x 1000uF kondensatorius (pasirinktinai)
  • Įvairūs laidai ir šilumos susitraukiančios detalės
  • Superglue/dvipusė juosta
  • 3D spausdintuvo siūlelis (pasirinktinai)

Jums taip pat reikės tam tikrų įrankių, kad užbaigtumėte šį projektą.

  • Lituoklis
  • Vielos pjaustytuvai/nutraukikliai
  • Šilumos pistoletas
  • 3D spausdintuvas (pasirinktinai)

„Pasidaryk pats“ akvariumo LED šviesos sąrankos prijungimas

„Pasidaryk pats“ akvariumo apšvietimą prijungti paprasta – tereikia atlikti keletą jungčių, kad galėtumėte pradėti koduoti projektą. Aukščiau pateiktoje diagramoje parodytos visos jungtys, kurias reikia atlikti, tačiau mes tai išskaidėme toliau pateiktuose skyriuose.

Realiojo laiko laikrodžio prijungimas

Šiame projekte DS3231 RTC veikia kaip mūsų akvariumo LED apšvietimo laikmatis. Šis modulis turi keturis kaiščius, kuriuos naudosime: SCL, SDA, VCC ir GND, kuriuos visus galima tiesiogiai prijungti prie mūsų Arduino Pro Micro.

  • SCL į 3 „Arduino“.
  • SDA į 2 „Arduino“.
  • VCC iki 5 V „Arduino“.
  • GND į GND „Arduino“.

LED juostos laidai

LED juostos prijungimas yra sudėtingesnis nei RTC, nes šviesos diodai gali būti tam tikru atstumu nuo Arduino ir jums reikia naudoti atskirą maitinimo adapterį. kad gautumėte visą šviesos diodų ryškumą. Aukščiau pateiktoje diagramoje parodyta, kaip geriausia prijungti LED NeoPixel juostelę prie Arduino ir maitinimo šaltinio rezultatus.

  • DIN į skaitmeninį kaištį 7 „Arduino“.
  • GND į GND „Arduino“ ir neigiamo (-) maitinimo šaltinio terminale
  • VCC/5V+/12V į teigiamą (+) maitinimo šaltinio gnybtą
  • Labai rekomenduojama naudoti 1000 uF kondensatorių per neigiamą (-) ir teigiamą (+) maitinimo šaltinio gnybtus, kad nesugadintumėte šviesos diodų.

Be LED juostelės prijungimo prie Arduino ir 12 V maitinimo šaltinio, mes taip pat pakeisime savo NeoPixel klonas sukurti tris mažesnes LED juosteles, kurios bus sujungtos į grandinę ilgu kabeliu. Tam naudosime izoliuotą trijų gyslų kabelį, taip pat termiškai susitraukiantį, kad sandarintume jungtis. Mūsų LED juostelė buvo su JST jungtimis kiekviename gale, todėl mums patogus būdas atjungti juostelę nuo mūsų Arduino.

„Pasidaryk pats“ Arduino akvariumo „NeoPixel“ lempučių kodavimas

Šio projekto kodavimo elementas yra sudėtingesnis nei laidai. Galite pradėti nuo paprasto tuščio Arduino projekto, nes mums nereikės nieko, išskyrus su juo susijusias funkcijas.

Bibliotekų pridėjimas

Prieš pridėdami bet kokį kodą, turime įdiegti kai kurias bibliotekas ir visas jas galite rasti Arduino IDE bibliotekos tvarkyklėje.

  • Wire.h: Ši biblioteka pateikiama su Arduino IDE ir leidžia bendrauti su I2C komponentais, tokiais kaip mūsų RTC.
  • Adafruit_NeoPixel.h: Ši biblioteka prideda funkcijų / klasių, skirtų valdyti „NeoPixel“ šviesos diodus, tačiau ji taip pat gerai veikia su įprasta WS2812 LED juostele.
  • RTClib.h: Ši biblioteka leidžia valdyti mūsų DS3231 RTC modulį.
#įtraukti  //LED juostelių biblioteka
#įtraukti
#įtraukti //RTC biblioteka

Visuotinių kintamųjų pridėjimas (nebūtina)

Į savo kodą įtraukėme visuotinius kintamuosius, kad būsimuose projektuose galėtume pakeisti savo apšvietimo elgseną mygtukais ir kitais įvesties elementais. Tai nėra būtina, bet bus lengviau redaguoti kodą, kai reikės atlikti pakeitimus. Pridėjome LED ryškumo ir atspalvio kintamuosius, taip pat kintamąjį, skirtą mūsų LED juostos spalvai išsaugoti.

LED juostos / RTC objektų deklaravimas ir inicijavimas

Tada turime deklaruoti savo LED juostelę ir RTC kaip objektus, kuriuos gali naudoti mūsų „Arduino“, o po to juos inicijuoti mūsų sąrankos cikle.

Mūsų LED juosteles galima deklaruoti pirmiausia nurodant naudojamą kaištį ir juostelėje esančių šviesos diodų skaičių, bet tada galite naudoti toliau pateiktas eilutes, kad pateiktumėte pačią deklaraciją.

#define LED_PIN 7 // Mūsų LED juostelė nustatoma į 7 kaištį
#define LED_COUNT 60 // Nustato „NeoPixel“ šviesos diodų skaičių
Adafruit_NeoPixel juostelė (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Pareiškia mūsų LED juostos objektą

RTC deklaruoti lengviau, o norint jį paleisti, tereikia naudoti žemiau esančią eilutę; visi svarbūs nustatymai taikomi pagal numatytuosius nustatymus.

RTC_DS3231 rtc;

Kai tai bus baigta, mums tereikia inicijuoti savo RTC naudodami šį kodą mūsų sąrankos klasėje.

 Serial.begin (57600); //Pradeda mūsų serijinis ryšys

#ifndef ESP8266
while (!Serialas); // Palaukite, kol prisijungs nuoseklusis prievadas
#endif

jei (! rtc.begin()) {
Serial.println("Nepavyko rasti RTC");
Serial.flush();
o (1) delsimas (10);
} //Tai patikrinama, ar mūsų RTC prijungtas

Laikmačio ciklo kūrimas

Dabar atėjo laikas sukurti pagrindinę akvariumo LED juostų kilpą. Tai tvarkoma pagrindinėje kilpoje, kuri buvo pateikta kartu su tuščiu Arduino projektu, o tai reiškia, kad jis veiks nuolat.

Ciklą pradedame tikrindami dabartinį laiką naudodami realaus laiko laikrodį ir nustatydami kintamąjį, kad jis būtų išsaugotas, užtikrinant, kad dienos metu būtų apšviesta. Kai turėsime a DataLaikas kintamasis, su kuriuo galime žaisti, esamą valandą ir minutę galime priskirti atskiriems kintamiesiems, todėl galime labai tiksliai valdyti apšvietimą.

 DataLaikas dabar = rtc.now(); //Renka dabartinį laiką
int hh = dabar.valanda(); //Kintamajam pritaiko dabartinę mūsų

Po to mes panaudojome seriją jeigu pareiškimus, kad nustatytų, ar įjungti mūsų šviesas. Šie jeigu ataskaitose patikrinama, ar esama valanda yra lygi arba didesnė nei 9 val. ir lygi arba mažesnė nei 21 val., suteikiant mums galimybę įjungti LED lemputes nuo 9 iki 21 val.

Jei šios sąlygos yra įvykdytos, koduokite viduje jeigu pareiškimas nustato mūsų LED juostų ryškumą ir spalvą pagal pasaulinius kintamuosius, kuriuos nustatėme anksčiau, kartu su a Rodyti komanda atnaujinti LED juostelę. Jei sąlygos netenkinamos, an Kitas pareiškimas naudojamas norint nustatyti šviesos diodų ryškumą iki 0, efektyviai juos išjungiant naktį.

 strip.begin(); //Įjungia LED juostą
strip.show(); //Rodomi LED pasikeitimai iš kiekvienos kilpos

if (hh <= 8) { //Jei laikas lygus arba mažesnis nei 8 val., LED juostelė išvaloma
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Jei laikas yra nuo 9 iki 21 val., šviesos diodai įsijungia
strip.setRyškumas (255);
juostelė.užpildas (geltonaBalta, 0, 59);
}

if (hh >= 21) { //Jei laikas lygus arba didesnis nei 21:00, LED juostelė išvaloma
strip.clear();
}

Visas kodas

#include //LED juostelių biblioteka
#įtraukti
#include //RTC biblioteka
#define LED_PIN 7 // Mūsų LED juostelė nustatoma į 7 kaištį
#define LED_COUNT 60 // Nustato „NeoPixel“ šviesos diodų skaičių
Adafruit_NeoPixel juostelė (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Pareiškia mūsų LED juostos objektą
uint32_t geltonaBalta = juostelė. Spalva (255, 251, 201); //Sukuria šviesios spalvos kintamąjį
RTC_DS3231 rtc; //Deklaruoja mūsų RTC objektą
void setup() {
Serial.begin (57600); //Pradeda mūsų serijinis ryšys
#ifndef ESP8266
while (!Serialas); // Palaukite, kol prisijungs nuoseklusis prievadas
#endif
jei (! rtc.begin()) {
Serial.println("Nepavyko rasti RTC");
Serial.flush();
o (1) delsimas (10);
} //Tai patikrinama, ar mūsų RTC prijungtas
}
void loop() {
DataLaikas dabar = rtc.now(); //Renka dabartinį laiką
int hh = dabar.valanda(); //Kintamajam pritaiko dabartinę mūsų
strip.begin(); //Įjungia LED juostą
strip.show(); //Rodomi LED pasikeitimai iš kiekvienos kilpos
if (hh <= 8) { //Jei laikas lygus arba mažesnis nei 8 val., LED juostelė išvaloma
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Jei laikas yra nuo 9 iki 21 val., šviesos diodai įsijungia
strip.setRyškumas (255);
juostelė.užpildas (geltonaBalta, 0, 59);
}
if (hh >= 21) { //Jei laikas lygus arba didesnis nei 21:00, LED juostelė išvaloma
strip.clear();
}
vėlavimas (1000); //Stabilumo atidėjimas
}

LED akvariumo apšvietimo įrengimas

Mūsų LED juostelė buvo su patogia lipnia juostele, todėl ją neįtikėtinai lengva pritvirtinti prie bako gaubto / dangčio. Tą patį rezultatą galima pasiekti naudojant dvipusę juostą arba superklijus, tačiau turite būti atsargūs ir užtikrinti, kad jūsų pasirinkti klijai atlaikytų susikaupusį kondensatą. Taip pat galite 3D spausdinti stovą naujam akvariumo šviestuvui, jei bakas neturi dangčio, ir dėklą kitiems naudotiems komponentams.

„Pasidaryk pats“ „Arduino“ akvariumo šviestuvai

Akvariumo augalams ir žuvims naudingas reguliarus apšvietimo ciklas. Nors mūsų šviesa nėra viso spektro, ji vis tiek suteikia daug mėlynos, žalios ir raudonos šviesos, kurių reikia jūsų augalams. Tačiau geriausia yra tai, kad šis projektas yra neįtikėtinai prieinamas, paprastas ir įdomus.

Geriausi išmaniųjų akvariumo rezervuarų priedai

Automatizuokite savo akvariumą investuodami į išmaniuosius priedus, kurie sumažins rankinio įsikišimo poreikį, todėl jūsų žuvys bus sveikos ir laimingos.

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • DIY
  • Arduino
  • LED lemputės
  • Išmanieji namai
Apie autorių
Samuelis L. Garbettas (Paskelbta 33 straipsniai)

Samuelis yra JK gyvenantis technologijų rašytojas, aistringas viskam, ką daryti „pasidaryk pats“. Pradėjęs verslą interneto svetainių kūrimo ir 3D spausdinimo srityse bei ilgus metus dirbęs rašytoju, Samuelis siūlo unikalų įžvalgą į technologijų pasaulį. Daugiausia dėmesio skiriantis „pasidaryk pats“ technologijų projektams, jam patinka tik dalytis smagiomis ir įdomiomis idėjomis, kurias galite išbandyti namuose. Ne darbo metu Samuelis dažniausiai važiuoja dviračiu, žaidžia kompiuterinius vaizdo žaidimus arba desperatiškai bando bendrauti su savo augintiniu krabu.

Daugiau iš Samuel L. Garbettas

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!

Spauskite čia norėdami užsiprenumeruoti