Projeto - Automação sistema de irrigação e Datalogger.

Boa noite pessoal,

Sou iniciante em arduino e estou fazendo este post aqui para apresentar um projeto que estou tentenado desenvolver.

Objetivo do projeto: Desenvolver um protótipo automatizado para estudo de cultivo indoor com iluminação artificial.

Segue desenho... (Bem mau feito eu sei... rsrsrs)

Resumo do projeto: Estufa de com dimensões de 1,50m x 2,0m com iluminação artificial (LED).

Sensores: Temp. e umidade do ar (DHT22), Sensor de umidade do solo com módulo.

Automação: 2x Solenódes, 1x Bomba, 4x luminárias LED, 1x Arduino UNO, 1x Módulo Rele 8 canais, 1x modulo RTC DS1307, 1x Módulo SD Card, 1x Oled i2c 128x64... Acho que é só isso. kkkkk

Tudo já está ligado e funcionando, falta a lógica.

Resumo da automação:

1 - Todos os Led´s ligam as 5:00am e desligam 20:00pm todos os dias.

2 - Uma vez por dia as 9:00am a solenoide 2 liga e depois de 5s a bomba liga.

    Ficam ligadas por 3min e depois desliga a bomba e depois de 5s a solenoide.

    Depois de 10s a solenoide 1 liga e depois de 5s a bomba liga.

    Ficam ligadas por 1min e depois desliga a bomba e depois de 5s a solenoide 1.

3 - Medidor de umidade do solo coleta os dados a cada 30min quando estiver secando a terra (<300) ele aciona o solenoide 1 liga e depois de 5s a bomba liga.

    Ficam ligadas por 1min e depois desliga a bomba e depois de 5s a solenoide1.

    Medidor de umidade do solo coleta os dados e quando estiver secando a terra ele aciona o

solenoide 1 do contrário continua.

4 - Datalogger imprime os dados de umidade do solo, do ar e a temperatura (dht22) e salva num SD e apresenta num Oled i2c 128x64 para a verificação. (O que deve aparecer no Display - Temp. e umidade do ar. Umidade do solo, data e hora).

Acho que é só isso... Rsrsrs

A onde estou...

Estou tentando modificar este skatch em anexo para o que eu preciso, mas estou tendo muitos problemas, pois sou iniciante em arduino.

Quem puder me ajudar ficarei grato.

Felipe Mendes

Exibições: 4867

Responder esta

Respostas a este tópico

Fala Sidney,

Estou enfrentando problemas com os acionamentos dos leds com hora determinada com RTC 1307, pode me ajudar?

http://pastebin.com/j4giJr6w

Talvez você deva substituir 

String agora = rtc.getTimeStr(FORMAT_SHORT);

por

int agora = (t.hour);

logo

//Início automação  

 // Iluminação LIGA

if ( agora == 4 ){
digitalWrite(Led1, HIGH);
digitalWrite(Led2, HIGH);
digitalWrite(Led3, HIGH);
digitalWrite(Led4, HIGH);
}

// Iluminação DESLIGA
if ( agora == 19 ){
digitalWrite(Led1, LOW);
digitalWrite(Led2, LOW);
digitalWrite(Led3, LOW);
digitalWrite(Led4, LOW);
}

Se for usar minutos e segundos deve usar também

(t.min);

(t.sec);

já automatizei minha cafeteira assim.

Daniel,

Qual library vc está usando para o RTC?

Eu usei a biblioteca do ds1307, nos exemplos tem algumas dicas boas.

To com um projeto parecido, já esta funcionando muito bem, mas ainda estou resolvendo problemas de interferência que fazem o controlador (Arduíno) reiniciar as vezes quando o rele é acionado.

Se precisar de ajuda é só avisar.

Imagens do projeto:


Fala Daniel,

Parabéns pelo projeto, ficou ótimo. É bem parecido msm.

Tenho algumas dúvidas:

1 - Que tipo de sensor de umidade de solo vc está usando?

2 - Está usando bomba auxiliar ou está ligado direto na água da rua?

3 - Os aspersores, como vc fez a distribuição com sobreposição?

4 - Para o acionamento do rele vc está fazendo com hora (RTC)?

Abç

Felipe Mendes

