Hướng dẫn chi tiết
Bài 2: Mock Mode — Không cần cảm biến thật
Hiểu cách mock mode tạo dữ liệu giả lập, cấu hình chu kỳ advertise, và đọc log để xác nhận BLE hoạt động.
Cập nhật 10/05/2026
Mock Mode hoạt động thế nào?
Thay vì đọc phần cứng, chương trình tự tạo dữ liệu:
- TemperatureSensor: 28.5°C ±0.3°C, dao động trong 25–32°C
- DoorSensor: chu kỳ false → false → true → false (cứ 4 lần thì cửa mở 1 lần)
Cấu hình trong config.h
#define NODE_ID "node_001"
#define SENSOR_MODE "mock" // mặc định
#define ADVERTISE_INTERVAL_MS 5000 // 5 giây
Log mỗi 5 giây
[MOCK][TemperatureSensor] temperature=28.5°C [BLE][Advertising] payload=IOTLABS|node_001|mock|TemperatureSensor|temperature=28.5|unit=C [BLE][Advertising] advertise success [MOCK][DoorSensor] door_open=false [BLE][Advertising] payload=IOTLABS|node_001|mock|DoorSensor|door_open=false [BLE][Advertising] advertise success
Hiểu SensorReading struct
Mock và real mode đều trả về cùng kiểu SensorReading:
struct SensorReading {
const char* sensorType; // "TemperatureSensor" | "DoorSensor"
const char* key; // "temperature" | "door_open"
float numericValue; // dùng khi isBoolean = false
bool boolValue; // dùng khi isBoolean = true
const char* unit; // "C" hoặc ""
bool isBoolean;
};
Nhờ đó, payload_builder và ble_advertiser không cần biết dữ liệu đến từ mock hay real.
