ESP8266 - Web Server dengan Tombol Kendali LED



Setelah berhasil membuat web server sederhana, kini saatnya menambahkan interaksi nyata: mengendalikan LED menggunakan tombol di halaman web. Ini adalah salah satu langkah dasar dalam membangun sistem IoT (Internet of Things).

Bahan dan Peralatan

  • 1x ESP8266 (NodeMCU, Wemos D1 Mini, atau ESP-01)
  • 1x LED Builtin NodeMCU
  • Breadboard dan jumper kabel
  • Arduino IDE

Contoh Kode: Web Server dengan Tombol Kontrol LED

#include "ESP8266WiFi.h"

const char* ssid = "Nama_WiFi";
const char* password = "Password_WiFi";

WiFiServer server(80);


void setup() {
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);

Serial.begin(115200);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());

server.begin();
}

void loop() {
WiFiClient client = server.available();
if (!client) return;

while (!client.available()) {
delay(1);
}

String request = client.readStringUntil('\r');
client.flush();

if (request.indexOf("/LED=ON") != -1) {
digitalWrite(LED_BUILTIN, LOW);
} else if (request.indexOf("/LED=OFF") != -1) {
digitalWrite(LED_BUILTIN, HIGH);
}

String html = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
html += "<!DOCTYPE html><html><head><title>Kendali LED</title></head><body>";
html += "<h1>Kendali LED dengan ESP8266</h1>";
html += "<p><a href=\"/LED=ON\"><button>LED ON</button></a></p>";
html += "<p><a href=\"/LED=OFF\"><button>LED OFF</button></a></p>";
html += "</body></html>";

client.print(html);
}

Penjelasan Singkat

  • server(80) → Membuka server HTTP di port 80.
  • /LED=ON dan /LED=OFF → URL untuk kontrol LED.
  • client.print(html) → Menampilkan halaman HTML dengan tombol.

Cara Mengakses

  1. Upload kode ke board ESP8266.
  2. Buka Serial Monitor untuk melihat IP.
  3. Ketik IP tersebut di browser.
  4. Klik tombol untuk mengontrol LED!

Tampilan Serial Monitor 

 

Tampilan web browser

Selanjutnya
« Post Selanjutnya
Sebelumnya
Post Sebelumnya »

EmoticonEmoticon

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