Created
February 15, 2019 12:59
-
-
Save tashima42/df9a06237c5a08591d6672ce4183f634 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Codigo feito por Pedro Tashima (@Tashima42) | |
* Regador e Datta Logger automatico de plantas*/ | |
#include "DHT.h" //biblioteca para o leitor de umidade e temperatura DHT11 | |
#include <DS3231.h> //biblioteca para o relogio RTC | |
#include <SPI.h> //biblioteca para o SD | |
#include <SD.h> //biblioteca para o SD | |
#define pinoDht 9 // PINO digital em que o DT11 esta conectado | |
#define tipoDht DHT11 // DHT 11 | |
const int chipSelect = 10; //Pino CS do SD | |
const int pinoChuva = A7; //Pino de entrada analogico do sensor de chuva | |
const int pinoSolo = A6; //Pino de entrada analogico do sensor de umidade do solo | |
const int pinoRele = 8; //Pino de Saida do Rele | |
const int pinoLuz = A3; //Pino de entrada analogico do sensor de Luz | |
//Hora para desligar e ligar a solenoide | |
const int ligaHora = 13; | |
const int ligaMinuto = 37; | |
const int desligaHora = 13; | |
const int desligaMinuto = 38; | |
//Liga a solenoide as 13:37 e desliga as 13:38 | |
// | |
int valorChuva = 0; //armazena o valor analogico do sensor de chuva | |
int valorSolo = 0; //armazena o valor analogico do sensor de umidade do solo | |
int valorLuz = 0; //Armazena o valor analogico do sensor de Luz | |
DHT dht(pinoDht, tipoDht); //define os pinos para o DHT11 | |
DS3231 rtc(SDA, SCL); //define os pinos para o RTC | |
Time tempo; | |
void setup() { | |
Serial.begin(9600); | |
Serial.print("Iniciando DHT11 "); | |
dht.begin(); //inicia o DHT11 | |
rtc.begin(); //inicia o RTC | |
pinMode(pinoChuva, INPUT);//definindo o pino do sensor de chuva como entrada | |
pinMode(pinoSolo, INPUT); //definindo o pino do sensor de umidade do solo como entrada | |
pinMode(pinoRele, OUTPUT);//definindo o pino do rele como saida | |
Serial.print("Iniciando o cartao SD..."); | |
// Ve se o cartao SD esta presente | |
if (!SD.begin(chipSelect)) { | |
Serial.println(" | O cartao SD falhou ou nao esta presente"); | |
return; //nao faz mais nada | |
} | |
Serial.println(" | cartao iniciado."); | |
} | |
void loop() { | |
//DHT11 | |
int h = dht.readHumidity(); // le a umidade do ar | |
int t = dht.readTemperature(); //le a temperatura em celcius | |
valorChuva = analogRead(pinoChuva); //SENSOR DE CHUVA | |
valorSolo = analogRead(pinoSolo); //SENSOR DE UMIDADE DO SOLO | |
valorLuz = analogRead(pinoLuz); //SENSOR DE LUZ | |
/* if (valorSolo < 200) { | |
digitalWrite(pinoRele, LOW); | |
delay(10); | |
} | |
else { | |
digitalWrite(pinoRele, HIGH); | |
} | |
*/ | |
File dataFile = SD.open("datalog4.csv", FILE_WRITE); //Cria o arquivo para guardar os dados | |
//COLOCA OS DADOS NO CARTAO SD | |
if (dataFile) { | |
dataFile.print("("); | |
dataFile.print(rtc.getDateStr()); //data | |
dataFile.print(")"); | |
dataFile.print("("); | |
dataFile.print(rtc.getTimeStr()); //hora | |
dataFile.print(")"); | |
dataFile.print(" , "); | |
dataFile.print(h); //umidade | |
dataFile.print(" , "); | |
dataFile.print(t); //temperatura | |
dataFile.print(" , "); | |
dataFile.print(valorChuva); //chuva | |
dataFile.print(" , "); | |
dataFile.print(valorSolo); //umidade do solo | |
dataFile.print(" , "); | |
dataFile.print(valorLuz); | |
dataFile.println(" , "); | |
dataFile.close(); | |
//PARTE DE IMPRESSAO PARA O MONITOR SERIAL | |
Serial.print("("); | |
Serial.print(rtc.getDateStr()); //data | |
Serial.print(")"); | |
Serial.print("("); | |
Serial.print(rtc.getTimeStr()); //hora | |
Serial.print(")"); | |
Serial.print(" , "); | |
//DHT11 | |
//printa a umidade | |
Serial.print ("Umidade: "); | |
Serial.print (h); | |
Serial.print(" %"); | |
Serial.print(" , "); | |
//printa a temperatura | |
Serial.print("Temperatura: "); | |
Serial.print(t); | |
Serial.print(" *C"); | |
Serial.print(" , "); | |
//SENSOR DE CHUVA | |
Serial.print("Quantidade de Chuva: "); | |
Serial.print(valorChuva); | |
Serial.print(" , "); | |
Serial.print("Umidade do solo: "); | |
Serial.print(valorSolo); | |
Serial.print(" , "); | |
Serial.print("Luminosidade: "); | |
Serial.print(valorLuz); | |
Serial.println(" , "); | |
// | |
digitalWrite(pinoRele, HIGH); | |
delay(60000); | |
digitalWrite(pinoRele, LOW); | |
delay(1800000); | |
} | |
// if the file isn't open, pop up an error: | |
else { | |
Serial.println("erro ao abrir datalog.csv"); | |
} | |
/* tempo = rtc.getTime(); | |
if (tempo.hour == ligaHora && tempo.min == ligaMinuto) { | |
digitalWrite(pinoRele, HIGH); | |
} | |
else if (tempo.hour == desligaHora && tempo.min == desligaMinuto) { | |
digitalWrite(pinoRele, LOW); | |
} */ | |
delay(1000); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment