【 Cloud 】使用 MQTT 傳送訊息到 Azure IoT Hub 並透過 Built-in endpoint 接收訊息 ( Python )

【 Cloud 】使用 MQTT 傳送訊息到 Azure IoT Hub 並透過 Built-in endpoint 接收訊息 ( Python )
Photo by Timo Volz / Unsplash

內容

  • 前置準備作業
  • 建立與設定 Azure IoT Hub
  • 撰寫接收與傳送訊息程式
  • 測試與驗證

前置準備作業

建立服務所使用的名稱

屬性 名稱
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 的搜尋結果

---2023-07-07---8.01.08


Step 2. 點選左上角 + Create 按鈕

---2023-07-07---8.02.38


Step 3. 輸入相關資訊

  • Resource group 欄位請選擇唯一且可識別的名稱。
  • IoT hub name 欄位請輸入唯一且可識別的名稱。
  • Region 欄位請選擇所要使用服務的所在位置。
  • Tier 欄位請選擇所要使用的規格。
  • Daily message limit 欄位請選擇每月的訊息量。
  • 以上資訊輸入完成後點選左下角的 Review + Create

---2023-07-07---8.21.11

---2023-07-07---8.22.30


Step 4. 確認相關資訊

  • 確認完成後請點選左下角的 Create

---2023-07-07---8.24.50


Step 5. 建立過程中

---2023-07-07---8.52.18


Step 6. 建立完成,點選 Go to resource

---2023-07-07---8.54.30


Step 7. 建立 Device ID

  • 點選左側的 Devices > 再點選上方的 + Add Device

---2023-07-07---8.56.32-1

  • Device ID 欄位輸入 device01 後再點選下方的 Save

---2023-07-07---9.00.59

---2023-07-07---9.01.50


Step 8. 取得 Device 的 Primary connection stringPrimary key

  • 點選 device01

---2023-07-07---9.04.03

  • 取得 Connection StringKey

---2023-07-07---9.06.49


Step 9. 取得 Event Hub 相關資訊

  • 回到所建立的 Azure IoT Hub 頁面,再點選左側的 Built-in endpoints 即可取得 Event Hub-compatible nameConsumer GroupsEvent Hub-compatible endpoint

---2023-07-07---9.10.35

撰寫接收與傳送訊息程式

└── 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

測試與驗證

  • 開啟 2 個終端機,第 1 個終端機輸入下方指令
python receive.py

---2023-07-07---1.56.24

  • 開啟 2 個終端機,第 2 個終端機輸入下方指令
python send.py

---2023-07-07---1.56.53

  • 回到第 1 個終端機看結果

---2023-07-07---1.56.47

Sample Code

GitHub

List of blogs