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/1-getting-started/lessons/4-connect-internet/single-board-computer-telem...

2.7 KiB

通過網路控制夜燈 - 虛擬物聯網硬體與樹莓派

在本課程的這部分,你將從樹莓派或虛擬物聯網設備向 MQTT broker 發送光線強度的遙測數據。

發佈遙測數據

下一步是建立一個包含遙測數據的 JSON 文件並將其發送到 MQTT broker。

任務

將遙測數據發佈到 MQTT broker。

  1. 在 VS Code 中打開夜燈專案。

  2. 如果你使用的是虛擬物聯網設備,請確保終端正在運行虛擬環境。如果你使用的是樹莓派,則不需要使用虛擬環境。

  3. app.py 文件的頂部添加以下導入:

    import json
    

    json 庫用於將遙測數據編碼為 JSON 文件。

  4. client_name 宣告之後添加以下內容:

    client_telemetry_topic = id + '/telemetry'
    

    client_telemetry_topic 是設備將光線強度發佈到的 MQTT 主題。

  5. 用以下內容替換文件末尾的 while True: 迴圈:

    while True:
        light = light_sensor.light
        telemetry = json.dumps({'light' : light})
    
        print("Sending telemetry ", telemetry)
    
        mqtt_client.publish(client_telemetry_topic, telemetry)
    
        time.sleep(5)
    

    此程式碼將光線強度打包成 JSON 文件並發佈到 MQTT broker。然後它會休眠以減少訊息發送的頻率。

  6. 以與作業上一部分相同的方式運行程式碼。如果你使用的是虛擬物聯網設備,請確保 CounterFit 應用正在運行,並且光線感測器和 LED 已在正確的引腳上建立。

    (.venv) ➜  nightlight python app.py 
    MQTT connected!
    Sending telemetry  {"light": 0}
    Sending telemetry  {"light": 0}
    

💁 你可以在 code-telemetry/virtual-device 資料夾或 code-telemetry/pi 資料夾中找到此程式碼。

😀 你已成功從設備發送遙測數據。

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