//NOME-RM: Caio Martinez Saes rm: 560753, Estefany Caetano de Jesus rm: 560181
#include <LiquidCrystal_I2C.h> // precisa instalar
#include<DHT.h>
LiquidCrystal_I2C lcd(0x27,16,2); // varia do i2c
#define DHTPIN 12
#define DHTTYPE DHT22 //Muda pra 11 na ide
DHT dht(DHTPIN,DHTTYPE);
#define LDR A0
int leituraLDR;
float tensao;
float lux;
float lux2;
int ledRed = 3;
int ledYellow = 4;
int ledGreen = 5;
int trigger = 8;
int echo = 7;
int distancia = 0;
int garrafas = 0;
void setup() {
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(ledRed, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledGreen, OUTPUT);
lcd.init();
lcd.backlight(); //deixa claro OBS"desnecessario"
//lcd.clear(); //limpa o console
lcd.setCursor(0,0); // linha e coluna
lcd.print("Bem vindo!"); // Mensagem1
lcd.setCursor(0,1); // linha e coluna
lcd.print("Sistema da vinharia Agnello"); // Mensagem 2
dht.begin();
delay(3000); // espera 3 segundos
pinMode(LDR, INPUT);
Serial.begin(9600);
}
void loop() {
lcd.clear();
digitalWrite(trigger, LOW);
delayMicroseconds(5);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
distancia = pulseIn(echo,HIGH);
distancia = distancia/58;
garrafas = 400/11 - distancia/11;
lcd.setCursor(0,0); // linha e coluna
lcd.print("Foi detectado");
lcd.setCursor(0,1); // linha e coluna
if(garrafas > 29){
digitalWrite(ledGreen, HIGH);
digitalWrite(ledYellow, LOW);
digitalWrite(ledRed, LOW);
}else if(garrafas > 19){
digitalWrite(ledGreen, LOW);
digitalWrite(ledYellow, HIGH);
digitalWrite(ledRed, LOW);
} else {
digitalWrite(ledGreen, LOW);
digitalWrite(ledYellow, LOW);
digitalWrite(ledRed, HIGH);
}
lcd.print(String(garrafas) + " garrafas");
delay(3000);
lcd.clear();
int temp = dht.readTemperature();
int umi = dht.readHumidity();
lcd.setCursor(0,0); // linha e coluna
lcd.print("Temperatura: "+ String(temp) + "C");
lcd.setCursor(0,1); // linha e coluna
lcd.print("Humidade: " + String(umi) + "%");
delay(3000);
lcd.clear();
if(umi > 80){
lcd.setCursor(0,0); // linha e coluna
lcd.print("Humidade alta!");
}else if(umi < 60){
lcd.setCursor(0,0); // linha e coluna
lcd.print("Humidade baixa!");
}else{
lcd.setCursor(0,0); // linha e coluna
lcd.print("Humidade Ideal!");
}
lcd.setCursor(0,1); // linha e coluna
lcd.print("Humidade: " + String(umi) + "%");
delay(3000);
lcd.clear();
if(temp > 15){
lcd.setCursor(0,0); // linha e coluna
lcd.print("Temperatura alta!");
}else if(temp < 12){
lcd.setCursor(0,0); // linha e coluna
lcd.print("Temperatura baixa!");
}else{
lcd.setCursor(0,0); // linha e coluna
lcd.print("Temperatura Ideal!");
}
lcd.setCursor(0,1); // linha e coluna
lcd.print("Temperatura: " + String(temp) + "C");
delay(3000);
leituraLDR = analogRead(LDR);
// converter o valor da leituraLDR em tensao
tensao = leituraLDR * 5.0 / 1023.0;
// calcular o lux
lux = (2500 / tensao) / 10;
lux2 = (2500 / tensao + 500 ) / 5;
// enviar para a serial
lcd.clear();
lcd.setCursor(0,0); // linha e coluna
lcd.print("Luminosidade");
lcd.setCursor(0,1); // linha e coluna
lcd.print("em lux: "+ String(lux2));
delay(3000);
lcd.clear();
if(lux2 > 500){
lcd.setCursor(0,0); // linha e coluna
lcd.print("muita luz");
lcd.setCursor(0,1); // linha e coluna
lcd.print("lux: "+ String(lux2));
}else{
lcd.setCursor(0,0); // linha e coluna
lcd.print("luz Ideal");
lcd.setCursor(0,1); // linha e coluna
lcd.print("lux: "+ String(lux2));
}
delay(3000);
}