#include"DHT.h"// biblioteca do DHT
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#define DHTPIN 6
#define DHTTYPE DHT22
#define PIN_TRIG 3
#define PIN_ECHO 2
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
Serial.println(F("Modulo DHT22"));
dht.begin();
lcd.init();
lcd.backlight();
lcd.begin(20,4);
lcd.clear();
pinMode(A0,INPUT);
pinMode(8,OUTPUT);
Serial.begin(9600);
}
void loop()
{
//DHTa();
ultrasons();
//LDR_VAL();
// pir_valt();
}
void DHTa()
{ float temperature= dht.readTemperature();
float humidity= dht.readHumidity();
if(isnan(temperature)|| isnan(humidity)) {
Serial.println(F("falha na comunicação com DHT22"));
return;
}
Serial.print(F("Humidade"));
Serial.print(humidity);
Serial.print(F("% Temperatura:"));
Serial.print(temperature);
Serial.println(F("°C"));
lcd.setCursor(0,0);
lcd.print("Temp=");
lcd.print(temperature);
lcd.print(("Graus"));
lcd.setCursor(0,1);
lcd.print("Hum=");
lcd.print(humidity);
lcd.print(("%"));
lcd.setCursor(0,2);
lcd.print("Equip");
lcd.setCursor(8,2);
lcd.print("AutoClave");
delay(1000);
}
void ultrasons()
{
// inicia uma nova medição:
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Leia o resultado:
int duration=pulseIn(PIN_ECHO, HIGH);
Serial.print("Distancia em CM:");
Serial.println(duration/58);
// mandar para a 4 linha do LCD:
lcd.setCursor(0,3) ;
lcd.print("Dist =");
lcd.setCursor(7,3);
lcd.println(duration /(58*100));
lcd.setCursor(10,3);
lcd.print("metros");
delay(1000);
}
void LDR_VAL()
{
int valorLDR = analogRead(A0);
if( valorLDR <= 400 )
{
digitalWrite(8, HIGH);
Serial.print("LED ON ");
Serial.println(valorLDR);
delay(500);
}
else
{
digitalWrite(8, LOW);
Serial.println("LED OFF");
Serial.println(valorLDR);
delay(500);
}
}
void pir_valt()
{
//pinMode(11, OUTPUT); //Define pino como saida
// pinMode(11, OUTPUT); //Define pino como saida
// pinMode(11, INPUT); //Define pino sensor como entrada
digitalRead(11); //Le o valor do sensor PIR
if (digitalRead == LOW) //Sem movimento, mantem led azul ligado
{
digitalWrite(11, LOW);
digitalWrite(11, HIGH);
}
else //Caso seja detectado um movimento, aciona o led vermelho
{
digitalWrite(11, HIGH);
digitalWrite(11, LOW);
}
}