As plantas de aquário precisam de luz para criar energia através da fotossíntese, enquanto muitos peixes se beneficiam de uma ciclo de luz, mas como você pode fornecer iluminação artificial para eles com as ferramentas eletrônicas DIY que você já ter? Vamos construir um sistema de iluminação de aquário DIY usando um Arduino, relógio em tempo real e fita de LED.

Usando uma luz de aquário LED

Antes de começarmos, vale a pena notar que os LEDs que estamos usando neste projeto não são LEDs de espectro completo que imitam a luz do dia. Isso significa que eles não fornecem todos os comprimentos de onda de luz que são benéficos para as plantas, tornando-as inadequado para plantas de aquário com grandes necessidades de luz e desperdiçando uma pequena quantidade de energia produzida pelo LEDs.

Dito isto, para aquários plantados com pouca necessidade de luz, a iluminação LED como esta pode ser uma excelente escolha que oferece um crescimento de plantas mais rápido e saudável sem o custo que vem com muitas luzes de aquário produtos; você simplesmente não terá a mesma potência.

instagram viewer

Não são apenas as plantas do seu aquário que beneficiam da iluminação LED: muitas espécies de peixes desfrutam de um ciclo de luz regular que imita o dia e a noite para preservar seu ritmo circadiano, permitindo que descansem, procurem comida e sejam ativos como seriam em o selvagem.

Para construir um sistema de iluminação LED que alimenta um ciclo dia-noite para os peixes e plantas em seu aquário, estaremos usando um Arduino, um relógio em tempo real (RTC) e uma faixa de LED - como pode ser usado para uma ampla variedade do Projetos de iluminação LED Arduino.

O que você precisa?

Você só precisa de um punhado de peças para concluir esta compilação:

  • 1x microcontrolador arduino com pinos SDA/SCL (Uno, Leonardo, Micro, etc.; estamos usando um Pro Micro)
  • 1 x módulo RTC DS3231
  • 1x fita LED WS2812/WS2812B NeoPixel RGB com classificação IP65 ou superior (estamos usando uma fita WS2812 de 1 metro de 60 LEDs que foi selada com silicone; você pode se beneficiar do uso de mais LEDs se tiver um tanque de mais de 20 galões)
  • 1x 12v AC para adaptador de alimentação DC com conector de barril fêmea
  • 1 x capacitor de 1000uF (opcional)
  • Fios variados e peças termorretráteis
  • Supercola/fita dupla face
  • Filamento de impressora 3D (opcional)

Você também precisará de algumas ferramentas para concluir este projeto.

  • Um ferro de solda
  • Cortadores/descascadores de fios
  • Uma pistola de calor
  • Uma impressora 3D (opcional)

Fiação de sua configuração de luz LED de aquário DIY

A fiação da iluminação do seu aquário DIY é simples, com apenas algumas conexões a serem feitas antes de começar a codificar seu projeto. O diagrama acima mostra todas as conexões que você precisa fazer, mas detalhamos isso nas seções abaixo.

Fiação do relógio em tempo real

O DS3231 RTC neste projeto atua como um temporizador para a iluminação LED em nosso aquário. Este módulo tem quatro pinos que usaremos: SCL, SDA, VCC e GND, todos os quais podem ser conectados diretamente ao nosso Arduino Pro Micro.

  • SCL para 3 no Arduino
  • SDA para 2 no Arduino
  • VCC para 5V no Arduino
  • GND para GND no Arduino

Fiação da faixa de LED

A fiação de sua faixa de LED é mais complicada do que o RTC, pois os LEDs provavelmente estão a alguma distância do Arduino e você precisa usar um adaptador de energia separado para obter o brilho total de seus LEDs. O diagrama acima mostra como você pode conectar sua tira LED NeoPixel ao seu Arduino e fonte de alimentação para o melhor resultados.

  • DIN para pino digital 7 no Arduino
  • GND para GND no Arduino e terminal de fonte de alimentação negativa (-)
  • Terminal de fonte de alimentação VCC/5V+/12V para positivo (+)
  • É altamente recomendável que você use um capacitor de 1000uF nos terminais da fonte de alimentação negativa (-) e positiva (+) para evitar danos aos seus LEDs

Além de conectar nossa fita de LED ao nosso Arduino e fonte de alimentação de 12V, também modificaremos nossa Clone NeoPixel para criar três tiras de LED menores que serão conectadas em uma corrente com um cabo longo. Usaremos um cabo de núcleo triplo isolado para isso, juntamente com termorretrátil para selar as juntas. Nossa tira de LED veio com conectores JST em cada extremidade, fornecendo uma maneira conveniente de tornar possível desconectar a tira do nosso Arduino.

Codificando suas luzes DIY Arduino Aquarium NeoPixel

O elemento de codificação deste projeto é mais complicado do que a fiação. Você pode começar com um projeto básico do Arduino vazio, pois não precisaremos de nada fora das funções que o acompanham.

Adicionando as Bibliotecas

Antes de adicionar qualquer código, precisamos instalar algumas bibliotecas, e todas elas podem ser encontradas no Arduino IDE Library Manager.

  • Fio.h: Esta biblioteca vem com o Arduino IDE e permite que você se comunique com componentes I2C, como nosso RTC.
  • Adafruit_NeoPixel.h: Esta biblioteca adiciona funções/classes para controlar os LEDs NeoPixel, mas funciona tão bem com a nossa fita LED WS2812 normal.
  • RTClib.h: Esta biblioteca nos permite controlar nosso módulo DS3231 RTC.
#incluir  //Biblioteca de tiras de LED
#incluir
#incluir //Biblioteca RTC

Adicionando variáveis ​​globais (opcional)

Adicionamos variáveis ​​globais ao nosso código para que possamos alterar o comportamento de nossa iluminação com botões e outras entradas em projetos futuros. Isso não é essencial, mas facilitará a edição do código quando você precisar fazer alterações. Adicionamos variáveis ​​para brilho e matiz do LED, juntamente com uma variável para armazenar a cor da nossa faixa de LED.

Declarando e Inicializando Objetos de Faixa de LED/RTC

Em seguida, precisamos declarar nossa faixa de LED e RTC como objetos que podem ser usados ​​pelo nosso Arduino, seguido de inicializá-los dentro do nosso loop de configuração.

Nossas tiras de LED podem ser declaradas definindo primeiro o pino que está sendo usado e definindo o número de LEDs na tira, mas depois você pode usar as linhas abaixo para fazer a própria declaração.

#define LED_PIN 7 // Configura nossa faixa de LED para o pino 7
#define LED_COUNT 60 // Define a contagem de LEDs do NeoPixel
Tira Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Declara nosso objeto de tira de LED

O RTC é mais fácil de declarar, e você só precisa usar a linha abaixo para executá-lo; todas as configurações importantes são aplicadas por padrão.

RTC_DS3231 rtc;

Quando isso estiver concluído, precisamos apenas inicializar nosso RTC usando o código a seguir em nossa classe de configuração.

 Serial.begin (57600); //Inicia nossa conexão serial

#ifndef ESP8266
enquanto (!Serial); //Aguarda a conexão da porta serial
#fim se

E se (! rtc.begin()) {
Serial.println("Não foi possível encontrar o RTC");
Serial.flush();
enquanto (1) atraso (10);
} //Isso testa para ter certeza de que nosso RTC está conectado

Construindo o loop do temporizador

Agora, é hora de construir o loop principal para as tiras de LED do seu aquário. Isso é tratado dentro do loop principal que acompanha seu projeto Arduino vazio, e isso significa que ele será executado continuamente.

Começamos o loop verificando a hora atual com nosso relógio de tempo real e definindo uma variável para armazená-la, garantindo que a luz do dia seja fornecida durante o dia. Uma vez que temos um Data hora variável para brincar, podemos atribuir a hora e o minuto atuais a variáveis ​​separadas, permitindo controlar nossa iluminação com grande precisão.

 DateTime agora = rtc.now(); //Coleta a hora atual
int hh = agora.hora(); //Aplica o nosso atual a uma variável

Em seguida, utilizamos uma série de E se declarações para determinar se devemos acender nossas luzes. Esses E se As declarações verificam se a hora atual é igual ou superior a 9h e igual ou inferior a 21h, dando-nos uma janela de 9h às 21h para que nossas luzes LED fiquem acesas.

Se essas condições forem atendidas, codifique dentro do E se A instrução define o brilho e a cor de nossas tiras de LED para as variáveis ​​globais que definimos anteriormente, juntamente com o uso de um exposição comando para atualizar a faixa de LED. Se as condições não forem satisfeitas, um outro A instrução é usada para definir o brilho dos LEDs para 0, desligando-os efetivamente durante a noite.

 strip.begin(); //Liga a fita de LED
strip.show(); //Mostra as mudanças de LED de cada loop

if (hh <= 8) { //Se o horário for igual ou menor que 8h, a faixa de LED é apagada
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Se o horário estiver entre 9h e 21h, os LEDs acendem
strip.setBrightness (255);
strip.fill (amareloBranco, 0, 59);
}

if (hh >= 21) { //Se o horário for igual ou maior que 21h, a faixa de LED é apagada
strip.clear();
}

O código completo

#include //Biblioteca de tiras de LED
#incluir
#include //Biblioteca RTC
#define LED_PIN 7 // Configura nossa faixa de LED para o pino 7
#define LED_COUNT 60 // Define a contagem de LEDs do NeoPixel
Tira Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); //Declara nosso objeto de tira de LED
uint32_t amareloBranco = tira. Cor (255, 251, 201); //Cria uma variável de cor clara
RTC_DS3231 rtc; //Declara nosso objeto RTC
void configuração() {
Serial.begin (57600); //Inicia nossa conexão serial
#ifndef ESP8266
enquanto (!Serial); //Aguarda a conexão da porta serial
#fim se
E se (! rtc.begin()) {
Serial.println("Não foi possível encontrar o RTC");
Serial.flush();
enquanto (1) atraso (10);
} //Isso testa para ter certeza de que nosso RTC está conectado
}
void loop() {
DateTime agora = rtc.now(); //Coleta a hora atual
int hh = agora.hora(); //Aplica o nosso atual a uma variável
strip.begin(); //Liga a fita de LED
strip.show(); //Mostra as mudanças de LED de cada loop
if (hh <= 8) { //Se o horário for igual ou menor que 8h, a faixa de LED é apagada
strip.clear();
}
if ((hh > 8) && (hh < 21)) { //Se o horário estiver entre 9h e 21h, os LEDs acendem
strip.setBrightness (255);
strip.fill (amareloBranco, 0, 59);
}
if (hh >= 21) { //Se o horário for igual ou maior que 21h, a faixa de LED é apagada
strip.clear();
}
atraso (1000); //Atraso para estabilidade
}

Montando sua iluminação LED de aquário

Nossa tira de LED veio com uma fita adesiva prática anexada, tornando incrivelmente fácil anexá-la ao capô/tampa do nosso tanque. O mesmo resultado pode ser obtido com fita dupla face ou supercola, mas você precisa ter cuidado para garantir que o adesivo escolhido seja capaz de sobreviver ao acúmulo de condensação. Você também pode imprimir em 3D um suporte para sua nova luz de aquário se seu tanque não tiver uma tampa e um estojo para os outros componentes que você usou.

Luzes de aquário DIY Arduino

As plantas de aquário e os peixes beneficiam de um ciclo de iluminação regular. Embora nossa luz não seja de espectro total, ela ainda fornece muita luz azul, luz verde e luz vermelha que suas plantas precisam. O melhor, porém, é que este projeto é incrivelmente acessível, simples e divertido de assumir.

Os melhores acessórios para aquários inteligentes

Automatize seu aquário investindo em acessórios inteligentes que reduzirão a necessidade de intervenção manual, mantendo seus peixes saudáveis ​​e felizes.

Leia a seguir

ParticipaçãoTweetE-mail
Tópicos relacionados
  • faça você mesmo
  • Arduino
  • Luzes LED
  • Lar inteligente
Sobre o autor
Samuel L. Garbett (33 Artigos Publicados)

Samuel é um escritor de tecnologia baseado no Reino Unido com uma paixão por todas as coisas de bricolage. Tendo iniciado negócios nas áreas de desenvolvimento web e impressão 3D, além de trabalhar como escritor por muitos anos, Samuel oferece uma visão única do mundo da tecnologia. Concentrando-se principalmente em projetos de tecnologia DIY, ele adora compartilhar ideias divertidas e emocionantes que você pode experimentar em casa. Fora do trabalho, Samuel geralmente pode ser encontrado andando de bicicleta, jogando videogame para PC ou tentando desesperadamente se comunicar com seu caranguejo de estimação.

Mais de Samuel L. Garbett

Assine a nossa newsletter

Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!

Clique aqui para assinar