Modul mikrokontroler ESP8266 telah merevolusi dunia Internet of Things (IoT) berkat kemampuan Wi-Fi terintegrasi dan harganya yang sangat terjangkau. Salah satu konfigurasi paling kuat dari ESP8266 adalah kemampuannya untuk beroperasi sebagai Access Point (AP). Ketika dikonfigurasi sebagai AP, ESP8266 tidak hanya terhubung ke router utama, tetapi ia menciptakan jaringannya sendiri, memungkinkan perangkat lain (seperti ponsel atau komputer) untuk terhubung langsung kepadanya.
Penggunaan ESP8266 dalam mode AP sangat berguna dalam skenario di mana konektivitas internet eksternal tidak tersedia atau tidak diinginkan. Contoh utamanya adalah untuk kontrol perangkat lokal secara langsung, seperti sistem otomasi rumah nirkabel, stasiun pengukuran data di lokasi terpencil (tanpa Wi-Fi), atau untuk mengatur konfigurasi awal perangkat IoT lainnya.
Dengan mode AP, kita dapat menyematkan server web kecil langsung di dalam chip. Ini berarti, setelah perangkat seluler terhubung ke SSID yang dipancarkan oleh ESP8266, pengguna dapat membuka browser dan mengakses alamat IP lokal (biasanya 192.168.4.1) untuk mengirimkan perintah, melihat status sensor, atau bahkan mengubah parameter operasional modul tersebut secara real-time tanpa bergantung pada infrastruktur jaringan eksternal apa pun.
Pemrograman ESP8266 untuk mode AP Web Server paling umum dilakukan menggunakan Arduino IDE dengan pustaka bawaan ESP8266WiFi.h. Proses dasarnya melibatkan beberapa langkah penting: inisialisasi modul sebagai AP, penyiapan handler untuk permintaan HTTP masuk, dan penyajian halaman web yang responsif.
Langkah pertama adalah mendefinisikan SSID (nama jaringan) dan kata sandi untuk AP yang akan dibuat. Pengaturan ini harus dilakukan pada fungsi setup().
// Inisialisasi AP
const char *ssid = "ESP_AP_Server";
const char *password = "12345678";
void setup() {
Serial.begin(115200);
Serial.print("Memulai AP dengan SSID: ");
Serial.println(ssid);
// Mode WiFi: ACCESS_POINT
WiFi.softAP(ssid, password);
IPAddress myIP = WiFi.softAPIP();
Serial.print("Alamat IP AP: ");
Serial.println(myIP);
}
Setelah ESP8266 berhasil menjadi AP, kita perlu mengaktifkan WiFiServer untuk mendengarkan permintaan koneksi. Server ini akan berjalan di loop() dan secara aktif memeriksa apakah ada klien yang mencoba terhubung.
Ketika klien terhubung, server membaca permintaan HTTP (misalnya GET atau POST) dan merespons dengan mengirimkan konten HTML. Untuk memastikan kompatibilitas mobile yang baik, kode HTML yang dikirim harus menggunakan struktur yang responsif, memanfaatkan CSS dasar atau tag HTML5 yang didukung luas.
WiFiServer server(80);
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
String currentLine = "";
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n') {
// Jika baris kosong, ini adalah akhir dari permintaan HTTP
if (currentLine.length() == 0) {
// Kirim header HTTP respons
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
// Kirim konten HTML (respons mobile-friendly)
client.println("<html><head><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>ESP Kontrol</title></head><body>");
client.println("<h1>Status ESP8266</h1>");
client.println("<p>Anda berhasil terhubung ke AP ini.</p>");
client.println("</body></html>");
break;
} else {
currentLine = "";
}
} else if (c != '\r') {
currentLine += c;
}
}
}
client.stop();
}
Menggunakan web server di mode AP sangat ideal untuk provisioning atau kontrol darurat. Karena perangkat klien hanya perlu browser web standar (tanpa perlu menginstal aplikasi khusus), antarmuka yang disajikan harus sederhana, mudah dinavigasi, dan dioptimalkan untuk layar sentuh kecil. Penggunaan meta tag viewport sangat krusial untuk memastikan tata letak yang benar pada perangkat mobile.
ESP8266 sebagai Access Point Web Server menawarkan solusi mandiri yang fleksibel untuk berbagai proyek IoT, terutama yang memerlukan konfigurasi on-the-fly atau operasi tanpa koneksi internet eksternal. Dengan pemahaman dasar tentang pemrograman TCP/IP dan HTML, siapa pun dapat menciptakan antarmuka kontrol yang kuat dan mudah diakses langsung dari ponsel mereka.