#include <WiFi.h>
#include <WebServer.h>
#include <DHT.h>
#include <Ultrasonic.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
WebServer server(80);
#define DHTPIN 2 // Pin yang terhubung ke DHT11
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Ultrasonic ultrasonic(12, 13); // Pin Trigger dan Echo Ultrasonik
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
server.on("/", HTTP_GET, handleRoot);
server.on("/ledon", HTTP_GET, handleLEDOn);
server.on("/ledoff", HTTP_GET, handleLEDOff);
server.on("/relayon", HTTP_GET, handleRelayOn);
server.on("/relayoff", HTTP_GET, handleRelayOff);
dht.begin();
server.begin();
}
void loop() {
server.handleClient();
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
float distance = ultrasonic.read();
Serial.print("Temperature: ");
Serial.println(temperature);
Serial.print("Humidity: ");
Serial.println(humidity);
Serial.print("Distance: ");
Serial.println(distance);
delay(1000);
}
void handleRoot() {
String html = "<html><body>";
html += "<h1>ESP32 Web Server</h1>";
html += "<p>Temperature: " + String(dht.readTemperature()) + " °C</p>";
html += "<p>Humidity: " + String(dht.readHumidity()) + " %</p>";
html += "<p>Distance: " + String(ultrasonic.read()) + " cm</p>";
html += "<p><a href='/ledon'>Turn LED On</a></p>";
html += "<p><a href='/ledoff'>Turn LED Off</a></p>";
html += "<p><a href='/relayon'>Turn Relay On</a></p>";
html += "<p><a href='/relayoff'>Turn Relay Off</a></p>";
html += "</body></html>";
server.send(200, "text/html", html);
}
void handleLEDOn() {
// Kontrol LED untuk menyala di sini
server.send(200, "text/plain", "LED turned on");
}
void handleLEDOff() {
// Kontrol LED untuk mati di sini
server.send(200, "text/plain", "LED turned off");
}
void handleRelayOn() {
// Kontrol Relay untuk menyala di sini
server.send(200, "text/plain", "Relay turned on");
}
void handleRelayOff() {
// Kontrol Relay untuk mati di sini
server.send(200, "text/plain", "Relay turned off");
}