發佈溫度 - 虛擬物聯網硬體和樹莓派
在本課程的這一部分中,你將通過MQTT發佈樹莓派或虛擬物聯網設備檢測到的溫度值,以便稍後用於計算GDD。
發佈溫度
一旦讀取到溫度,就可以通過MQTT發佈到一些“服務器”代碼,該代碼將讀取這些值,並存儲它們以便用於GDD計算。
任務 - 發佈溫度
編程設備以發佈溫度數據。
-
如果尚未打開
temperature-sensor
應用項目,請打開它 -
重複你在第4課中所做的步驟來連接MQTT並發送遙測數據,你將使用相同的公共Mosquitto代理。
這些步驟是:
-
添加MQTT pip包
-
添加連接到MQTT代理的代碼
-
添加發佈遙測數據的代碼
-
-
確保
client_name
反映此項目的名稱:client_name = id + 'temperature_sensor_client'
-
對於遙測數據,不是發送光值,而是發送從DHT傳感器讀取的溫度值,該值在JSON文檔中的屬性名為
temperature
:_, temp = sensor.read()
telemetry = json.dumps({'temperature' : temp}) -
溫度值不需要經常讀取 - 它在短時間內不會有太大變化,因此將
time.sleep
設置為10分鐘:time.sleep(10 * 60);
💁
sleep
函數以秒為單位,因此為了使其更易於閱讀,該值作為計算結果傳遞。1分鐘有60秒,因此10 x(1分鐘有60秒)給出10分鐘的延遲。 -
以與運行作業前一部分代碼相同的方式運行代碼。如果你使用的是虛擬物聯網設備,請確保CounterFit應用正在運行,並且已在正確的引腳上創建了濕度和溫度傳感器。
pi@raspberrypi:~/temperature-sensor $ python3 app.py
MQTT connected!
Sending telemetry {"temperature": 25}
Sending telemetry {"temperature": 25}
💁 你可以在code-publish-temperature/virtual-device文件夾或code-publish-temperature/pi文件夾中找到此代碼。
😀 你已成功從設備發佈溫度作為遙測數據。