//Essa é uma programação em ESP32 que utiliza um sensor de temperatura e umidade DHT11 para ler os valores de temperatura e umidade do ambiente e exibi-los em um display OLED (128x64 pixels) usando a biblioteca U8g2lib.
//Inclusão de bibliotecas:
//Aqui, são incluídas as bibliotecas necessárias para comunicação I2C (Wire), para o sensor DHT (DHT.h) e para o display OLED (U8g2lib).
#include <Wire.h>
#include "DHT.h"
#include<U8g2lib.h>
#define DHTPIN 12
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /*clock=*/ 22, /* data=*/ 21, U8X8_PIN_NONE);
//São definidos o pino ao qual o sensor DHT está conectado (DHTPIN) e o tipo de sensor (DHTTYPE). Em seguida, é criada uma instância do objeto DHT chamada 'dht' associada a esses valores.
//qui, é criada uma instância do objeto U8G2_SSD1306_128X64_NONAME_F_SW_I2C chamado 'u8g2', que representa o display OLED. São passados os pinos de clock (clock=22) e dados (data=21) para a comunicação I2C.
void setup() {
Serial.begin(115200);
dht.begin();
u8g2.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if(isnan(h) || isnan (t)){
Serial.println(F("Erro ao iniciar o display OLED"));
return;
}
u8g2.firstPage();
do{
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(20,20);
u8g2.print("MINI PC");
u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setCursor(0,40);
u8g2.print("Temp:");
u8g2.print(t);
u8g2.print("C");
u8g2.setCursor(0,64);
u8g2.print("umidade:");
u8g2.print(h);
u8g2.print("%");
}
while(u8g2.nextPage());
}