Sommario:

Progetti fai da te - Il mio controller per acquario: 4 passaggi
Progetti fai da te - Il mio controller per acquario: 4 passaggi

Video: Progetti fai da te - Il mio controller per acquario: 4 passaggi

Video: Progetti fai da te - Il mio controller per acquario: 4 passaggi
Video: Mobile per acquario fai da te PART. 1 2024, Luglio
Anonim
Progetti fai da te - Il mio controller per acquario
Progetti fai da te - Il mio controller per acquario
Progetti fai da te - Il mio controller per acquario
Progetti fai da te - Il mio controller per acquario
Progetti fai da te - Il mio controller per acquario
Progetti fai da te - Il mio controller per acquario

Este foi o projecto mais complexo realizado at agora no nosso canal, este consiste em realizar um "upgrade" a um aquário que sofreu um restauro já há algum tempo, per isso colocamos sensors de temperature, de nível de água e de fluxo de água, além disto tornamos a iluminação mais económica come também um controlo da temperatura da água do aquário mais eficiente e estável.

O controlo e monitorização é realizada através de um Arduino MEGA, que recebe os sinais vindos dos sensors instalados no aquário, estes depois se analisados sendo posteriormente Reflectidas acções de forma a corrigir os parâmetros os parâmetrosou de temperature da ávijavi fora do padronizados.

Cada um dos sensori utilizados têm características especificas, pois têm funções muito diferentes. Il sensore di temperatura è costituito per un NTC (coefficiente di temperatura negativo), o se si, una sua resistenza diminuisce con l'aumento della temperatura (Ver Gráfico acima). Questo tipo di sensore è utilizzato come pinos de entrada analógica do Arduino, através de uma montagem divisore de tensão variando a tensão nesse pino entre 0 e 5V (Ver imagem acima).

O sensor de flusso tem a função de medir a quantidade de água que passa pelas tubagens do filter do aquário, verificando assim se a o filter est a funcionar correctamente. Questo è costituito da una ventosa ventosa, onde estão fixos pequenos ímanes ao longo do seu rotor, que activam magneticamente um sensor interno designado for Hall Switch Effect (Ver imagem acima).

Este ao sentir a passagem dos ímanes produz um sinal de pulso de onda quadrada, que varia a sua frequência consoante a rotação do rotor, ou seja, consoante a quantidade de agua que passa pelo sensor, assim este deve ser ligado aos pinos de entrada digital fare Arduino.

I sensori di nível o bóias de nível tem come função verificar o nível de água do aquário, pois come a água do aquário é ligeiramente aquecida sta tendendo em evaporar, assim estes activam avisos sempre que o nível está se a baja

No aquario stao montados 2 destes sensors que se comportam com interruptores, questo devem ser ligados em series, pois esta montagem apenas must activar os avisos caso ambos os Sensors estejam activados, diminuindo assim a possibilidade de erro (Ver imagem acima).

A illuminação do aquário foi alterada para LED, sendo que cada LED tem uma potência de cerca de 10W e são adequados para a aquário de plantas, normalmente designato per Full Spectrum, o seja, produce l'illuminazione em todo o espectro de luz que as plantas.

Per quanto riguarda l'utilizzo di questo tipo di illuminazione, questo può essere fatto o meno LED serem bastante pequenos em relação à sua potência e assim mais económicos, alem disto também iluminam apenas numa direction não sendo necessários Reflectores (Ver image Reflectores).

Por fim, instalamos 2ventoinhas de PC que têm a função de arrefecer a água do aquário principalmente quando a temperatura ambiente está elevada o que acontece normalmente durante o Verão, este sistema é muito importante pois a temperatura da água é dos parâmetros mais importantes num aquário, estas ventoinhas funcionam a 12V DC e devem ser o mais silenciosas possivel.

Caso queiram saber mais sobre estes sensors vejam as suas datasheet (Ver ficheiros abaixo) e os nossos tutoriais onde explicamos detalhadamente o seu funcionamento e características.

Sensore di temperatura:

www.instructables.com/id/Arduino-Tutorial-…

Sensore di flusso:

www.instructables.com/id/Arduino-Tutorial-…

Fase 1: Preparare l'Acquario:

Image
Image
Preparare Acquario
Preparare Acquario
Preparare Acquario
Preparare Acquario

Começamos sempre os nossos projectos desenhando e testando o circuitos através de uma pequena Breadboard e os componentis necessários para a sua realização, só depois destes testes terminatodos e confirmada a sua funcionalidade, partimos para a concretização final (Ver circuito acima).

Materiale necessario:

  • 2x Ventoin PC 12V DC 80mm;
  • 4x LED SMD 10W a spettro completo;
  • 4x Dissipatori di calore LED;
  • 6x LED Amarelos da 1W;
  • 4x LED Azzurro da 1W;
  • 1x PCB da 4x4 Cm;
  • 2x Bóias de nível;
  • 1x Sensore di Temperatura NTC 10KOhm;
  • 1x sensore di flusso.

Installazione del sensore di flusso:

O sensor de fluxo é muito fácil de instalar pois apenas temos que coloca-lo numa das tubagem de entrada ou saída de água do filtro do aquário, no entanto, utilizamos umas ligações rápidas para mangueiras tornando assim mais fácil do sensor a des montant fácil a limpeza dos tubos do filtro (ver imagem acima).

Instalação das Bóias de nível:

As bóias de nível são instaladas em cantos opostos do aquário de formas a que a o sistemas seja menos errático. Le versioni montate sono particolarmente supportate da modelli o programmi di progettazione tecnica SolidWorks (Versione immagini acima) e materiali su sfondo di Impressione 3D (Versione grafica ridotta). Estes suportes são facilmente instaláveis no aquário e são ajustáveis para que seja possível colocar as bóias de nível na altura pretendida (Ver ficheiros STL abaixo).

Instalação das Ventoinhas:

L'installazione della ventosa nel sistema di refrigerazione dell'acqua, optamo per la realizzazione di 2aberture alla ricerca di 80 mm a partire dall'acqua, o seja, con mesmo das ventoinhas de PC utilizadas. Estas Ventoinhas funcionam a 12V DC, são muito silenciosas e quando accionadas proporcionam a circulação de ar junto à superfície da água, que conseguentemente faz baixar a temperatura da água do aquário.

Estas ventoinhas e todo o system eléctrico ficam completamente ocultos após serem colocadas as suas coberturas, também desenhadas no SolidWorks (Ver Imagens acima) e produzidas attravés de Impressão 3D (Ver ficheiros abaixo).

Installazione dell'illuminazione di presenza:

Un'illuminazione di presenza o Luz Lunar è realizzata su un altro PCB (Ver imagem acima) onde essere montati os LED di 1Wamarelos e azuis. Esta PCB foi desenhada através de um programa de PCB Design (EasyEDA), onde é possível imprimir o circuito em acetato, também deixamos-vos o desenho do PCB pronto a imprimir ou para importar, sendo possível altera-lo (Ver ficheiros abaixo).

Una produzione di questo PCB per la realizzazione di un metodo chimico che consiste in 3 processi, che è o un processo di rivelazione, o un processo di corrosione e o un processo di limatura e acabamento. Questo metodo è stato utilizzato per alcuni progetti recenti, per cui non è stato possibile eliminare i collegamenti dei progetti successivi per cui è descritto come eseguire i processi in modo dettagliato.

www.instructables.com/id/DIY-Projects-My-U…

www.instructables.com/id/DIY-Projects-My-A…

Esta illuminação tem apenas uma finaldade estética, sendo formada por 2circuitos de LED que podem ser accionados individualmente ou em conjunto, tendo a função de iluminar o aquário quando a iluminação principal está desligada. No entanto, para que fosse um pouco mais divertido, controlamos esta iluminação consoante as fases da Lua, ligando e desligando os 2 circuito à medida que essas fases vão alterando (Ver imagem acima).

Instalação de Iluminação de principal:

Un'illuminazione principale è composta da 4 LEDSMD di 10WFull Spectrum ideale per l'illuminazione delle piante. È possibile controllare individualmente la fonte di alimentazione necessaria con una potenza adeguata per il tipo di LED, quindi è sufficiente che sia potente ed esigente con la fonte di alimentazione.

Attenzione:

Non è necessario LED direttamente alla fonte di alimentazione, quindi deve essere tenuto conto di una tensione di alimentazione di LED, di alimentazione di una fonte di alimentazione per quanto riguarda la tensione di funzionamento di LED che si cerca di 9V e si utilizza una fonte di alimentazione di 12V DC colocamos em serie uma resistência de potência ou dissipadora (Ver imagem abaixo).

Da mesma forma que as ventoinhas ficam ocultas todos os LED e o seu rispettivo circuito eléctrico através das mesmas coberturas ficando mais estético e seguro, pois o circuito eléctrico fica completamente inacessível (Ver ficheiros abaixo).

Passaggio 2: Caixa De LED Acquario:

Caixa De LED Acquario
Caixa De LED Acquario
Caixa De LED Acquario
Caixa De LED Acquario
Caixa De LED Acquario
Caixa De LED Acquario

De forma a distribuir as alimentações dos sistemas do iluminação de ventilação do nosso aquário a partir de um único local, construímos um circuito onde colocámos todas as resistências dos LED dos sistemas de iluminação principal e de presença (Ver circuito acima).

Materiale necessario:

  • 1x alimentatore IP67 12V 50W;
  • 4x regolatore di velocità PWM ZS-X4A;
  • 4x Resistenze 10 Ohm 10W;
  • 1x dissipatore di calore;
  • 1x ventola 40mm 12V 0, 1A;
  • 1x interruttore di 2 posizioni;
  • 1x PCB da 13x10 Cm;
  • 2x Resistenze 100 Ohm 2W;
  • 4x Morsettiera de 2;
  • 1x Morsettiera de 3;
  • 1x Morsettiera de 4.

La resistenza alla potenza di LED SMD da 10 W, è collegata all'attrezzatura del controller PWM ZS-X4A e consente di controllare l'intensità dell'illuminazione a seconda della resistenza variabile che altera la frequenza del pulsante in uscita (Versione grafica).

No entanto, as resistências de potência tendem em aquecerem um pouco sendo necessário colocar um dissipador de calor e uma pequena ventoinha de PC de 40mm, esta funciona 12V DC sendo alimentada através do próprio circuito eléctrico, podendo ser interruptor ser controlada por próprio caixa fare circuito.

Alem dalla resistenza di LED SMD, anche per quanto riguarda le resistenze da 100 Ohm e il sistema di illuminazione di presenza, questa è la stessa funzione come precedente, non c'è una potenza di ricerca di 2W (Versione massima).

A PCB deste circuito foi também desenhada através de um programa de PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver ficheiros abaixo), sendo também materializada através de método químico (Ver imagens acima).

Una cosa simile per questo PCB per la progettazione di SolidWorks (Ver Imagens acima) e também materialized attraves de Impressão 3D. Esta está preparada para a instalação das ventoinha de arrefecimento das resistências de potência e o rispettivo dissipador de calor (Ver ficheiros abaixo).

Passaggio 3: Controlador Do Aquário:

Controllore dell'Acquario
Controllore dell'Acquario
Controllore dell'Acquario
Controllore dell'Acquario
Controllore dell'Acquario
Controllore dell'Acquario

Vamos então ao nosso controlador, este equipamento irá controlar and monitorizar os systems de illuminação principal e de presença, como também a temperature do aquário. Questo è costituito da un Arduino MEGA, che riceve i sensori distribuiti nell'acqua, attivando posteriormente come ventole di refrigerazione dell'acqua e sistemi di illuminazione, in base a moduli di valore, valori di valore per tutti gli altri, este activa avisos luminosos e sonoros (Ver circuito acima).

Materiale necessario:

  • 1x Arduino MEGA;
  • 1x LCD 1602;
  • 1x RTC DS1307;
  • 1x batteria da 3V CR2032;
  • 5x Botes de pressão;
  • 1x Resistenza variabile da 10K Ohm;
  • 1x Resistenza 10K Ohm;
  • 1x Resistenza 220 Ohm;
  • 6x Resistenza 1K Ohm;
  • 1x PCB da 15x10 Cm;
  • 1x LED Azul 1W;
  • 1x LED Amarelo 1W;
  • 1x LED Vermelho 1W;
  • 3x Resistenza 100 Ohm;
  • 1x Modulo di 2 Relé;
  • 1x Modulo di 4 Relé;
  • 1x Modulo de 1 Relé;
  • 2x Morsettiera de 2;
  • 1x Morsettiera de 3;
  • 1x Morsettiera de 4;
  • Presa per intestazione 5x maschio e femmina.

Per la costruzione di questo equipaggiamento come utilizados vari componenti che si trovano in tutti i tutorial prima non c'è nessun canale, come è o LCD 1602 per visualizzare un'informazione del menu, come le sue pagine, o come dati guardati e inseriti senza controllore, ma solo su RTC DS1307 per ora e dati ao Arduino MEGA, questo è il tipo di aggiornamento CR2032 per non aver bisogno di informazioni, garantindo che un mesmo sem alimentazione o Arduino non è stato creato per ora e dati aggiornati.

Arduino MEGA:

O Arduino MEGA è uma placa com um micro-controlador que possui 54 pinos de entrada e saída de sinal digital, 14 dos quais podem ser usados come saídasPWM (Pulse-Width Modulation) e 16entradas de sinal analógico. Tutti i tipi di sensori possono essere utilizzati per vari tipi di sensori tra i quali i sensori non sono presenti nell'acquario. Tutti i sensori sono in grado di controllare vari tipi di componenti come moduli di relè, LCD e LED.

Installazione del LCD 1602:

Per legare o LCD 1602 teremos de ter em atenção à configuração dos seus pinos durante il suo montaggio, sendo que cada pino tem uma função especifica (Ver legenda acima). Esses pinos podem ser agrupados in 3 group, o grupo dos Pinos de Alimentação, o de Pinos de Comunicação e o de Pinos de Informação.

Pinos de Alimentação:

  • terra;
  • Vcc;
  • V0;
  • LED - o A (Anodo);
  • LED + o K (Catodo).

O Pino V0 tem a função de ajustar o contraste dos caracteres, para podermos controlar esse ajuste ligamos este pino a uma resistência variável de 10KΩ, que funcionar como um divisor de tensão alterando assim a tensão entre 0 e 5V (Ver imagem acima).

Os pinos de alimentação do LED de luz de fundo do LCD (A e K) sa também ligdos aos pinos de Gnd e +5V do Arduino MEGA, no entanto, ligamos em série uma resistência de 220Ω para que o brilho não seja demasiado intenso, não allowindo que os LED internos do LCD se danifiquem.

Pinos de Comunicação:

  • RS (Selezione registro);
  • R/W (Lettura/Scrittura);
  • E (Abilita).

Nos pinos de comunicação apenas se deve ter alguma atenção ao pino R/W, pois este deve estar ligado a Gnd, para que seja permitido escrever no LCD aparecendo assim o caracteres, caso contrario podemos estar a ler o dados guardados na memoria interna do LCD.

Pinos de Informação:

  • D0;
  • D1;
  • D2;
  • D3;
  • D4;
  • D5;
  • D6;
  • D7.

Neste projecto utilizamos apenas 4 dos 8 possíveis pinos de informação, pois utilizando a biblioteca LiquidCrystal.h no código permite o Arduino enviar os dados para o LCD dividido em 2 partes, ou seja, são necessário metade dos pinos fun realizar a mesma o LCD apnas necessita di informazioni dettagliate da D4 a D7.

Caso queiram saber mais sobre o o LCD 1602 vejam o nosso tutorial onde explicamos o seu funcionamento mais pormenorizadamente.https://www.instructables.com/id/Arduino-Tutorial-LCD-Temperature-Sensor/

Installazione da RTC DS1307:

Questo componente tem come função fornecer a informação de data e hora de forma precisa e constante, ou seja, mesmo quando a alimentação externa é desligada por algum motivo esta mantém os dados de data e hora sempre attualizados nunca perdendo a informação.

Neste projecto foi utilizada uma RTC DS1307, que contem 2 linhas de pinos de alimentação e de comunicação (Ver legenda acima), no entanto, iremos utilizar a linha com menos pinos, pois apenas são must os pinos e SCL, SDA.

Pinos de Alimentação:

  • terra;
  • Vcc;
  • pipistrello.

Relação ao pino Bat apesar de não ser um pino de alimentação coloca-mos-o neste grupo, pois este pino está ligado direttamente a bateria do tipo botãoCR2032 da RTC che serve de alimentação interna da placa, sendo este pino muito utilizado para a monitorização da carga da bateria.

Pinos de Comunicação:

  • SCL;
  • SDA;
  • DS;
  • MQ.

Tutti i pinos de comunicaçãoSCL e SDA da placa RTC fazem parte de um sistema de comunicação chamado I2C (Ver diagrama acima), onde é possibile comunicar com um ou mais equipamentos através de apenas duas únicas linhas, send o SDA ou SERIAL DATA TRANSMETTO e recebe a informação eo SCL ou SERIAL CLOCK o responsável por sabre quando é que os equipamentos têm que receber ou enviar a informação, ficando assim todos sincronizados.

