發佈溫度 - Wio Terminal
在本課程的這一部分中,你將通過 MQTT 發佈 Wio Terminal 檢測到的溫度值,以便稍後用於計算 GDD。
發佈溫度
一旦讀取到溫度,就可以 通過 MQTT 發佈到一些“伺服器”代碼,該代碼將讀取這些值,並存儲它們以便用於 GDD 計算。微控制器不會從互聯網讀取時間,也不會開箱即用地使用實時時鐘來跟蹤時間,設備需要被編程來執行此操作,前提是它具有必要的硬件。
為了簡化本課程的內容,時間不會與傳感器數據一起發送,而是可以在伺服器代碼接收到消息後添加。
任務
編程設備以發佈溫度數據。
-
打開
temperature-sensor
Wio Terminal 項目 -
重複你在第 4 課中連接到 MQTT 並發送遙測數據的步驟,你將使用相同的公共 Mosquitto 代理。
這些步驟是:
-
將 Seeed WiFi 和 MQTT 庫添加到
.ini
文件中 -
添加配置文件和代碼以連接到 WiFi
-
添加代碼以連接到 MQTT 代理
-
添加代碼以發佈遙測數據
⚠️ 如有需要,請參考第 4 課中的連接到 MQTT 的說明和發送遙測數據的說明。
-
-
確保
config.h
標頭文件中的CLIENT_NAME
反映此項目:const string CLIENT_NAME = ID + "temperature_sensor_client";
-
對於遙測數據,請改為發送從 DHT 傳感器讀取的溫度值,並在 JSON 文檔中的屬性
temperature
中更改main.cpp
中的loop
函數:float temp_hum_val[2] = {0};
dht.readTempAndHumidity(temp_hum_val);
DynamicJsonDocument doc(1024);
doc["temperature"] = temp_hum_val[1]; -
溫度值不需要經常讀取 - 它在短時間內不會有太大變化,因此將
loop
函數中的delay
設置為 10 分鐘:delay(10 * 60 * 1000);