#include <Arduino.h>
#include <Wire.h>
#include <U8g2lib.h>
#include "DHTesp.h"
// DHT22 setup
#define DHTPIN 2 // Data pin connected to GPIO2
DHTesp dht;
// OLED setup (I2C)
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void setup() {
Serial.begin(115200);
// Initialize DHT22 sensor
dht.setup(DHTPIN, DHTesp::DHT22);
// Initialize OLED
u8g2.begin();
u8g2.setFont(u8g2_font_helvB10_tf);
}
void loop() {
// Read temperature and humidity
float t = dht.getTemperature();
float h = dht.getHumidity();
u8g2.clearBuffer();
if (isnan(t) || isnan(h)) {
// Error reading sensor
u8g2.setCursor(0, 32);
u8g2.print("Error: Sensor");
u8g2.setCursor(0, 48);
u8g2.print("not found!");
} else {
// Display temperature and humidity
u8g2.setCursor(0, 16);
u8g2.print("Temperature:");
u8g2.setCursor(0, 32);
u8g2.print(t); u8g2.print(" C");
u8g2.setCursor(0, 48);
u8g2.print("Humidity:");
u8g2.setCursor(0, 64);
u8g2.print(h); u8g2.print(" %");
}
// Send buffer to OLED
u8g2.sendBuffer();
delay(2000); // Wait 2 seconds
}