Caso queiram saber mais sobre a RTC DS1307 vejam o nosso tutorial onde explicamos o seu funcionamento mais pormenorizadamente.

www.instructables.com/id/Arduino-Tutorial-Clock-LCD/

Alem dos componenti precedenti, che são os mais importanti, são utilizados também 4botões de pressão que allowem ao utilizador navegar pelas páginas do menu podendo visualizzare e alterare un'informazione fornecida per tutti i sensori o no Arduino, estes botões podem per le funzioni differenti dipendenza dalla pagina e tipo di informazione visualizzata.

A pesar de serem completamente diferentes dos botões de pressão, as bóias de nível funcionam electricamente de forma idêntica, pois estas quando accionadas ligam magneticamente um interruptor.

Caso queiram saber mais sobre a montagem e funcionamento dos botões de pressão vejam o nosso tutorial onde explicamos mais pormenorizadamente.

www.instructables.com/id/Arduino-Tutorial-…

Quando foi elaborado circuito da PCB do nosso controlador foi considerada a montagem do divisore de tensão para o sensor de temperatura, permitindo que o Arduino possa realizar a leitura deste sensor. Segundo come specifiche del fabbricante o del sensore di temperatura è di 10KΩ, logo a resistência que escolhemos para o divisore di tensione também deve ser de 10KΩ.

O ponto comum deste divisor de tensão é ligado a um dos pinos analógicos do Arduino Mega (Ver imagem acima), neste caso escolhemos oo pino A0, assim à medida que a temperatura altera a tensão nesse pino analógico também altera entre 0 e 5V, sendo assim possível ao Arduino realizar essa leitura.

Caso queiram sabre mais sobre a montagem e funcionamento do sensor de temperatura vejam o nosso tutorial onde explicamos mais pormenorizadamente.

www.instructables.com/id/Arduino-Tutorial-…

O controlador tem 3avisos luminosos que significam diferentes acontecimentos, o LED de cor azul indica que a temperatura da água está abaixo da temperatura mínima seleccionada, o LED de cor vermelha que indica que a temperatura está acima da temperatura máxima seleccionada e por fim o cor amarela que indica que o fluxo de agua do filtro do aquário está a abaixo do seleccionado, sendo todos estes ligados a pinos de saída de sinal digital do Arduino MEGA.

Per l'utilizzo di 3 moduli di relazioni diverse, l'invio di 1 risultato (Ventoinhas de arrefecimento), l'ultimo di 2rilievi (Illuminazione di presenza) e l'ultimo di 4riferimento (Illuminazione principale). São são indicados para montagens com o Arduino tendo a particolaridade de serem actives não com a saída de sinal digital do Arduino em nível alto mais sim em nível baixo.

A PCB deste circuito foi também desenhada através de um programa de PCB Design (EasyEDA) onde podemos imprimir e alterar o circuito (Ver ficheiros abaixo), sendo também materializada através de método químico (Ver imagem acima).

Una soluzione per questo PCB per la progettazione di SolidWorks (Ver Imagens acima) e também prodotti attraverso Impressão 3D. Esta divide-se em 3 partes, assim a parte frontal é onde estão indicações das ligações dos nossos sensors ao controlador, a parte intermédia que é onde está montada e fixa a nossa PCB com o Arduino MEGA o LCD ea RTC, por fim a parte traseira onde se encontram todos os módulos de relés tendo abertura para a passaggiom e ligação das rispettivas cablagens cablagens (Ver ficheiros abaixo).

Fase 4: Codice:

Codice
Codice
Codice
Codice
Codice
Codice
Codice
Codice

Agora se nos falta programar o nosso controlador do aquário, para isso ligamos o cabo USB o nosso controlador e carregamos o rispettivo codice Arduino MEGA (Ver ficheiro abaixo).

Mas antes, vamos explicar resumidamente o nosso código, sendo que é neste que vamos colocar as diverse funções necessarie per elaborare un menu con diverse pagine e consecutivamente fare riferimento a diverse informazioni.

Assim começamos lugar deve ser elaborato um pequeno esquema de blocos com a estrutura de páginas e funções que o nosso equipamento terá (Ver esquema acima), sendo assim mais fácil elaborar o nosso código e caso seja necessário alterar sabemo corrigir- incontriamo.

// Correggi una funzione LOOP ripetutamente:

