#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <HTTPClient.h>
const int DHT_PIN = 23;
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHTesp dhtSensor;
// WiFi credentials
const char* ssid = "your_ssid";
const char* password = "your_password";
// Web server URL
const char* serverUrl = "http://127.0.0.1:80";
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
// Connect to WiFi
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi!");
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Tes Sensor DHT22");
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp:" + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
// Send data to web server
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(serverUrl);
http.addHeader("Content-Type", "application/json");
// Prepare JSON data
String jsonData = "{\"temperature\":" + String(data.temperature, 2) + ",\"humidity\":" + String(data.humidity, 1) + "}";
int httpResponseCode = http.POST(jsonData);
if (httpResponseCode > 0) {
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
} else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("WiFi Disconnected");
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu : ");
lcd.setCursor(10, 0);
lcd.print("RH: ");
lcd.setCursor(0, 1);
lcd.print(data.temperature, 1);
lcd.print((char)223);
lcd.print("C");
lcd.setCursor(10, 1);
lcd.print(data.humidity, 1);
lcd.print("%");
delay(2000);
}