Lập trình ESP32 (7/8): WebServer — điều khiển relay từ trình duyệt
WebServer tích hợp, route GET /on /off, HTML tối giản, relay module opto — an toàn nguồn.
· 1 min read
Khóa lập trình Arduino ESP32 cơ bản — IoT từ Blink đến SmartNode · Phần 7/8▼
Phần 7/8 (~45 phút) · Phần 6 · Phần 8 — Capstone
#include <WiFi.h>
#include <WebServer.h>
WebServer server(80);
const int RELAY_PIN = 26;
void handleRoot() {
server.send(200, "text/html",
"<h1>SmartNode</h1>"
"<p><a href='/on'>Bat den</a> | <a href='/off'>Tat den</a></p>");
}
void setup() {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH); // relay active LOW tùy module
// ... connectWiFi() như phần 5
server.on("/", handleRoot);
server.on("/on", []() {
digitalWrite(RELAY_PIN, LOW);
server.send(200, "text/plain", "ON");
});
server.on("/off", []() {
digitalWrite(RELAY_PIN, HIGH);
server.send(200, "text/plain", "OFF");
});
server.begin();
}
void loop() {
server.handleClient();
}
Mở trình duyệt: http://<IP_ESP32>/. Production: thêm auth, HTTPS (reverse proxy), hoặc MQTT.
Câu hỏi thường gặp
Relay module loại nào an toàn với ESP32?
Module opto cách ly, có jumper JD-VCC — coil 5 V riêng, tín hiệu 3.3 V từ GPIO. Không cấp tải AC lớn khi chưa có hộp và cầu dao.
Bài đọc tiếp theo
Lập trình ESP32 (1/8): Giới thiệu board, cài Arduino IDE & Blink LED
Khóa Arduino ESP32 miễn phí — phần 1: chọn board ESP32-WROOM, cài core esp32 trên Arduino IDE 2.x, nạp Blink, hiểu Serial Monitor. Lộ trình: /blog/hoc-lap-trinh-arduino-esp32-tu-dau
Đọc tiếp →Lập trình ESP32 (2/8): GPIO digital, nút bấm & chống dội (debounce)
GPIO ESP32: digitalRead/Write, nút bấm pull-up nội, toggle LED, debounce phần mềm — nền tảng đọc cảm biến digital.
Đọc tiếp →Lập trình ESP32 (3/8): PWM — LED fade & điều khiển servo SG90
LEDC PWM trên ESP32, fade LED mượt, thư viện ESP32Servo — điều khiển góc servo 0–180°.
Đọc tiếp →Startup của bạn cần tech partner?
Trao đổi miễn phí về MVP, timeline và mô hình chia lợi nhuận phù hợp.