TechPartner

← Quay lại Blog
Khóa lập trình Arduino ESP32 cơ bản — IoT từ Blink đến SmartNode · Phần 7 / 8

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
  1. 1Cài đặt & Blink
  2. 2GPIO digital
  3. 3PWM & servo
  4. 4ADC & cảm biến
  5. 5WiFi Station
  6. 6HTTP client
  7. 7Web server
  8. 8Capstone SmartNode

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.

Điều hướng seri: ← Phần 6 · Phần 8 →

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.

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.