🌐 Koneksi WiFi & Web Server dengan ESP32 / ESP8266
Belajar membuat ESP32/ESP8266 terkoneksi WiFi dan menampilkan status sensor/LED melalui Web Server.
🎯 Tujuan: Siswa mampu menghubungkan ESP ke WiFi, membuat web server, dan mengontrol perangkat melalui browser.
🔧 Komponen yang Dibutuhkan
- ESP32 / ESP8266 NodeMCU
- LED + resistor 220Ω
- Kabel jumper dan breadboard
- Koneksi WiFi
- Software: Arduino IDE + Library
ESPAsyncWebServer/ESP8266WebServer
1️⃣ Konsep Dasar
- ESP sebagai Web Server → dapat menampilkan halaman HTML sederhana.
- ESP mengontrol aktuator (misal LED) melalui perintah dari browser.
- ESP membaca sensor dan menampilkan status secara real-time.
2️⃣ Koneksi WiFi
ESP perlu terhubung WiFi untuk bisa menjadi web server dan diakses melalui browser.
#include <WiFi.h> // ESP32
//#include <ESP8266WiFi.h> // ESP8266
const char* ssid = "NAMA_WIFI";
const char* password = "PASSWORD_WIFI";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Menghubungkan ke WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Terhubung! IP ESP: ");
Serial.println(WiFi.localIP());
}
void loop() {
// ESP terhubung ke WiFi
}
3️⃣ Membuat Web Server Sederhana
Contoh menyalakan/mematikan LED melalui browser:
#include <WiFi.h>
#include <WebServer.h> // ESP32
//#include <ESP8266WebServer.h> // ESP8266
const char* ssid = "NAMA_WIFI";
const char* password = "PASSWORD_WIFI";
WebServer server(80);
int ledPin = 2; // ESP32 onboard LED
void handleRoot() {
String html = "<html><body>";
html += "<h1>Kontrol LED</h1>";
html += "<a href='/on'>LED ON</a><br>";
html += "<a href='/off'>LED OFF</a>";
html += "</body></html>";
server.send(200, "text/html", html);
}
void handleLEDOn() {
digitalWrite(ledPin, HIGH);
server.sendHeader("Location", "/");
server.send(303);
}
void handleLEDOff() {
digitalWrite(ledPin, LOW);
server.sendHeader("Location", "/");
server.send(303);
}
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("ESP Web Server IP: ");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.on("/on", handleLEDOn);
server.on("/off", handleLEDOff);
server.begin();
}
void loop() {
server.handleClient(); // Tangani request dari browser
}
📘 Penjelasan
- ESP32/ESP8266 dapat membuat web server sendiri dan diakses via IP.
- Library
WebServer/ESP8266WebServerdigunakan untuk menangani HTTP request. - URL
/ondan/offdigunakan untuk menyalakan/mematikan LED. - Browser → ESP → Mengontrol perangkat real-time.
- Fungsi
server.handleClient()wajib dipanggil di loop agar server tetap responsif.
📝 Aktivitas Siswa
- Tambahkan status LED di halaman web (ON/OFF) secara real-time.
- Tambahkan lebih dari 1 LED dan buat tombol kontrol masing-masing.
- Integrasikan sensor suhu atau kelembaban, tampilkan nilainya di halaman web.
- Buat tampilan HTML lebih menarik dengan tombol berwarna dan layout sederhana.
- Gunakan
millis()agar pembacaan sensor dan server tetap responsif.
No comments:
Post a Comment