#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#define DHT_PIN 12
#define DHT_TYPE DHT22
#define BUTTON_PIN 15
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(9600);
Serial.println("Hello, ESP32!");
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED){
delay(100);
Serial.print(".");
}
Serial.println("Connected!");
String ipAddress = WiFi.localIP().toString();
Serial.print("IP Address: ");
Serial.println(ipAddress);
dht.begin();
pinMode(BUTTON_PIN, INPUT_PULLUP);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("IP:");
LCD.setCursor(0, 1);
LCD.print(ipAddress);
delay(5000);
LCD.clear();
}
void loop(){
if (digitalRead(BUTTON_PIN) == LOW) {
float t = dht.readTemperature();
float h = dht.readHumidity();
Serial.print("Temperature: ");
Serial.println(t);
Serial.print("Humidity: ");
Serial.println(h);
Serial.println("");
LCD.setCursor(3, 0);
LCD.print(t);
LCD.print(" C");
LCD.setCursor(3, 1);
LCD.print(h);
LCD.print(" %");
delay(1000);
}
}