#include <DHT.h>; //INCLUSÃO DE BIBLIOTECA
#include <Servo.h>
#include <LiquidCrystal.h> //Carrega a biblioteca LCD
#include <DHT.h> //Carrega a biblioteca DHT
#define DHTPIN 2 //PINO DIGITAL UTILIZADO PELO DHT22
#define DHTTYPE DHT22 //DEFINE O MODELO DO SENSOR (DHT22 / AM2302)
#define SERVO 6 // Porta Digital 6 PWM
DHT dht(DHTPIN, DHTTYPE); //PASSA OS PARÂMETROS PARA A FUNÇÃO
Servo s; // Variável Servo
int pos; // Posição Servo
//Define os pinos que serão ligados ao LCD
LiquidCrystal lcd(12, 11, 5, 4, 10, 8);
//Array simbolo grau
byte grau[8] = { B00001100,
B00010010,
B00010010,
B00001100,
B00000000,
B00000000,
B00000000,
B00000000,
};
void setup()
{
Serial.begin(9600); //Inicializa a serial
lcd.begin(16, 2); //Inicializa LCD
lcd.clear(); //Limpa o LCD
//Cria o caractere customizado com o simbolo do grau
pinMode(3, OUTPUT);
lcd.createChar(0, grau);
dht.begin();
s.attach(SERVO);
s.write(0); // Inicia motor posição zero
}
void loop()
{
float h = dht.readHumidity(); //Le o valor da umidade
float t = dht.readTemperature(); //Le o valor da temperatura
lcd.setCursor(0, 0);
lcd.print("Temp : ");
lcd.print(" ");
lcd.setCursor(7, 0);
lcd.print(t, 1);
lcd.setCursor(12, 0);
//Mostra o simbolo do grau formado pelo array
lcd.write((byte)0);
//Mostra o simbolo do grau quadrado
//lcd.print((char)223);
lcd.setCursor(0, 1);
lcd.print("Umid : ");
lcd.print(" ");
lcd.setCursor(7, 1);
lcd.print(h, 1);
lcd.setCursor(12, 1);
lcd.print("%");
//Intervalo recomendado para leitura do sensor
Serial.print("Umidade: "); //IMPRIME O TEXTO NA SERIAL
Serial.print(dht.readHumidity()); //IMPRIME NA SERIAL O VALOR DE UMIDADE MEDIDO
Serial.print("%"); //IMPRIME O TEXTO NA SERIAL
Serial.print(" / Temperatura: "); //IMPRIME O TEXTO NA SERIAL
Serial.print(dht.readTemperature(), 2); //IMPRIME NA SERIAL O VALOR DE UMIDADE MEDIDO E REMOVE A PARTE DECIMAL
Serial.println("ºC"); //IMPRIME O TEXTO NA SERIAL
delay(2000); //INTERVALO DE 2 SEGUNDOS * NÃO DIMINUIR ESSE VALOR
if (dht.readTemperature() < 38 ) {
digitalWrite(3, HIGH);
}
else {
digitalWrite(3, LOW);
}
servoMotor();
}
void servoMotor() {
for (pos = 0; pos < 180; pos += 10) {
s.write(pos);
delay(100);
}
s.write(0);
}