設備狀態資訊與數據結構說明

當您完成了 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 會接收到來自設備的所有資訊,包含連線與運作的時間等等。你可以訂閱並取得設備的資訊。

 

感測器數據 Topic 主題: tele/esense_XXXXXX/SENSOR

以本套件為例,本套件有加入 SCD30 的二氧化碳感測器,所以設備運作時就會產生即時的數據並發送到這個主題上。

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 端軟體做教學,你可以依照你的需求進行配置。