Akvarieväxter behöver ljus för att skapa energi via fotosyntes, medan många fiskar har nytta av en vanlig ljuscykel, men hur kan du tillhandahålla artificiell belysning för dem med de DIY-elektronikverktyg du redan har ha? Låt oss bygga ett DIY-akvariebelysningssystem med en Arduino, realtidsklocka och LED-remsa.

Använda en LED Aquarium Light

Innan vi sätter igång är det värt att notera att lysdioderna vi använder i det här projektet inte är fullspektrum-lysdioder som efterliknar dagsljus. Detta betyder att de inte ger alla ljusvåglängder som är fördelaktiga för växter, vilket gör dem olämplig för akvarieväxter med tungt ljusbehov och som slösar bort en liten del av den energi som produceras av lysdioder.

Som sagt, för planterade akvarier med låga ljuskrav kan LED-belysning som denna vara en utmärkt val som erbjuder snabbare och hälsosammare växttillväxt utan kostnaden som kommer med många akvariebelysning Produkter; du får helt enkelt inte samma watt.

Det är inte bara växterna i ditt akvarium som drar nytta av LED-belysning: många fiskarter har en regelbunden ljuscykel som imiterar dag och natt för att bevara sin dygnsrytm, vilket gör det möjligt för dem att vila, leta efter mat och vara aktiva som de skulle vara i det vilda.

instagram viewer

För att bygga ett LED-belysningssystem som driver en dag-natt-cykel för fiskarna och växterna i ditt akvarium, vi kommer att använda en Arduino, en realtidsklocka (RTC) och en LED-remsa - som kan användas för en mängd olika av Arduino LED-belysningsprojekt.

Vad behöver du?

Du behöver bara en handfull delar för att slutföra denna konstruktion:

  • 1x Arduino mikrokontroller med SDA/SCL-stift (Uno, Leonardo, Micro, etc.; vi använder en Pro Micro)
  • 1x DS3231 RTC-modul
  • 1x WS2812/WS2812B NeoPixel RGB LED-remsa med IP65-klassning eller högre (vi använder en 60 LED 1-meters WS2812-remsa som har förseglats med silikon; du kan dra nytta av att använda fler lysdioder om du har en 20+ gallon tank)
  • 1x 12v AC till DC strömadapter med honkontakt
  • 1x 1000uF kondensator (tillval)
  • Blandade trådar och värmekrympbitar
  • Superlim/dubbelhäftande tejp
  • 3D-skrivarfilament (valfritt)

Du kommer också att behöva några verktyg för att slutföra detta projekt.

  • En lödkolv
  • Trådskärare/avdragare
  • En värmepistol
  • En 3D-skrivare (tillval)

Anslut din DIY Aquarium LED Light Setup

Att koppla upp din gör-det-själv-akvariebelysning är enkelt, med bara några få anslutningar att göra innan du kan börja koda ditt projekt. Diagrammet ovan visar alla anslutningar du behöver göra, men vi har brutit ner detta i avsnitten nedan.

Anslut realtidsklockan

DS3231 RTC i detta projekt fungerar som en timer för LED-belysningen i vårt akvarium. Den här modulen har fyra stift som vi kommer att använda: SCL, SDA, VCC och GND, som alla kan kopplas direkt till vår Arduino Pro Micro.

  • SCL till 3 på Arduino
  • SDA till 2 på Arduino
  • VCC till 5V på Arduino
  • GND till GND på Arduino

Anslutning av LED-remsan

Att koppla in din LED-remsa är mer komplicerat än RTC, eftersom lysdioderna sannolikt är en bit från Arduino och du måste använda en separat strömadapter för att få full ljusstyrka från dina lysdioder. Diagrammet ovan visar hur du kan ansluta din LED NeoPixel-remsa till din Arduino och strömkälla på bästa sätt resultat.

  • DIN till Digital Pin 7 på Arduino
  • GND till GND på Arduino och negativ (-) strömkälla
  • VCC/5V+/12V till positiv (+) strömkälla
  • Det rekommenderas starkt att du använder en 1000uF kondensator över de negativa (-) och positiva (+) strömkällorna för att förhindra skador på dina lysdioder

Förutom att ansluta vår LED-remsa till vår Arduino och 12V-strömkälla, kommer vi också att modifiera vår NeoPixel klon för att skapa tre mindre LED-remsor som kommer att kopplas samman i en kedja med en lång kabel. Vi kommer att använda en isolerad kabel med tre kärnor för detta, tillsammans med värmekrympning för att täta skarvarna. Vår LED-remsa kom med JST-kontakter i varje ände, vilket ger oss ett bekvämt sätt att göra det möjligt att ta loss remsan från vår Arduino.

Koda dina DIY Arduino Aquarium NeoPixel Lights

Kodningselementet i detta projekt är mer komplicerat än ledningarna. Du kan börja med ett grundläggande tomt Arduino-projekt, eftersom vi inte behöver något utöver de funktioner som följer med det.

Lägger till biblioteken

Innan vi lägger till någon kod måste vi installera några bibliotek, och alla dessa kan hittas i Arduino IDE Library Manager.

  • Wire.h: Detta bibliotek kommer med Arduino IDE och låter dig kommunicera med I2C-komponenter, som vår RTC.
  • Adafruit_NeoPixel.h: Det här biblioteket lägger till funktioner/klasser för att styra NeoPixel LED, men det fungerar lika bra med vår vanliga WS2812 LED-remsa.
  • RTClib.h: Detta bibliotek gör det möjligt för oss att styra vår DS3231 RTC-modul.
#omfatta  //LED Strip-bibliotek
#omfatta
#omfatta //RTC bibliotek

Lägga till globala variabler (valfritt)

Vi har lagt till globala variabler i vår kod så att vi kan ändra beteendet hos vår belysning med knappar och andra ingångar i framtida projekt. Detta är inte nödvändigt, men det kommer att göra det lättare att redigera din kod när du behöver göra ändringar. Vi lade till variabler för LED-ljusstyrka och nyans, tillsammans med en variabel för att lagra färgen på vår LED-remsa.

Deklarera och initiera LED Strip/RTC-objekt

Därefter måste vi deklarera vår LED-remsa och RTC som objekt som kan användas av vår Arduino, följt av att initiera dem i vår installationsslinga.

Våra LED-remsor kan deklareras genom att först definiera stiftet som används och ställa in antalet lysdioder på remsan, men sedan kan du använda raderna nedan för att göra själva deklarationen.

