Hướng dẫn chi tiết
Bài 2: Mode GPIO — Cảm biến cửa
Kết nối Magnetic Door Sensor vào GPIO 14, cấu hình config.h, nạp code và xem trạng thái cửa trên Serial Monitor và MQTT.
Cập nhật 10/05/2026
Bước 1 — Kết nối dây
ESP32 DevKit Door Sensor ───────────── ─────────── 3.3V ───────── VCC GND ───────── GND GPIO 14 ───────── OUT
Không có door sensor? Dùng button thường: 1 chân vào GPIO 14, chân còn lại vào GND. Nhấn = cửa mở.
Bước 2 — Cấu hình config.h
Mở firmware/esp32_mini_gateway/config.h và điền:
#define WIFI_SSID "Tên_WiFi_2.4GHz"
#define WIFI_PASSWORD "Mật_khẩu"
#define MQTT_HOST "mqtt.iotlabs.vn"
#define MQTT_USERNAME "YOUR_USERNAME"
#define MQTT_PASSWORD "YOUR_PASSWORD"
#define GATEWAY_MODE MODE_GPIO
Bước 3 — Nạp code
- Mở
firmware/esp32_mini_gateway/esp32_mini_gateway.ino - Board: ESP32 Dev Module
- Partition Scheme: Default 4MB with spiffs
- Nhấn Upload
- Nếu lỗi "Failed to connect": nhấn giữ nút BOOT trên ESP32 trong khi nhấn Upload
Bước 4 — Mở Serial Monitor (baud 115200)
Kết nối thành công:
[BOOT] ESP32 Mini Gateway | Mode: GPIO [WIFI] Connected. IP: 192.168.1.20 [MQTT] Connected [GPIO] Door sensor initialized on GPIO 14 [BOOT] Gateway ready
Khi mở/đóng cửa:
[GPIO] door_open=true [MQTT] Published to iotlabs/org_demo/gateways/gw_edu_001/devices/door_sensor_01/telemetry [GPIO] door_open=false [MQTT] Published to ...
Bước 5 — Xem dữ liệu MQTT (MQTTX)
- Mở MQTTX → New Connection → Host:
mqtt.iotlabs.vn, Port:1883 - Nhấn Connect
- Add Subscription:
iotlabs/org_demo/gateways/gw_edu_001/# - Mở/đóng cửa → thấy JSON xuất hiện trong MQTTX
{
"version": "1.0",
"gateway_id": "gw_edu_001",
"mode": "gpio",
"source_id": "door_sensor_01",
"metrics": { "door_open": true },
"ts": 1234567
}