設備狀態資訊與數據結構說明
當您完成了 EasySense 的配置,包含 WiFi 與 MQTT 的設定. 你應該也可以從瀏覽 EasySensor 的 WEB 介面可以看到目前二氧化碳感測器的即時數據, 以下針對 SCD30 的數據 以及 EasySensor 設備的數據點列出, 除了 感測器本身的數據之外, 設備也會將本身自己的狀態以及運作資訊發送至 MQTT伺服器上. 你可以依照你的需求, 使用 MQTT 客戶端來訂閱這些資訊.
MQTT 主題路徑
這裡假設設備的名稱為 esense_XXXXXX, 這個名稱可以從 設備 WEB 介面的資訊看到.
設備控制 Topic 主題: cmnd/esense_XXXXXX
這個 Topic 是可以對設備下命令的主題,當開發版上有設定 LED 或者有加了繼電器的腳位,可以對設備下命令開啟或關閉。
設備狀態 Topic 主題: tele/esense_XXXXXX/STATE
本 Topic 會接收到來自設備的所有資訊,包含連線與運作的時間等等。你可以訂閱並取得設備的資訊。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
{ "Time": "2024-10-24T10:20:47", "Uptime": "0T00:05:42", "UptimeSec": 342, "Heap": 190, "SleepMode": "Dynamic", "Sleep": 50, "LoadAvg": 19, "MqttCount": 1, "Berry": { "HeapUsed": 3, "Objects": 29 }, "POWER": "ON", "Dimmer": 96, "Color": "0000F5", "HSBColor": "240,100,96", "Channel": [ 0, 0, 96 ], "Scheme": 0, "Width": 1, "Fade": "OFF", "Speed": 1, "LedTable": "ON", "Wifi": { "AP": 1, "SSId": "HAPPYLAND", "BSSId": "B0:B2:DC:B7:EF:09", "Channel": 1, "Mode": "HT20", "RSSI": 68, "Signal": -66, "LinkCount": 1, "Downtime": "0T00:00:04" } } |
感測器數據 Topic 主題: tele/esense_XXXXXX/SENSOR
以本套件為例,本套件有加入 SCD30 的二氧化碳感測器,所以設備運作時就會產生即時的數據並發送到這個主題上。
1 2 3 4 5 6 7 8 9 10 11 |
{ "Time": "2024-10-24T10:49:17", "SCD30": { "CarbonDioxide": 632, "eCO2": 632, "Temperature": 30.9, "Humidity": 50.3, "DewPoint": 19.4 }, "TempUnit": "C" } |
EasySensor 會將設備本身所有的運作資訊,包裝成下列資料點
狀態數據點 JsonPath 提取變數
- Time:時間,提取變數 => $.Time
- Uptime:運行時間,提取變數 => $.Uptime
- UptimeSec:運行秒數,提取變數 => $.UptimeSec
- Heap:堆疊記憶體,提取變數 => $.Heap
- SleepMode:睡眠模式,提取變數 => $.SleepMode
- Sleep:睡眠狀態,提取變數 => $.Sleep
- LoadAvg:平均負載,提取變數 => $.LoadAvg
- MqttCount:MQTT 連接次數,提取變數 => $.MqttCount
- Wifi.AP:Wi-Fi 接入點,提取變數 => $.Wifi.AP
- Wifi.SSId:Wi-Fi SSID ,提取變數 => $.Wifi.SSId
- Wifi.BSSId:Wi-Fi BSSID ,提取變數 => $.Wifi.BSSId
- Wifi.Channel:Wi-Fi 頻道,提取變數 => $.Wifi.Channel
- Wifi.Mode:Wi-Fi 模式,提取變數 => $.Wifi.Mode
- Wifi.RSSI:Wi-Fi 信號強度(RSSI),提取變數 => $.Wifi.RSSI
- Wifi.Signal:Wi-Fi 信號品質,提取變數 => $.Wifi.Signal
- Wifi.LinkCount:Wi-Fi 連線次數,提取變數 => $.Wifi.LinkCount
- Wifi.Downtime:Wi-Fi 停機時間,提取變數 => $.Wifi.Downtime
SCD30 提供了三個數據,EasySense 將這些數據包裝成下列資料點
感測器數據點 JsonPath 提取變數
- 二氧化碳濃度 (單位:ppm) 提取變數: $.SCD30.CarbonDioxide
- 等效二氧化碳濃度 (單位:ppm) 提取變數: $.SCD30.eCO2
- 溫度 (單位: °C) 提取變數: $.SCD30.Temperature
- 濕度 (單位: %) 提取變數: $.SCD30.Humidity
- 露點溫度 (單位: °C) 提取變數: $.SCD30.DewPoint
以上這些數據點,你不一定會全部使用上,但是設備正常運作時,它就會自動將資訊發布到 MQTT 伺服器上,這些數據點的提取變數,你可以於稍後課程使用上,例如要在手機上顯示當下的 二氧化碳濃度或者溫溼度等等。以上這些就是攫取這些數據所需要的變數名稱。
以下開始針對不同的 MQTT Client 端軟體做教學,你可以依照你的需求進行配置。