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
Tags:
Fala Sidney,
Estou enfrentando problemas com os acionamentos dos leds com hora determinada com RTC 1307, pode me ajudar?
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.
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.
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por