Le piante d'acquario hanno bisogno di luce per creare energia attraverso la fotosintesi, mentre molti pesci traggono vantaggio da una normale ciclo di luce, ma come puoi fornire loro l'illuminazione artificiale con gli strumenti elettronici fai-da-te che hai già avere? Costruiamo un sistema di illuminazione per acquari fai-da-te utilizzando un Arduino, un orologio in tempo reale e una striscia LED.

Utilizzo di una luce per acquario a LED

Prima di iniziare, vale la pena notare che i LED che stiamo utilizzando in questo progetto non sono LED a spettro completo che imitano la luce del giorno. Ciò significa che non forniscono tutte le lunghezze d'onda della luce che sono benefiche per le piante, rendendole inadatto per piante d'acquario con forte fabbisogno di luce e sprecando una piccola quantità di energia prodotta dal LED.

Detto questo, per acquari piantumati con requisiti di scarsa illuminazione, un'illuminazione a LED come questa può essere eccellente scelta che offre una crescita delle piante più rapida e sana senza il costo che deriva da molte luci per acquari prodotti; semplicemente non otterrai la stessa potenza.

instagram viewer

Non sono solo le piante del tuo acquario a beneficiare dell'illuminazione a LED: molte specie di pesci godono di un ciclo di luce regolare imita il giorno e la notte per preservare il loro ritmo circadiano, consentendo loro di riposare, cercare cibo ed essere attivi come farebbero la selvaggia.

Per costruire un sistema di illuminazione a LED che alimenta un ciclo giorno-notte per i pesci e le piante del tuo acquario, utilizzeremo un Arduino, un orologio in tempo reale (RTC) e una striscia LED, che può essere utilizzata per un'ampia varietà di Progetti di illuminazione a LED Arduino.

Di che cosa hai bisogno?

