#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 4 // DATA DHT22
#define DHTTYPE DHT22
#define LED_PIN 2 // LED
#define SDA_PIN 3 // RX
#define SCL_PIN 22 // SCL
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD 16x2 I2C
void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
dht.begin();
// Khởi tạo I2C với SDA = RX, SCL = 22
Wire.begin(SDA_PIN, SCL_PIN);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("ESP32 + DHT22");
lcd.setCursor(0, 1);
lcd.print("Khoi dong...");
delay(2000);
lcd.clear();
}
void loop() {
float nhietDo = dht.readTemperature();
if (isnan(nhietDo)) {
lcd.setCursor(0, 0);
lcd.print("Loi DHT22 ");
delay(1000);
return;
}
// Hiển thị nhiệt độ
lcd.setCursor(0, 0);
lcd.print("Nhiet do: ");
lcd.setCursor(10, 0);
lcd.print(nhietDo, 1);
lcd.print((char)223);
lcd.print("C");
// Điều khiển LED
if (nhietDo > 37) {
digitalWrite(LED_PIN, HIGH);
lcd.setCursor(0, 1);
lcd.print("LED: BAT ");
} else {
digitalWrite(LED_PIN, LOW);
lcd.setCursor(0, 1);
lcd.print("LED: TAT ");
}
delay(2000);
}