【 Cloud 】使用 MQTT 傳送訊息到 Azure IoT Hub 並透過 Built-in endpoint 接收訊息 ( Python )
內容
- 前置準備作業
- 建立與設定 Azure IoT Hub
- 撰寫接收與傳送訊息程式
- 測試與驗證
前置準備作業
- 已建立 Azure 帳號並能正常登入
- 已於電腦端安裝 Python
- 已於電腦端安裝 IDE,本範例使用 Visual Studio Code
建立服務所使用的名稱
屬性 | 名稱 |
---|---|
Resource group | telemetry-rg |
Azure IoT Hub | iot-hub-svc |
Device ID | device01 |
建立與設定 Azure IoT Hub
Step 1. 建立 Azure IoT Hub Service
- 於搜尋框輸入
iot hub
> 點選IoT Hub
的搜尋結果
Step 2. 點選左上角 + Create
按鈕
Step 3. 輸入相關資訊
Resource group
欄位請選擇唯一且可識別的名稱。IoT hub name
欄位請輸入唯一且可識別的名稱。Region
欄位請選擇所要使用服務的所在位置。Tier
欄位請選擇所要使用的規格。Daily message limit
欄位請選擇每月的訊息量。- 以上資訊輸入完成後點選左下角的
Review + Create
Step 4. 確認相關資訊
- 確認完成後請點選左下角的
Create
Step 5. 建立過程中
Step 6. 建立完成,點選 Go to resource
Step 7. 建立 Device ID
- 點選左側的
Devices
> 再點選上方的+ Add Device
Device ID
欄位輸入device01
後再點選下方的Save
Step 8. 取得 Device 的 Primary connection string
與 Primary key
- 點選
device01
- 取得
Connection String
與Key
Step 9. 取得 Event Hub 相關資訊
- 回到所建立的 Azure IoT Hub 頁面,再點選左側的
Built-in endpoints
即可取得Event Hub-compatible name
、Consumer Groups
與Event Hub-compatible endpoint
撰寫接收與傳送訊息程式
-
下載 Sample Code
-
檔案結構
└── Azure_IoT_Hub_Send_Receive
├── Nodejs
│ ├── .env-Sample
│ ├── mqtt_send.js
│ ├── package-lock.json
│ ├── package.json
│ ├── receive.js
│ └── send.js
├── Python
│ ├── .env-Sample
│ ├── receive.py
│ └── send.py
└── README.md
-
切換工作路徑到
./Azure_IoT_Hub_Send_Receive/Python
- 請於終端機輸入下方指令
cd ./Azure_IoT_Hub_Send_Receive/Python
- 請於終端機輸入下方指令
-
安裝相關套件
- 請於終端機輸入下方指令
pip install python-dotenv azure-eventhub paho-mqtt
- 請於終端機輸入下方指令
-
建立與設定
.env
- 於
./Azure_IoT_Hub_Send_Receive/Python
路徑中建立.env
的檔案並輸入以下的內容- 第 1 行的
IOT_HUB_NAME
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 3
所建立的 IoT hub name。 - 第 2 行的
IOT_HUB_DEVICE_ID
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 7
所建立的 Device ID。 - 第 3 行的
CONSUMER_GROUP
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 9
所取得的Consumer Groups
。 - 第 4 行的
EVENT_HUB_COMPATIBLE_ENDPOINT
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 9
所取得的Event Hub-compatible endpoint
。 - 第 5 行的
DEVICE_KEY
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 8
所取得的Primary key
。
- 第 1 行的
- 於
測試與驗證
- 開啟 2 個終端機,第 1 個終端機輸入下方指令
python receive.py
- 開啟 2 個終端機,第 2 個終端機輸入下方指令
python send.py
- 回到第 1 個終端機看結果