Hai solo bisogno di una manciata di parti per completare questa build:

  • 1x Microcontrollore Arduino con pin SDA/SCL (Uno, Leonardo, Micro, ecc.; stiamo usando un Pro Micro)
  • 1x modulo DS3231 RTC
  • 1x striscia LED RGB NeoPixel WS2812/WS2812B con grado di protezione IP65 o superiore (stiamo utilizzando una striscia WS2812 da 60 LED da 1 metro che è stata sigillata con silicone; potresti trarre vantaggio dall'utilizzo di più LED se hai un serbatoio da 20+ galloni)
  • 1x adattatore di alimentazione da CA a CC da 12 V con connettore cilindrico femmina
  • 1x condensatore da 1000uF (opzionale)
  • Fili e pezzi termorestringenti assortiti
  • Supercolla/nastro biadesivo
  • Filamento per stampante 3D (opzionale)

Avrai anche bisogno di alcuni strumenti per completare questo progetto.

  • Un saldatore
  • Tronchesi/spelafili
  • Una pistola termica
  • Una stampante 3D (opzionale)

Cablaggio della configurazione della luce LED dell'acquario fai-da-te

Cablare l'illuminazione dell'acquario fai-da-te è semplice, bastano pochi collegamenti da effettuare prima di poter iniziare a codificare il tuo progetto. Il diagramma sopra mostra tutte le connessioni che devi effettuare, ma le abbiamo suddivise nelle sezioni seguenti.

Cablaggio dell'orologio in tempo reale

Il DS3231 RTC in questo progetto funge da timer per l'illuminazione a LED nel nostro acquario. Questo modulo ha quattro pin che useremo: SCL, SDA, VCC e GND, che possono essere tutti collegati direttamente al nostro Arduino Pro Micro.

  • SCL a 3 su Arduino
  • SDA a 2 su Arduino
  • VCC a 5V su Arduino
  • GND a GND su Arduino

Cablaggio della striscia LED

Il cablaggio della striscia LED è più complicato dell'RTC, poiché è probabile che i LED siano a una certa distanza dall'Arduino ed è necessario utilizzare un alimentatore separato per ottenere la piena luminosità dai tuoi LED. Il diagramma sopra mostra come puoi collegare la tua striscia LED NeoPixel al tuo Arduino e alla fonte di alimentazione per il meglio risultati.

  • DIN a Pin digitale 7 su Arduino
  • Da GND a GND su Arduino e terminale di alimentazione negativo (-).
  • VCC/5V+/12V al terminale di alimentazione positivo (+).
  • Si consiglia vivamente di utilizzare un condensatore da 1000 uF sui terminali negativo (-) e positivo (+) della sorgente di alimentazione per evitare danni ai LED

Oltre a collegare la nostra striscia LED al nostro Arduino e alla fonte di alimentazione 12V, modificheremo anche il nostro Clona NeoPixel per creare tre strisce LED più piccole che verranno collegate a catena con un lungo cavo. Utilizzeremo un cavo a tre conduttori isolato per questo, insieme a un termorestringente per sigillare i giunti. La nostra striscia LED è dotata di connettori JST su ciascuna estremità, fornendoci un modo conveniente per consentire di staccare la striscia dal nostro Arduino.

Codifica delle luci NeoPixel per acquario Arduino fai-da-te

L'elemento di codifica di questo progetto è più complicato del cablaggio. Puoi iniziare con un progetto Arduino vuoto di base, poiché non avremo bisogno di nulla al di fuori delle funzioni che ne derivano.

Aggiunta delle biblioteche

Prima di aggiungere qualsiasi codice, è necessario installare alcune librerie e tutte queste possono essere trovate all'interno di Arduino IDE Library Manager.

  • Filo.h: Questa libreria viene fornita con l'IDE Arduino e ti consente di comunicare con i componenti I2C, come il nostro RTC.
  • Adafruit_NeoPixel.h: Questa libreria aggiunge funzioni/classi per controllare i LED NeoPixel, ma funziona altrettanto bene con la nostra normale striscia LED WS2812.
  • RTClib.h: Questa libreria ci consente di controllare il nostro modulo RTC DS3231.
#includere  //Libreria di strisce LED
#includere
#includere //Libreria RTC

Aggiunta di variabili globali (opzionale)

Abbiamo aggiunto variabili globali al nostro codice in modo da poter modificare il comportamento della nostra illuminazione con pulsanti e altri input in progetti futuri. Questo non è essenziale, ma semplificherà la modifica del codice quando sarà necessario apportare modifiche. Abbiamo aggiunto variabili per la luminosità e la tonalità del LED, insieme a una variabile per memorizzare il colore della nostra striscia LED.

Dichiarazione e inizializzazione di oggetti LED Strip/RTC

Successivamente, dobbiamo dichiarare la nostra striscia LED e RTC come oggetti che possono essere utilizzati dal nostro Arduino, quindi inizializzarli all'interno del nostro ciclo di installazione.

Le nostre strisce LED possono essere dichiarate definendo prima il pin utilizzato e impostando il numero di LED sulla striscia, ma poi è possibile utilizzare le righe seguenti per fare la dichiarazione stessa.

#define LED_PIN 7 // Imposta la nostra striscia LED sul pin 7
#define LED_COUNT 60 // Imposta il conteggio dei LED NeoPixel
Striscia Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Dichiara il nostro oggetto striscia LED

L'RTC è più facile da dichiarare e devi solo usare la riga seguente per farlo funzionare; tutte le impostazioni importanti vengono applicate per impostazione predefinita.

RTC_DS3231 rtc;

Una volta completato, dobbiamo solo inizializzare il nostro RTC usando il codice seguente nella nostra classe di installazione.

 Inizio.serie (57600); //Inizia la nostra connessione seriale

#ifndef ESP8266
mentre (! Seriale); // Attendi la connessione della porta seriale
#finisci se

Se (! rtc.begin()) {
Serial.println("Impossibile trovare RTC");
Serial.flush();
mentre (1) ritardo (10);
} //Questo verifica per assicurarsi che il nostro RTC sia connesso

Costruire il ciclo del timer

Ora è il momento di costruire il circuito principale per le strisce LED dell'acquario. Questo viene gestito all'interno del ciclo principale fornito con il tuo progetto Arduino vuoto e questo significa che verrà eseguito continuamente.

Iniziamo il ciclo controllando l'ora corrente con il nostro orologio in tempo reale e impostando una variabile per memorizzarla, assicurandoci che la luce del giorno sia fornita durante il giorno. Una volta che abbiamo un Appuntamento variabile con cui giocare, possiamo assegnare l'ora e il minuto correnti a variabili separate, consentendoci di controllare la nostra illuminazione con grande precisione.

 DateTime ora = rtc.now(); //Raccoglie l'ora corrente
int hh = ora.ora(); //Applica la corrente our a una variabile

Successivamente, abbiamo utilizzato una serie di Se dichiarazioni per determinare se accendere le nostre luci. Questi Se le dichiarazioni controllano se l'ora corrente è uguale o superiore alle 9:00 e uguale o inferiore alle 21:00, dandoci una finestra dalle 9:00 alle 21:00 per accendere le nostre luci a LED.

Se queste condizioni sono soddisfatte, codificare all'interno del Se imposta la luminosità e il colore delle nostre strisce LED sulle variabili globali impostate in precedenza, insieme all'utilizzo di a mostrare comando per aggiornare la striscia LED. Se le condizioni non sono soddisfatte, an altro viene utilizzata per impostare la luminosità dei LED a 0, spegnendoli di fatto durante la notte.

 strip.begin(); //Accende la striscia LED
strip.show(); //Mostra i cambiamenti del LED da ogni ciclo

if (hh <= 8) { //Se l'ora è uguale o inferiore alle 8 del mattino, la striscia LED viene cancellata
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Se l'ora è compresa tra le 9:00 e le 21:00, i LED si accendono
strip.setBrightness (255);
strip.fill (gialloBianco, 0, 59);
}

if (hh >= 21) { //Se l'ora è uguale o maggiore di 21:00, la striscia LED viene cancellata
strip.clear();
}

Il codice completo

#include //Libreria di strisce LED
#includere
#include //Libreria RTC
#define LED_PIN 7 // Imposta la nostra striscia LED sul pin 7
#define LED_COUNT 60 // Imposta il conteggio dei LED NeoPixel
Striscia Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Dichiara il nostro oggetto striscia LED
uint32_t gialloBianco = striscia. Colore (255, 251, 201); //Crea una variabile di colore chiaro
RTC_DS3231 rtc; //Dichiara il nostro oggetto RTC
configurazione vuota() {
Inizio.serie (57600); //Inizia la nostra connessione seriale
#ifndef ESP8266
mentre (! Seriale); // Attendi la connessione della porta seriale
#finisci se
Se (! rtc.begin()) {
Serial.println("Impossibile trovare RTC");
Serial.flush();
mentre (1) ritardo (10);
} //Questo verifica per assicurarsi che il nostro RTC sia connesso
}
ciclo vuoto() {
DateTime ora = rtc.now(); //Raccoglie l'ora corrente
int hh = ora.ora(); //Applica la corrente our a una variabile
strip.begin(); //Accende la striscia LED
strip.show(); //Mostra i cambiamenti del LED da ogni ciclo
if (hh <= 8) { //Se l'ora è uguale o inferiore alle 8 del mattino, la striscia LED viene cancellata
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Se l'ora è compresa tra le 9:00 e le 21:00, i LED si accendono
strip.setBrightness (255);
strip.fill (gialloBianco, 0, 59);
}
if (hh >= 21) { //Se l'ora è uguale o maggiore di 21:00, la striscia LED viene cancellata
strip.clear();
}
ritardo (1000); //Ritardo per la stabilità
}

Adattare l'illuminazione dell'acquario a LED

La nostra striscia LED è stata fornita con una pratica striscia adesiva attaccata, che rende incredibilmente facile fissarla al cofano/coperchio del nostro serbatoio. Lo stesso risultato può essere ottenuto con nastro biadesivo o supercolla, ma è necessario prestare attenzione per garantire che l'adesivo scelto sia in grado di sopravvivere all'accumulo di condensa. Potresti anche stampare in 3D un supporto per la tua nuova luce per acquario se il tuo acquario non ha un coperchio e una custodia per gli altri componenti che hai utilizzato.

Luci per acquario Arduino fai-da-te

Le piante e i pesci d'acquario beneficiano di un ciclo di illuminazione regolare. Sebbene la nostra luce non sia a spettro completo, fornisce comunque gran parte della luce blu, della luce verde e della luce rossa di cui le tue piante hanno bisogno. La cosa migliore, tuttavia, è che questo progetto è incredibilmente conveniente, semplice e divertente da affrontare.

I migliori accessori per serbatoi per acquari intelligenti

Automatizza il tuo acquario investendo in accessori intelligenti che ridurranno la necessità di interventi manuali, mantenendo i tuoi pesci sani e felici.

Leggi Avanti

CondividereTwittaE-mail
Argomenti correlati
  • Fai da te
  • Arduino
  • Luci a LED
  • Casa intelligente
Circa l'autore
Samuel L. Garbetto (33 articoli pubblicati)

Samuel è uno scrittore di tecnologia con sede nel Regno Unito con una passione per tutto ciò che è fai-da-te. Avendo avviato attività nei settori dello sviluppo web e della stampa 3D, oltre a lavorare come scrittore per molti anni, Samuel offre una visione unica del mondo della tecnologia. Concentrandosi principalmente su progetti tecnologici fai-da-te, non ama altro che condividere idee divertenti ed eccitanti che puoi provare a casa. Al di fuori del lavoro, di solito si può trovare Samuel in bicicletta, giocare ai videogiochi per PC o tentare disperatamente di comunicare con il suo granchio domestico.

Altro da Samuel L. Garbetto

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti