ESP8266 - Membuat Web Server Menggunakan ESP8266 dengan Access Point Mode

 

ESP8266 bukan hanya WiFi module, tapi juga bisa menjadi server web mini yang berjalan mandiri. Dalam mode Access Point (AP), ESP8266 bisa membuat jaringan WiFi sendiri tanpa butuh router.

Dalam tutorial ini, kita akan:

  • Mengatur ESP8266 sebagai Access Point
  • Menyajikan halaman HTML sederhana
  • Mengontrol LED dari halaman web

Alat dan Bahan

  • ESP8266 (NodeMCU atau Wemos D1 Mini)
  • Kabel USB
  • LED (Builtin NodeMCU)
  • Software: Arduino IDE + ESP8266 board package

Kode Program ESP8266 Access Point + Web Server


/*
 * Nama Proyek    : Kontrol LED via Web Server (Mode AP - Access Point)
 * Platform       : ESP8266 (NodeMCU, Wemos, dll)
 * Fungsi         : Membuat jaringan Wi-Fi dan server web lokal untuk kontrol LED
 * Penulis        : YOARDUINO
 */
 
// Library dasar untuk komunikasi Wi-Fi pada chip ESP8266
#include "esp8266wifi.h"  

// Konfigurasi nama jaringan Wi-Fi (SSID) yang akan dibuat oleh ESP8266
const char* ssid = "YOARDUINO";

// Kata sandi Wi-Fi (minimal 8 karakter), diperlukan untuk terhubung ke jaringan ini
const char* password = "00000000";

// Membuat objek server web yang berjalan di port 80 (port default HTTP)
WiFiServer server(80);

void setup() {
  // Mengaktifkan komunikasi Serial Monitor dengan kecepatan baud 115200
  Serial.begin(115200);

  // Menetapkan pin LED_BUILTIN (biasanya D4 pada NodeMCU) sebagai output digital
  pinMode(LED_BUILTIN, OUTPUT);

  // Mengaktifkan mode Access Point (AP) pada ESP8266
  WiFi.softAP(ssid, password);

  // Menampilkan alamat IP dari Access Point yang dibuat di Serial Monitor
  Serial.print("AP IP address: ");
  Serial.println(WiFi.softAPIP());  // Alamat IP default biasanya adalah 192.168.4.1

  // Memulai server web agar dapat menerima permintaan dari klien
  server.begin();
}

void loop() {
  // Memeriksa apakah ada klien (misalnya browser) yang mencoba terhubung ke server
  WiFiClient client = server.available();

  // Jika tidak ada klien yang terhubung, keluar dari loop dan ulangi proses
  if (!client) return;

  // Menunggu sampai klien mulai mengirimkan data (permintaan HTTP)
  while (!client.available()) delay(1);  // Delay pendek hingga data tersedia

  // Membaca bagian pertama dari permintaan HTTP, yaitu baris GET
  String request = client.readStringUntil('\r');  // Misalnya: "GET /LED=ON HTTP/1.1"

  // Membaca header HTTP selanjutnya untuk menyelesaikan parsing permintaan
  client.readStringUntil('\n');

  // Memeriksa apakah permintaan mengandung "/LED=ON"
  if (request.indexOf("/LED=ON") != -1) {
    digitalWrite(LED_BUILTIN, LOW);  // Nyalakan LED (aktif rendah pada LED_BUILTIN)
  }

  // Memeriksa apakah permintaan mengandung "/LED=OFF"
  if (request.indexOf("/LED=OFF") != -1) {
    digitalWrite(LED_BUILTIN, HIGH); // Matikan LED
  }

  // Mengirim respons HTTP 200 OK ke klien (browser)
  client.println("HTTP/1.1 200 OK");

  // Menentukan jenis konten yang dikirim adalah HTML
  client.println("Content-Type: text/html");

  // Menambahkan baris kosong untuk menunjukkan akhir dari header HTTP
  client.println();

  // Mulai mengirim halaman HTML sederhana sebagai antarmuka kontrol LED

  // Bagian pembuka HTML dan judul halaman
  client.println("<html><head><title>ESP8266 AP Mode</title></head><body>");

  // Judul besar di halaman
  client.println("<h1>Kontrol LED</h1>");

  // Tombol ON dalam bentuk tautan (link) yang mengarah ke /LED=ON
  client.println("<p><a href="/LED=ON"><button>ON</button></a>");

  // Tombol OFF dalam bentuk tautan (link) yang mengarah ke /LED=OFF
  client.println("<a href="/LED=OFF"><button>OFF</button></a></p>");

  // Penutup tag HTML
  client.println("</body></html>");

  // Delay sangat singkat (opsional, bisa dihapus jika tidak diperlukan)
  delay(1);
}


Penjelasan Kode

  • WiFi.softAP() mengaktifkan mode Access Point
  • server.begin() memulai web server di port 80
  • Halaman web menyediakan dua tombol untuk menyalakan/mematikan LED

Tampilan Serial Monitor

 

 Tampilan Web Server

 

Cara Uji Coba

  • Upload kode ke ESP8266
  • Hubungkan perangkat ke WiFi YOARDUINO dengan password 00000000
  • Buka browser dan akses 192.168.4.1
  • Coba klik tombol ON dan OFF untuk mengontrol LED

Yuk mulai kembangkan proyek IoT kamu dengan server lokal dari ESP8266!


Selanjutnya
« Post Selanjutnya
Sebelumnya
Post Sebelumnya »

EmoticonEmoticon

Note: Only a member of this blog may post a comment.