#define LED_PIN 7 // Ställer in vår LED-remsa till stift 7
#define LED_COUNT 60 // Ställer in antalet NeoPixel LED
Adafruit_NeoPixel-remsa (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Deklarerar vårt LED-remsobjekt

RTC är lättare att deklarera, och du behöver bara använda raden nedan för att få det att köra; alla viktiga inställningar tillämpas som standard.

RTC_DS3231 rtc;

När detta är klart behöver vi bara initiera vår RTC med följande kod i vår inställningsklass.

 Serial.begin (57600); //Börjar vår seriella anslutning

#ifndef ESP8266
while (!Serial); // Vänta tills serieporten ansluts
#endif

om (! rtc.begin()) {
Serial.println("Kunde inte hitta RTC");
Serial.flush();
medan (1) fördröjning (10);
} //Detta testar för att säkerställa att vår RTC är ansluten

Bygga timerslingan

Nu är det dags att bygga huvudslingan för ditt akvarium LED-remsor. Detta hanteras inom huvudslingan som följde med ditt tomma Arduino-projekt, och det betyder att det kommer att köras kontinuerligt.

Vi börjar slingan med att kontrollera den aktuella tiden med vår realtidsklocka och ställa in en variabel för att lagra den, vilket säkerställer att dagsljus tillhandahålls under dagen. När vi väl har en Datum Tid variabel att leka med, vi kan tilldela aktuell timme och minut till separata variabler, vilket gör att vi kan styra vår belysning med stor precision.

 DateTime nu = rtc.now(); //Samlar den aktuella tiden
int hh = nu.timme(); //Tillämpar den nuvarande our på en variabel

Efter detta använde vi en serie av om uttalanden för att avgöra om vi ska tända våra lampor. Dessa om uttalanden kontrollera för att se om den aktuella timmen är lika med eller mer än 9 AM och lika med eller mindre än 9 PM, vilket ger oss ett fönster på 9 AM till 9 PM för att ha våra LED-lampor tända.

Om dessa villkor är uppfyllda, koda inom om statement ställer in ljusstyrkan och färgen på våra LED-remsor till de globala variablerna vi ställt in tidigare, tillsammans med att använda en show kommando för att uppdatera LED-remsan. Om villkoren inte är uppfyllda, an annan statement används för att ställa in ljusstyrkan på lysdioderna till 0, vilket effektivt stänger av dem under natten.

 strip.begin(); //Tänder på LED-remsan
strip.show(); //Visar LED-ändringarna från varje slinga

if (hh <= 8) { //Om tiden är lika med eller mindre än 8AM, rensas LED-remsan
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Om tiden är mellan 9:00 och 21:00, tänds lysdioderna
strip.setLjusstyrka (255);
strip.fill (gulVit, 0, 59);
}

if (hh >= 21) { //Om tiden är lika med eller större än 21:00 rensas LED-remsan
strip.clear();
}

Den fullständiga koden

#include //LED Strip-bibliotek
#omfatta
#include //RTC Library
#define LED_PIN 7 // Ställer in vår LED-remsa till stift 7
#define LED_COUNT 60 // Ställer in antalet NeoPixel LED
Adafruit_NeoPixel-remsa (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Deklarerar vårt LED-remsobjekt
uint32_t yellowWhite = remsa. Färg (255, 251, 201); //Skapar en ljus färgvariabel
RTC_DS3231 rtc; //Deklarerar vårt RTC-objekt
void setup() {
Serial.begin (57600); //Börjar vår seriella anslutning
#ifndef ESP8266
while (!Serial); // Vänta tills serieporten ansluts
#endif
om (! rtc.begin()) {
Serial.println("Kunde inte hitta RTC");
Serial.flush();
medan (1) fördröjning (10);
} //Detta testar för att säkerställa att vår RTC är ansluten
}
void loop() {
DateTime nu = rtc.now(); //Samlar den aktuella tiden
int hh = nu.timme(); //Tillämpar den nuvarande our på en variabel
strip.begin(); //Tänder på LED-remsan
strip.show(); //Visar LED-ändringarna från varje slinga
if (hh <= 8) { //Om tiden är lika med eller mindre än 8AM, rensas LED-remsan
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Om tiden är mellan 9:00 och 21:00, tänds lysdioderna
strip.setLjusstyrka (255);
strip.fill (gulVit, 0, 59);
}
if (hh >= 21) { //Om tiden är lika med eller större än 21:00 rensas LED-remsan
strip.clear();
}
fördröjning (1000); //Fördröjning för stabilitet
}

Montering av din LED-akvariebelysning

Vår LED-remsa kom med en praktisk självhäftande remsa fäst, vilket gör det otroligt enkelt att fästa den på huven/locket på vår tank. Samma resultat kan uppnås med dubbelhäftande tejp eller superlim, men du måste vara noga med att se till att limmet du väljer kommer att klara av kondensuppbyggnad. Du kan också 3D-skriva ut ett stativ för din nya akvarielampa om din tank inte har ett lock, och ett fodral för de andra komponenterna du har använt.

DIY Arduino Aquarium Lights

Akvarieväxter och fiskar drar nytta av en regelbunden belysningscykel. Även om vårt ljus inte är fullt spektrum, ger det fortfarande mycket av det blå ljuset, gröna ljuset och röda ljuset som dina växter behöver. Det bästa är dock att det här projektet är otroligt prisvärt, enkelt och roligt att ta sig an.

De bästa smarta tillbehören för akvarietankar

Automatisera ditt akvarium genom att investera i smarta tillbehör som minskar behovet av manuellt ingrepp och håller din fisk frisk och glad.

Läs Nästa

Dela med sigTweetE-post
Relaterade ämnen
  • DIY
  • Arduino
  • Led-lampor
  • Smart hem
Om författaren
Samuel L. Garbett (33 artiklar publicerade)

Samuel är en brittisk baserad teknikskribent med en passion för allt som är DIY. Efter att ha startat företag inom områdena webbutveckling och 3D-printing, tillsammans med att ha arbetat som författare i många år, erbjuder Samuel en unik inblick i teknikens värld. Han fokuserar främst på DIY-tekniska projekt, han älskar inget mer än att dela roliga och spännande idéer som du kan prova hemma. Utanför jobbet kan man vanligtvis hitta Samuel när han cyklar, spelar datorspel eller försöker desperat kommunicera med sin krabba.

Mer från Samuel L. Garbett

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera