#include "DHTesp.h"
#include <LCD_I2C.h>
#define LED 32
#define DHT_PIN 15 // ESP32 pin GIOP23 connected to DHT22 sensor
#define BUZZ 4
DHTesp dhtSensor;
LCD_I2C lcd(0x27, 16, 2); // I2C address 0x3F, 16 column and 2 rows
void setup() {
Serial.begin(115200);
pinMode(14, INPUT);
pinMode(LED, OUTPUT);
pinMode(BUZZ, OUTPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.begin();
lcd.backlight();
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
delay(1000);
lcd.clear();
if(digitalRead(14)==HIGH){
digitalWrite(LED, HIGH);
digitalWrite(BUZZ, HIGH);
if (isnan(data.temperature) || isnan(data.humidity)) {
lcd.setCursor(0, 0);
lcd.print("Error in displaying");
Serial.println(F("Error reading temperature and humidity!"));
} else {
lcd.setCursor(0, 0); // display position
lcd.print("Temp: "+ String(data.temperature, 2)+" °C");
lcd.setCursor(0, 1); // display position
lcd.print("Humi: "+String(data.humidity, 1)+"%");
}
delay(2000);
lcd.clear();
}
else{
digitalWrite(LED, LOW);
digitalWrite(BUZZ, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Push the button!");
delay(1000);
lcd.clear();
}
}