Cara Program Wifi Espasyncwebserver Dual Mode Esp8266 Nodemcu V3
Tutorial Membuat Wi-Fi Web Server dengan Mode Dual Accesspoint (AP) + Station (STA) pada ESP8266 NodeMCU V3
ESP8266 adalah modul Wi-Fi yang dapat digunakan untuk berbagai proyek IoT (Internet of Things). Dengan mode Dual AP + STA, ESP8266 dapat:
- Berfungsi sebagai Access Point (AP), di mana perangkat lain dapat terhubung langsung ke ESP8266.
- Berfungsi sebagai Station (STA), di mana ESP8266 dapat terhubung ke router Wi-Fi yang sudah ada.
Dengan kombinasi mode ini, ESP8266 bisa diakses baik melalui jaringan Wi-Fi lokalnya sendiri (AP) maupun melalui jaringan Wi-Fi yang lebih luas (STA).
Berikut adalah tutorial lengkap untuk membuat Wi-Fi Web Server pada ESP8266 NodeMCU V3 menggunakan mode Dual Access Point + Station (AP + STA) dengan library ESPAsyncWebServer. Tutorial ini mencakup persiapan perangkat keras dan perangkat lunak, penjelasan kode, serta cara menguji proyek.
1. Persiapan Perangkat Keras (hardware) dan Perangkat Lunak (software)
Sebelum memulai, ada beberapa persiapan yang perlu dilakukan baik dari sisi perangkat keras maupun perangkat lunak.
Perangkat Keras / hardware:
Untuk tutorial ini, berikut adalah perangkat keras yang dibutuhkan:
- ESP8266 NodeMCU V3 - Mikrokontroler ini memiliki kemampuan WiFi dan dapat diprogram menggunakan Arduino IDE.
- Kabel USB Micro - Untuk menghubungkan ESP8266 ke komputer dan melakukan pemrograman.
- Laptop/PC - dengan Arduino IDE terinstal
Perangkat Lunak / Software:
Untuk pengembangan dan pemrograman, kita akan menggunakan:
- Arduino IDE (versi terbaru) atau PlatformIO: Arduino IDE adalah pilihan populer untuk pemrograman mikrokontroler seperti ESP8266.
- Driver CP2102 (jika komputer tidak mendeteksi NodeMCU, unduh dan install driver dari CP2102 Driver)
- ESP8266 Board Package (jika belum ada, tambahkan URL berikut di Preferences:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Kemudian install ESP8266 dari Boards Manager) - Library ESPAsyncWebServer dan AsyncTCP
- Buka Library Manager di Arduino IDE
- Cari dan install ESPAsyncWebServer
- Cari dan install ESPAsyncTCP (dibutuhkan oleh ESPAsyncWebServer)
2. Kode Program Wi-Fi Web Server ESP8266 dengan Dual Mode AP + STA
Kode berikut akan:
- Mengaktifkan Mode Access Point (AP) dengan SSID "ESP8266-AccessPoint" dan password "123456789".
Menghubungkan ke jaringan Wi-Fi menggunakan Mode Station (STA).
Membuat web server yang merespons permintaan HTTP di alamat /
dan /status
.
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
// Konfigurasi Access Point (AP Mode)
const char* apSSID = "ESP8266-AccessPoint";
const char* apPassword = "123456789";
// Konfigurasi Station Mode (STA Mode)
const char* ssid = "NamaWiFiAnda"; // Ganti dengan SSID Wi-Fi Anda
const char* password = "PasswordAnda"; // Ganti dengan password Wi-Fi Anda
// Membuat server web di port 80
AsyncWebServer server(80);
void setup() {
Serial.begin(115200);
// Mengaktifkan Mode Access Point (AP)
WiFi.softAP(apSSID, apPassword);
Serial.println("Access Point Mode Started");
Serial.print("AP IP Address: ");
Serial.println(WiFi.softAPIP());
// Menghubungkan ke jaringan Wi-Fi sebagai Station (STA Mode)
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WiFi.");
Serial.print("STA IP Address: ");
Serial.println(WiFi.localIP());
// Route untuk halaman utama
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(200, "text/html", "<h1>ESP8266 Web Server</h1><p>Welcome!</p>");
});
// Route untuk menampilkan status jaringan
server.on("/status", HTTP_GET, [](AsyncWebServerRequest *request){
String html = "<h2>Device Status</h2>";
html += "<p>ESP8266 IP (AP Mode): " + WiFi.softAPIP().toString() + "</p>";
html += "<p>ESP8266 IP (STA Mode): " + WiFi.localIP().toString() + "</p>";
request->send(200, "text/html", html);
});
// Memulai server web
server.begin();
}
void loop() {
// Tidak perlu melakukan apa-apa di loop karena ESPAsyncWebServer berjalan secara asinkron
}
Penjelasan Kode:
- Inisialisasi Library
ESP8266WiFi.h
: Mengelola koneksi Wi-Fi untuk ESP8266.ESPAsyncWebServer.h
: Menggunakan server berbasis HTTP yang bekerja secara asinkron.ESPAsyncTCP.h
: Diperlukan agar ESPAsyncWebServer dapat bekerja.
- Mode Wi-Fi Dual (AP + STA)
- Access Point (AP)
WiFi.softAP(apSSID, apPassword)
: Membuat jaringan Wi-Fi sendiri.WiFi.softAPIP()
: Mendapatkan alamat IP ESP8266 dalam mode AP.
- Station Mode (STA)
WiFi.begin(ssid, password)
: Menghubungkan ke jaringan Wi-Fi yang sudah ada.WiFi.status() != WL_CONNECTED
: Looping hingga ESP8266 terhubung ke jaringan.WiFi.localIP()
: Mendapatkan alamat IP ESP8266 dari router.
- Access Point (AP)
- Membuat Web Server
server.on("/", HTTP_GET, ...)
: Route untuk halaman utama.server.on("/status", HTTP_GET, ...)
: Route untuk melihat status jaringan.server.begin()
: Memulai web server.
3. Mengunggah dan Menguji Program
Langkah-langkah Mengunggah Program:
- Buka Arduino IDE dan pastikan board NodeMCU 1.0 (ESP-12E Module) sudah dipilih.
- Pilih port yang sesuai (Tools > Port).
- Upload kode ke ESP8266.
- Buka Serial Monitor untuk melihat alamat IP yang diberikan.
Langkah-langkah Pengujian:
- Cek Mode AP (Access Point)
- Sambungkan perangkat (HP/Laptop) ke Wi-Fi "ESP8266-AccessPoint" dengan password "123456789".
- Buka browser dan akses:
http://192.168.4.1/
- Halaman web server akan ditampilkan.
- Coba akses
http://192.168.4.1/status
untuk melihat informasi IP.
- Cek Mode STA (Station)
- Jika ESP8266 berhasil terhubung ke Wi-Fi router, catat alamat IP yang muncul di Serial Monitor.
- Buka browser dan akses
http://<IP_ESP8266>/
- Halaman web server akan ditampilkan.
- Akses
http://<IP_ESP8266>/status
untuk melihat informasi IP.
4. Pengembangan Lebih Lanjut
- Membuat Web Dashboard: Menambahkan tampilan HTML, CSS, dan JavaScript untuk UI yang lebih menarik.
- Menampilkan Data Sensor: Menggunakan sensor (misalnya DHT11) untuk menampilkan data suhu dan kelembaban.
- Mengontrol Perangkat Jarak Jauh: Menambahkan tombol untuk menyalakan/mematikan LED atau relay.
Kesimpulan
Dengan menggunakan mode Dual AP + STA, ESP8266 dapat diakses melalui Wi-Fi yang dibuatnya sendiri sekaligus tetap terhubung ke internet. Library ESPAsyncWebServer mempermudah pengelolaan server secara asinkron, sehingga tidak menghambat kinerja utama ESP8266.
Proyek ini bisa dikembangkan lebih lanjut untuk berbagai aplikasi IoT (Internet of Things) seperti Smart Home, Sensor Monitoring, atau Automasi Jarak Jauh. 🚀