You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/tw/2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-...

3.2 KiB

發佈溫度 - 虛擬物聯網硬體與樹莓派

在本課程的這部分,您將透過 MQTT 發佈由樹莓派或虛擬物聯網設備檢測到的溫度值,以便稍後用於計算 GDD。

發佈溫度

一旦讀取到溫度值,就可以透過 MQTT 發佈到某些「伺服器」代碼,該代碼將讀取這些值並存儲,準備用於 GDD 計算。

任務 - 發佈溫度

編程設備以發佈溫度數據。

  1. 如果尚未打開,請打開 temperature-sensor 應用程式專案。

  2. 重複您在第 4 課中所做的步驟以連接到 MQTT 並發送遙測數據,您將使用相同的公共 Mosquitto broker。

    這些步驟包括:

    • 添加 MQTT pip 套件
    • 添加連接到 MQTT broker 的代碼
    • 添加發佈遙測數據的代碼

    ⚠️ 如有需要,請參考 連接到 MQTT 的指導發送遙測數據的指導(第 4 課)。

  3. 確保 client_name 反映此專案的名稱:

    client_name = id + 'temperature_sensor_client'
    
  4. 對於遙測數據,與其發送光線值,不如發送從 DHT 感測器讀取的溫度值,並將其作為 JSON 文件中的 temperature 屬性:

    _, temp = sensor.read()
    telemetry = json.dumps({'temperature' : temp})
    
  5. 溫度值不需要頻繁讀取——在短時間內不會有太大變化,因此將 time.sleep 設置為 10 分鐘:

    time.sleep(10 * 60);
    

    💁 sleep 函數以秒為單位計算時間因此為了更容易閱讀該值是通過計算得出的。1 分鐘有 60 秒,因此 10 x1 分鐘的 60 秒)給出 10 分鐘的延遲。

  6. 以與之前作業部分相同的方式運行代碼。如果您使用的是虛擬物聯網設備,請確保 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 資料夾中找到此代碼。

😀 您已成功將溫度作為遙測數據從您的設備發佈出去。

免責聲明
本文件使用 AI 翻譯服務 Co-op Translator 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。