void loop() { //Condizioni per la distanza: if (Menu == 0) { //Correggi la funzione: Pagina_0(); } //Condizioni per la temperatura della temperatura: else if (Menu == 1) { //Correzione della funzione: Pagina_1(); } //Condizioni per la temperatura della temperatura: else if (Menu == 2) { //Correzione della funzione: Pagina_2(); } } //Página 0: void Pagina_0() { //Código referente ás função desta página. } //Página 1: void Pagina_1() { //Código referente ás função desta página. } //Página 2: void Pagina_2() { //Código referente ás função desta página. }

Caso queiram saber mais sobre este tipo de esquema de menu vejam o nosso tutorial onde explicamos come elaborar e programar uma menu no Arduino.

www.instructables.com/id/Arduino-Tutorial-…

Depois de sabermos qual a estrutura do código passamos para as bibliotecas dos componentis que interagem com o Arduino, neste projecto importarmos as bibliotecas LiquidCrystal.h per o LCD 1602, as TimeLib.h, a Wire.hea DS1307RTC.h per placa RTC DS1307, a Thermistor.h para o nosso sensor de temperatura, e por fim a EEPROM.h que nos permite gravar e ler dados gravados na memoria do Arduino, tudo isto at através do gestorer de bibliotecas do software do Arduino.

Come entrare nella biblioteca LiquidCrystal.h, è facile configurare LCD 1602 sendo apenas necessário 2funções para que este funcione Correctamente.

Para escrever no LCD é necessário em primeiro lugar definir o local onde se começará a colocar os caracteres, ou seja, a coluna ea linha, depois imprimimos o texto que queremos tendo em atenção que este LCD apenas tem o text 16colunas esses limitas não aparecerão os caracteres.

//Definire i pin di comunicazione e informazione del display LCD:

LCD a cristalli liquidi ("RS", "E", "D7", "D6", "D5", "D4");

e

void setup(){

//Inizia a comunicare con LCD 16x2: lcd.begin(2, 16); } void loop(){ //Definisce una coluna (em 16) e una linha (em 2) do LCD onde escrever: lcd.setCursor(0, 0); //Escreve no LCD: lcd.print("Temperatura:"); }

A biblioteca thermistor.h permite-nos apenas com uma função configurar este tipo di sensore di temperatura através do código seguinte.

#include "thermistor.h" //Importa una libreria "thermistor"

//Esta função define: THERMISTOR SENSOR (Pino_Sensor, 10000, 3950, 10000); //Pino de entrada do sensor; //Resistência nominale a 25ºC do sensore; //Coefficiente beta do sensore; //Valor da resistência do sensor.

As 3bibliotecas, a TimeLib.h, a Wire.h e a DS1307RTC.h contem comandi, funzioni e referencias criadas specificatamente para trabalhar com a placa RTC.

A biblioteca TimeLib.h activa as funcionalidades de tempo, como variáveis para segundos, minutos, hora, dia, mês, etc, facilitando assim os cálculos dos valores de tempo.

Una biblioteca Wire.h attiva come funzioni di comunicazione tra apparecchiature e sistemi di comunicazione I2C. Os pinos de comunicação deste sistema são differenti nos vários modelos de Arduino, caso queiram saber quais os pinos utilizados vejam o Link "https://www.arduino.cc/en/Reference/Wire".

Por ultimo a biblioteca DS1307RTC.h activa as funcionalidades que allowem a leitura e escrita de dados de tempo guardados na RTC.

ciclo vuoto(){

int h, m, s, D, M, A; // Variáveis para alteração da hora e data. //Definisci tutti i dati: setTime(h, m, s, D, M, A); //Grave na RTC os dati di tempo: RTC.set(now()); //Lê na RTC os dati di tempo: RTC.get(); }

Por fim a biblioteca EEPROM.h que permite gravar e lerdados gravados na memória não volátil do Arduino, sendo possível memorizar valores como por exemplo, hora de ligar iluminação, valores de temperatura máxima e mínima e fluxo de agua mínimo fim memo energiaque Arduino non inviare necessário configurar novamente estes valores ou configurações.

Questo tipo di memoria è diverso da diversi tipi di placas di Arduino, tendendo a diverse capacità, nessun caso con Arduino MEGA (ATmega2560 - 4096 Bytes) per 4KB, assim este terá 4096endereços o posições, onde podemos guardar os nosso dados. No entanto, só podemos guardar nesses endereços dados de 8 bits, ou seja, com um valor até 256 (Ver quadro acima).

Para utilizar a memória EEPROM do Arduino através desta biblioteca, poderemos utilizar os seus principais comandos: Caso queiram ver mais sobre estes e outros comandis desta biblioteca, vejam as sua referencia em "https://www.arduino.cc/en/Reference/ EEPROM"

//Aggiungi i dati alla EEPROM.

int io; //Variável para os endereços da EEPROM; void loop(){ for (int i=0; i<EEPROM.length(); i++){ EEPROM.write(i, 0); //"i" = Endereço onde será escritos 0. } } //---------------------------------- ------------------- //Leggi i dati relativi alla EEPROM. int io; //Variável para os endereços da EEPROM; int valore; //Variável para leitura da EEPROM; void loop(){ Valore = EEPROM.read(i); //"i" = Endereço onde serão lidos os dados. } //------------------- ------ //Aggiungi dati alla EEPROM. int io; //Variável para os endereços da EEPROM; int valore; //Variável para leitura da EEPROM; void loop(){ EEPROM.write(i, Valor); //"i" = Endereço onde serão lidos os dados. }

Caso queiram sabre mais sobre a RTC DS1307 e a memoria EEPROM do Arduino vejam o nosso tutorial onde explicamos pormenorizadamente o as sues funções e características.

www.instructables.com/id/Arduino-Tutorial-…

Para utilizarmos o Sensor de Fluxo não é necessário nenhuma biblioteca, no entanto, temos que recorrer a cálculos de formas a determinar o valor medido pelo sensor. Como este sensor produz um sinal de onde quadrada, que varia a sua frequência consoante a quantidade de agua que passa por ele, teremos de utilizar a função "PulseIn", que conta o tempo em que esse sinal está em nível alto, bastando colocar a palavra "High" eo tempo em que o sinal está em nível baixo com a palavra "Low", no final a soma destes 2 tempos será o tempo total de cada ciclo, no entanto, este valor de tempo é dado em micro-Segundo, oh seja, 1000000µSeg.

Depois basta um código idêntico ao descrito abaixo para que possamos encontrar o valor pretendido, teremos apenas de ter em atenção quais as características do nosso sensor através da sua datasheet pois a razão de Pulsos/(L/min) cadaden sensor pode de ser diferente (Ver calculos acima).

//A rotina de LOOP e executada repetidamente:void loop(){ //Contagem do tempo de duração de cada pulso em nível Alto e nível baixo. Contagem_Total = (pulseIn(Pino_Sensor, HIGH) + pulseIn(Pino_Sensor, LOW)); //Contagem de numero de pulsos por secondo (1Seg = 1000000µSeg). Calculo_Fluxo = 1000000/Contagem_Total; //Multiplicação de (Num. Total de pulsos/Seg)x(Pulse Caracteristics), //(Ver na Datasheet Flow Sensor e cálculos acima): Calculo_Fluxo = (Calculo_Fluxo * 2.38); //Converti ml/s in ml/min: Calculo_Fluxo = Calculo_Fluxo * 60; //Converti ml/min em L/min Calculo_Fluxo = Calculo_Fluxo / 1000; if (Calculo_Fluxo < 0){ Calculo_Fluxo = 0; } else{ Calculo_Fluxo = Calculo_Fluxo; }

}

Per controllare il sistema di illuminazione può essere utilizzato come formato per facilitare la configurazione del controllo, nessun caso del sistema di illuminazione principale o utilizzatore a seconda della selezione 2 parametri, un'ora di inizio del ciclo di illuminazione e un numero di ore di ciclo ligado (Ver imagem acima).

Si relação à l'illuminazione di presença o Lunar apenas teremos de seleccionar a data da próxima Lua cheia come o ciclo da lua tem aproximadamente 28 giorni o controlador liga e desliga os LED da l'illuminazione di presença completa alterando una configurazione di 7 em 7 die ea Lua cheia novamente.

Como este artigo já vai um pouco longo, podem encontrar o ficheiro com o código completo e que estamos a utilizar currentmente (Ver ficheiro abaixo).

Procurem os nossos outros projectos e tutorialis acerca do Arduino, onde explicamos diverses montagens e o funcionamento dos seus componentis, já agora visitem o nosso canal no Youtube, Instagram, Facebook ou Twitter.

Abraço e até ao próximo projecto.

Consigliato: