#include <LiquidCrystal_I2C.h>
#include <DHT.h>
uint8_t dot[] = {0x0E, 0x0A, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00};
LiquidCrystal_I2C lcd(0x27, 20, 4); // Update address
DHT dht(32, DHT22);
void setup() {
Serial.begin(115200);
Serial.println("Hello Lab 3");
dht.begin();
lcd.init();
// lcd.backlight();
lcd.createChar(0, dot); // Use slot 0
}
void loop() {
float h = dht.readHumidity(); // Relative humidity
float c = dht.readTemperature(); // Celsius
float f = dht.readTemperature(true); // Fahrenheit
// Check if any reads failed and try again
if (isnan(h) || isnan(c) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.printf(
"Humidity: %.1f Temperature: %.1f deg C %.1f deg F\n",
h, c, f
);
lcd.setCursor(0, 0);
lcd.print("Humidity: "); lcd.print(h, 1); lcd.print("%");
lcd.setCursor(0, 2);
lcd.print("Temperature: "); lcd.print(c, 2); lcd.write(0); lcd.print("C");
lcd.setCursor(0, 3);
lcd.print("Temperature: "); lcd.print(f, 1); lcd.write(0); lcd.print("F");
delay(4000);
}