//2023_06_24_V1_Sensor Temperatura-Umidade.ino
#include <LiquidCrystal.h> // Incluindo a biblioteca do LCD
//LiquidCrystal lcd(4, 5, 6, 7, 8, 9); //Definindo os pinos de controle do LCD (RS, E, D4, D5, D6, D7).PROGRAMA DO ÍTALO
LiquidCrystal lcd (2, 3, 4, 5, 6, 7); //Definindo os pinos de controle do LCD (RS, E, D4, D5, D6, D7). programa da apostila aula 6A
//#include <DHT.h> // Incluindo a biblioteca do sensor DHT22.
#include <DHT.h> //Biblioteca indicada pelo ìtalo p inserir: DHT sensor library versão 1.4.4
#include <DHT_U.h> //Veio junto com a bibloteca acima
//#define DHTPIN 2 // Definindo o pino 2 como o pino de dados do DHT22.
#define DHTPIN 12 // Definindo o pino 13 como o pino de dados do DHT22.
#define DHTTYPE DHT22 // Definindo o sensor DHT22.
DHT dht(DHTPIN, DHTTYPE); // Inicializando a biblioteca do sensor DHT22.
char temperatura[] = "Temp.= 00.0 C"; // Criando a váriável "temperatura" e iniciando zerada.
char umidade[] = "Umid.= 00.0 %"; // Criando a váriável "umidade" e iniciando zerada.
//int V0 = 3; // Criando uma variável V0 no pino 3.
void setup()
{
Serial.begin(9600); //Eu inclui p depurar
lcd.begin(16, 2); // Inicializando e definido o número de colunas e linhas do LCD
dht.begin(); // Inicializando o sensor DHT22.
//analogWrite(V0, 100); // Ajustando um nível de tensão no pino 3 para ajustar o brilho do LCD.
}
void loop()
{
delay(2000); // Esperando 1s entre leituras.
int UR = dht.readHumidity() * 10; // fazendo a leitura da umidade.
int Temp = dht.readTemperature() * 10; // Fazendo a leitura da temperatura em graus Celcius.
if (isnan(UR) || isnan(Temp)) // Verificando se ocorreu alguma falha de leitura. Se ocorrer, ele monstra "Erro" tenta ler novamente.
{
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Erro");
Serial.println("erro");//Eu inclui
return;
}
if(Temp < 0)
{
temperatura[6] = '-';
Temp = abs(Temp);
}
else
temperatura[6] = ' ';
temperatura[7] = (Temp / 100) % 10 + 48;
temperatura[8] = (Temp / 10) % 10 + 48;
temperatura[10] = Temp % 10 + 48;
temperatura[11] = 223; // Gerar o símbolo de graus no LCD.
if(UR >= 1000)
umidade[6] = '1';
else
umidade[6] = ' ';
umidade[7] = (UR / 100) % 10 + 48;
umidade[8] = (UR / 10) % 10 + 48;
umidade[10] = UR % 10 + 48;
lcd.setCursor(0, 0); // Posiciona o cursor na linha 1 e coluna 1 do LCD.
lcd.print(temperatura); // escreve o valor da temperatura no LCD.
Serial.println(temperatura);//Eu inclui
lcd.setCursor(0, 1); // Posiciona o cursor na linha 2 e coluna 1 do LCD.
lcd.print(umidade); // Escreve o valor da umidade no LCD.
}