Alvoria Neura


Cara Program Wifi Espasyncwebserver Accesspoint Esp8266 Nodemcu V3

Tutorial Lengkap: Membuat Web Server WiFi Access Point pada ESP8266 NodeMCU V3 dengan ESPAsyncWebServer

ESP8266 NodeMCU V3 adalah mikrokontroler yang memiliki modul WiFi bawaan, sehingga dapat digunakan untuk berbagai proyek IoT. Salah satu fitur yang sering digunakan adalah membuat web server yang memungkinkan pengguna mengakses dan mengontrol perangkat secara nirkabel.

Pada tutorial ini, kita akan menggunakan library ESPAsyncWebServer untuk membuat web server dalam mode Access Point (AP) pada ESP8266 NodeMCU V3. Dengan mode AP, ESP8266 dapat berfungsi sebagai hotspot WiFi yang dapat diakses langsung oleh perangkat lain tanpa memerlukan router eksternal.

1. Persiapan Perangkat dan Software

Perangkat Keras

  • ESP8266 NodeMCU V3
  • Kabel USB Micro
  • LED dan resistor (opsional untuk demonstrasi kontrol perangkat)

Software

  • Arduino IDE atau PlatformIO
  • Library yang diperlukan:
    • ESPAsyncWebServer
    • AsyncTCP
    • WiFi (bawaan dari ESP8266)

2. Instalasi Library ESPAsyncWebServer

  1. Buka Arduino IDE
  2. Buka Sketch > Include Library > Manage Libraries
  3. Cari ESPAsyncWebServer, lalu klik Install
  4. Cari AsyncTCP, lalu klik Install

3. Kode Program Web Server Access Point

Berikut adalah contoh kode lengkap untuk membuat web server dengan ESP8266 dalam mode Access Point (AP) yang menampilkan halaman HTML dan dapat mengontrol LED.


#include <ESP8266WiFi.h>
#include <ESPAsyncWebServer.h>

const char* ssid = "ESP8266-AP";
const char* password = "12345678";
const int ledPin = 2;

AsyncWebServer server(80);

const char index_html[] PROGMEM = R"rawliteral(
<!DOCTYPE html>
<html>
<head>
<title>ESP8266 AP Web Server</title>
<style>
body { font-family: Arial, sans-serif; text-align: center; }
.button { padding: 10px; font-size: 20px; margin: 10px; cursor: pointer; }
.on { background-color: green; color: white; }
.off { background-color: red; color: white; }
</style>
</head>>
<body>
%lt;h1>ESP8266 AP Web Server</h1>
<button class="button on" onclick="fetch('/on')">Nyalakan LED</button>
<button class="button off" onclick="fetch('/off')">Matikan LED</button>
</body>
</html>
)rawliteral";

void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);

WiFi.softAP(ssid, password);
Serial.println("Access Point dimulai");
Serial.print("IP Address: ");
Serial.println(WiFi.softAPIP());

server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/html", index_html);
});

server.on("/on", HTTP_GET, [](AsyncWebServerRequest *request){
    digitalWrite(ledPin, HIGH);
    request->send(200, "text/plain", "LED ON");
});

server.on("/off", HTTP_GET, [](AsyncWebServerRequest *request){
    digitalWrite(ledPin, LOW);
    request->send(200, "text/plain", "LED OFF");
});

server.begin();
}

void loop() {
// Tidak perlu kode tambahan dalam loop karena server berjalan secara asinkron
}

Penjelasan Kode:

  1. Mengimpor Library:

    • ESP8266WiFi.h: Digunakan untuk koneksi WiFi dalam mode Access Point.
    • ESPAsyncWebServer.h: Digunakan untuk menangani web server asinkron.
  2. Menentukan SSID dan Password Access Point:

    • Variabel ssid dan password digunakan untuk menentukan nama jaringan WiFi yang dibuat oleh ESP8266.
  3. Mengaktifkan Mode Access Point:

    • WiFi.softAP(ssid, password); akan mengonfigurasi ESP32 sebagai Access Point.
    • WiFi.softAPIP(); menampilkan alamat IP dari ESP32 saat bertindak sebagai AP.
  4. Menangani HTTP Requests:

    • Root Path (/): Menampilkan halaman HTML sederhana dengan dua tautan untuk mengontrol LED.
    • Path /on: Mengaktifkan LED dan mengirimkan respons "LED ON".
    • Path /off: Mematikan LED dan mengirimkan respons "LED OFF".
  5. Menjalankan Server:

    • server.begin(); akan memulai web server untuk menerima permintaan dari pengguna.
  6. Loop Kosong:

    • Karena kita menggunakan library ESPAsyncWebServer, semua request diproses secara asinkron, sehingga loop utama dibiarkan kosong.

4. Uji Coba Web Server

  1. Unggah kode ke ESP8266 menggunakan Arduino IDE.
  2. Cari WiFi dengan nama "ESP8266-AP" pada perangkat Anda.
  3. Sambungkan dengan password 12345678.
  4. Buka browser dan masukkan IP Address yang muncul pada Serial Monitor (misalnya: http://192.168.4.1)
  5. Klik tautan "Nyalakan LED" atau "Matikan LED" untuk mengontrol LED.

Kesimpulan

Pada tutorial ini, kita telah belajar cara membuat web server berbasis WiFi menggunakan ESPAsyncWebServer pada ESP8266 NodeMCU V3 dalam mode Access Point (AP). Dengan mode ini, ESP8266 dapat menjadi hotspot WiFi dan menerima koneksi langsung dari perangkat lain tanpa router.

Sebagai pengembangan lebih lanjut, Anda dapat menambahkan sensor data, autentikasi pengguna, atau menggunakan AJAX untuk komunikasi real-time antara ESP8266 dan klien web. Semoga tutorial ini bermanfaat, selamat mencoba!