Estou usando um sensor que eu mesmo fiz, são dois metais que ficam paralelamente, ainda estou melhorando isso.

O controlador lê as informações que vem do sensor e as interpreta, quando a umidade do solo fica abaixo do que foi programado ele aciona uma válvula que libera a água para os aspersores, quando a umidade do solo chega ao que foi programado ele desliga a válvula (usei uma válvula daquelas de maquina de lavar roupas 127v)

Nesse projeto inseri alguns botoes no painel com menu para fazer esse controle de umidade minima para acionamento e de umidade máxima para fazer o desacionamento da válvula. Também pode se fazer o ajuste da constate que faz os cálculos internos de umidade por esses botões.

Os aspersores são por sobreposição e a água vem por gravidade mesmo(sem bombas).

O acionamento não utiliza módulos de tempo, é feito através da porcentagem estimada de umidade no solo.

Ainda estou melhorando essa parte de estimativa de umidade, tenho que fazer experimentações, fazer pesagens de solo e etc. 

Pretendo também inserir um Ethernet shield para ter acesso remoto.

Espero ter ajudado.

Abraço

Felipe, desculpe mas estou aqui para fazer um pedido e não lhe ajudar, pois sou mais iniciante do que vc. Estou com um dht22 + rtc ds1307, display lcd 16x2 e um sd card tentando gravar dados de temp/umidade juntamente com o tempo e vi que você já passou por isso antes. Vc poderia passar o código que desenvolveu para eu testar aqui???

Grato

Fala José,

No meio da confusão da formatação da minha máquina eu acabei perdendo o arquivo original, porém encontrei um mais antigo.

http://pastebin.com/j4giJr6w

Acho que tem alguns problemas para resolver, mais dá pra vc se basear em alguma coisa.

Vlw...

Abraço 

Criei este código para te ajudar, é bem simples, espero que ajude.

/*
* Banco de dados SD, RTC, DHT 11
* Autoria:
* Futuro Eng. Agro. Daniel Baltazar Schneider
*/

#include <DS3231.h>
DS3231 rtc(SDA, SCL);//A4-A5

#include "DHT.h" // DHT 11
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

#include <SD.h>
File myFile;
#include <SPI.h>


////////////////////////Ajuste do tempo das leituras\\\\\\\\\\\\\\\\\\\\\\\\
float intervalo_minutos = 1; // em minutos
//////////////////////////////////////////////////////////////////////////////


float Delay = (intervalo_minutos * 60000);

void setup() {
rtc.begin();// Inicializa RTC
dht.begin(); //Inicializa o sensor
Serial.begin(9600); // Inicializa a comunicação serial


if (!SD.begin(4)) { // Enquanto SD nao inicializar mostra falha
Serial.println("Falha na inicializacao");
delay(4000);
}
else {
Serial.println("Inicializacao concluida");
}
myFile = SD.open("dados.csv");
if (!myFile) {//se o arquivo dados.csv não existir sera criado e imprime o cabeçlho
myFile = SD.open("dados.csv", FILE_WRITE);

if (myFile) {
myFile.println("Data;Hora;Temperatura;Humidade");// imprime cabeçalho
myFile.close();// Fecha o arquivo
Serial.println("Arquivo criado com sucesso");
}
else {
Serial.println("Falha SD");
}
}
else {
Serial.println("arquivo ok");
}
}

void loop() {
int humidade = dht.readHumidity(); // Grava humidade na variavel
int temperatura = dht.readTemperature();// Grava temperatura na variavel

String data = rtc.getDateStr();// Grava data na variavel
String horario = rtc.getTimeStr();// Grava horario na variavel

SD.begin(4);
myFile = SD.open("dados.csv", FILE_WRITE);

if (myFile) { // se existir o arquivo
// GRAVA OS DADOS NO SD
Serial.println("GRAVANDO");
myFile.print(data);
myFile.print(";");
myFile.print(horario);
myFile.print(";");
myFile.print(temperatura);
myFile.print(";");
myFile.println(humidade);

myFile.close();//Fecha o arquivo

}
else {
Serial.println("Falha ao abrir Arquivo");
}

delay(Delay);
}

Gostei do FUTURO ENG. AGRÔNOMO...

KKKKKKK

To na luta, falta muito ainda para me formar.

kkkkk

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço