將你的物聯網設備連接到雲端 - 虛擬物聯網硬體和樹莓派
在本課程的這部分,你將把你的虛擬物聯網設備或樹莓派連接到你的物聯網中心,以發送遙測數據和接收命令。
將你的設備連接到物聯網中心
下一步是將你的設備連接到物聯網中心。
任務 - 連接到物聯網中心
-
在 VS Code 中打開
soil-moisture-sensor
文件夾。如果你使用的是虛擬物聯網設備,請確保虛擬環境在終端中運行。 -
安裝一些額外的 Pip 套件:
pip3 install azure-iot-device
azure-iot-device
是一個用於與你的物聯網中心通信的庫。 -
在
app.py
文件的頂部,現有的導入語句下方添加以下導入語句:from azure.iot.device import IoTHubDeviceClient, Message, MethodResponse
這段代碼導入了與你的物聯網中心通信的 SDK。
-
刪除
import paho.mqtt.client as mqtt
行,因為不再需要這個庫。刪除所有 MQTT 代碼,包括主題名稱,所有使用mqtt_client
的代碼和handle_command
。保留while True:
循環,只需從這個循環中刪除mqtt_client.publish
行。 -
在導入語句下方添加以下代碼:
connection_string = "<connection string>"
將
<connection string>
替換為你在本課程前面檢索到的設備連接字符串。💁 這不是最佳做法。連接字符串不應該存儲在源代碼中,因為這樣可能會被檢入源代碼控制並被任何人發現。我們在這裡這樣做是為了簡化操作。理想情況下,你應該使用環境變量和像
python-dotenv
這樣的工具。你將在即將到來的課程中學到更多。 -
在這段代碼下方,添加以下代碼以創建一個可以與物聯網中心通信的設備客戶端對象,並連接它:
device_client = IoTHubDeviceClient.create_from_connection_string(connection_string)
print('Connecting')
device_client.connect()
print('Connected') -
運行這段代碼。你將看到你的設備連接。
pi@raspberrypi:~/soil-moisture-sensor $ python3 app.py
Connecting
Connected
Soil moisture: 379