#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0X27
#define LCD_COLUMNS 20
#define LCD_LINES 4
int LEDred = 32;
int LEDblue = 33;
int PB = 17;
int Buzzer = 4;
int PB_value = 0;
DHTesp dhtSensor;
TempAndHumidity data;
const int DHT_PIN = 15;
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup()
{
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
Serial.begin(115200);
Serial.println("Hello,ESP32!");
pinMode(LEDred, OUTPUT);
pinMode(LEDblue, OUTPUT);
pinMode(PB, INPUT);
pinMode(Buzzer, OUTPUT);
}
void loop(){
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 1) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
lcd.setCursor(0, 0);
lcd.print(" Temp: " + String(data.temperature, 1) + "\xDF"+"C ");
lcd.setCursor(0, 1);
lcd.print(" Humidity: " + String(data.humidity, 1) + "% ");
lcd.print("Wokwi Online IoT");
delay(1000);
PB_value = digitalRead(PB);
float (TemperatureRead);
if(PB_value == 1 )
{
digitalWrite(LEDred, HIGH);
delay(500); //this speeds up the simulation
digitalWrite(LEDred, LOW);
delay(500); //this speeds up the simulation
digitalWrite(LEDblue, LOW);
delay(500);
digitalWrite(LEDblue, HIGH);
delay(500); //this speeds up the simulation
} else{
digitalWrite(LEDred, LOW);
delay(500);
digitalWrite(LEDblue, LOW);
delay(500);
}
if(data.temperature > 40)
{
tone(Buzzer, 5000);
}
else
{
noTone(Buzzer);
}
delay(100);
}