Thư viện Blynk IoT: app dashboard nhanh nhất cho ESP32
Blynk IoT là platform cho phép tạo dashboard IoT trên điện thoại + web trong vài phút — không cần code app, không cần server. Phù hợp khi muốn demo nhanh, hoặc kiểm soát thiết bị tại xa qua app đẹp. Bài này hướng dẫn thư viện Blynk trên ESP32 và gói miễn phí có gì.
1. Blynk hoạt động thế nào?
Blynk có 3 thành phần:
- Blynk Cloud: server trung gian (blynk.cloud).
- Blynk Library: chạy trên ESP32, kết nối cloud qua TCP/WebSocket.
- Blynk App + Web Console: tạo dashboard với drag-drop, kéo widget (button, slider, gauge, chart).
Widget gắn với virtual pin (V0–V255). ESP32 đọc/ghi virtual pin qua thư viện.
2. Gói miễn phí 2026
- 2 thiết bị active cùng lúc.
- 5 dashboard mỗi template.
- Cloud storage hạn chế (~1 tháng history).
- Notification email, không có SMS/push miễn phí.
- Không có webhook miễn phí.
So với Arduino Cloud free (2 device, 5 dashboard): tương đương. Blynk có UI dashboard đẹp hơn, code đơn giản hơn.
3. Đăng ký và tạo template
- Đăng ký tại blynk.cloud.
- Developer Zone → My Templates → New Template.
- Đặt tên, chọn Hardware = ESP32, Connection = WiFi.
- Tạo Datastreams — mỗi sensor/control 1 datastream. Vd V0 = nhiệt độ (float, 0-100), V1 = relay (int, 0-1).
- Web Dashboard tab → kéo widget (Gauge, Switch, Chart) → gán datastream.
Save template. Copy Template ID và Auth Token — cần cho code.
4. Cài thư viện
Library Manager → "Blynk". Cài tự động dependency.
5. Hello world — gửi nhiệt độ + nhận lệnh relay
#define BLYNK_TEMPLATE_ID "TMPLxxxxxx"
#define BLYNK_TEMPLATE_NAME "My Device"
#define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxxxxxxxxxx"
#include
#include
#include
#include
const char* SSID = "MyWiFi";
const char* PASS = "mypass";
#define PIN_DHT 4
#define PIN_RELAY 26
DHT dht(PIN_DHT, DHT22);
BlynkTimer timer;
void sendSensor() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (isnan(t) || isnan(h)) return;
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
}
// Nhan lenh tu app: V2 = switch relay
BLYNK_WRITE(V2) {
int val = param.asInt();
digitalWrite(PIN_RELAY, val ? HIGH : LOW);
Serial.printf("Relay = %d\n", val);
}
void setup() {
Serial.begin(115200);
pinMode(PIN_RELAY, OUTPUT);
dht.begin();
Blynk.begin(BLYNK_AUTH_TOKEN, SSID, PASS);
timer.setInterval(2000L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}
6. API căn bản
Blynk.virtualWrite(V0, value)— ghi giá trị lên cloud → app hiển thị.BLYNK_WRITE(V2) {...}— callback khi widget V2 thay đổi (vd user bấm switch).BLYNK_CONNECTED()— callback khi connect.Blynk.notify("Canh bao!")— gửi notification (nếu enable).Blynk.logEvent("alarm", "Cao tro nuoc!")— log event vào timeline.
7. BlynkTimer — thay millis()
Blynk khuyến nghị dùng BlynkTimer thay vì millis() tự code:
BlynkTimer timer;
void setup() {
// ...
timer.setInterval(2000L, sendSensor); // mỗi 2s
timer.setInterval(60000L, checkBattery); // mỗi 1 phút
timer.setTimeout(5000L, oneShotJob); // 1 lần sau 5s
}
void loop() {
Blynk.run();
timer.run(); // bắt buộc
}
Tránh delay() dài trong loop — Blynk cần CPU để xử lý kết nối.
8. Tải app Blynk IoT
App Android/iOS "Blynk IoT" — sau khi tạo template trên web, app tự sync. Tap Add Device → nhập Auth Token. Hoặc setup qua "Edge Provisioning" với BLE (advanced).
Dashboard mobile và web tách biệt — tạo mỗi cái 1 lần.
9. So sánh với MQTT + Home Assistant
| Tiêu chí | Blynk | HA + MQTT |
|---|---|---|
| Setup time | 10 phút | 2 giờ+ |
| App mobile sẵn | Có (đẹp) | HA Companion (mạnh hơn) |
| Truy cập từ xa | Auto (cloud) | Cần DDNS hoặc Nabu Casa |
| Chi phí | $0–$10/mo (giới hạn free) | $0 (tự host) + phần cứng |
| Privacy | Data ở Blynk cloud | 100% local |
| Mở rộng | Theo gói plan | Không giới hạn |
| Automation | Có nhưng đơn giản | Mạnh, scripting |
Blynk phù hợp demo nhanh, dự án 1–2 thiết bị. Khi nhà nhiều device → HA tự host kinh tế hơn.
10. Khi nào dùng Blynk?
- Demo/pitch deck — UI đẹp, dễ trình bày.
- Lớp học, đồ án — không có thời gian setup HA.
- Sản phẩm khởi nghiệp giai đoạn early — chưa cần infrastructure.
- Người dùng cuối không kỹ thuật cần app điều khiển.
Khi nào KHÔNG:
- Privacy critical (camera nhà).
- 5+ device — chi phí tăng nhanh.
- Cần automation phức tạp.
- Production thương mại — không scale tốt.
Liên quan
So sánh với Arduino Cloud miễn phí ra sao?. Đối thủ tự host: Smart home MQTT + Home Assistant với ESP32.