【 Cloud 】使用 Node.js 透過 Azure IoT Hub 與 Build-in Event Hub 傳送與接收訊息

【 Cloud 】使用 Node.js 透過 Azure IoT Hub 與 Build-in Event Hub 傳送與接收訊息
Photo by Cris Tagupa / Unsplash

內容

  • 學習目標
  • 前置準備作業
  • 建立 Azure IoT Hub
  • 撰寫接收 Node.js 程式
  • 撰寫傳送 Node.js 程式
  • 執行與驗證

學習目標

  • 如何使用 Node.js 透過 Azure IoT Hub 與 Build-in Event Hub 傳送與接收訊息

前置準備作業

  • 已建立 Azure 帳號並能正常登入
  • 已於電腦端安裝 Node.js
  • 已於電腦端安裝 IDE,本範例使用 Visual Studio Code

建立 Azure IoT Hub

Step 1. 在上方搜尋框輸入 iot hub 關鍵字並點選 IoT Hub 的搜尋結果

---2021-11-25---3.20.00

Step 2. 點選 + Create

---2021-11-25---3.21.56

Step 3. 輸入相關資訊

  • Subscription 欄位選擇所要使用的訂閱。
  • Resource group 欄位輸入此 IoT Hub 所要歸屬於的群組。
  • IoT Hub Name 欄位輸入一個可識別的名稱。
  • Region 欄位擇此 IoT Hub 要建置於哪個資料中心。
  • 當輸入完成後點選 Review + create

---2021-11-25---3.23.09

Step 4. 建立服務

  • 確認資訊正確則點選 Create

---2021-11-25---3.26.14

Step 5. 點選 Go to resource

---2021-11-25---3.31.36

Step 6. 取得 IoT Hub Connection String

  • 點選左側 Shared access policies > iothubowner

---2021-11-25---3.44.25

  • 點選右側 Primary connection string 旁的複製按鈕

---2021-11-25---3.45.36

Step 7. 取得 IoT Hub 中的 Device Connection String

  • 點選 Devices > + Add Device

---2021-11-25---3.57.08

  • 輸入相關資訊
    • Device ID 欄位請輸入 device001
    • 當輸入完成後點選 Save

---2021-11-25---3.58.17

  • 點選 device001

---2021-11-25---4.00.49

  • 取得 Device Connection String
    • 點選 Primary Connection String 右側的複製按鈕

---2021-11-25---4.02.16

Step 8. 取得 IoT Hub 中的 Event Hub Connection StringEvent Hub NameConsumer Group Name

  • 點選左側的 Build-in endpoints
    • Event Hub-compatible name 中的值為 Event Hub Name
    • Consumer Groups 中的值為 Consumer Group Name
    • Event Hub-compatible endpoint 中的值為 Event Hub Name

---2021-11-25---5.35.43

撰寫接收 Node.js 程式

Step 1. 初始化專案

  • 在終端機輸入下方指令
    npm init -y
    

Step 2. 安裝套件

  • 在終端機輸入下方指令
    npm i dotenv azure-iot-device-mqtt azure-iot-device @azure/event-hubs
    

Step 3. 撰寫程式

  • 建立一個名為 receive.js 的程式,其程式如下 :

Step 4. 建立設定檔

  • 建立一個名為 .env 的設定檔,其內容如下 :
    • 請將 = 右側填入 建立 Azure IoT Hub 段落中 Step 8 所取得的 Event Hub Connection StringEvent Hub NameConsumer Group Name
    EVENTHUB_CONNECTION_STRING=
    EVENTHUB_NAME=
    CONSUMER_GROUP_NAME=
    

撰寫傳送 Node.js 程式

Step 1. 撰寫程式

  • 建立一個名為 send.js 的程式,其程式如下 :

Step 2. 於設定檔新增資訊

  • 在剛才所建的 .env 設定檔中新增下方資訊 :
    • 請將 = 右側填入 建立 Azure IoT Hub 段落中 Step 7 所取得的 Device Connection String
    IOT_HUB_DEVICE_CONNECTION_STRING=
    

執行與驗證

Step 1. 執行 receive.js

  • ① 開啟第一個終端機再切換工作路徑到剛才所建立 receive.js 程式的地方
  • ② 執行下方指令
    node receive.js
    

---2021-11-25---5.47.12

Step 2. 執行 send.js

  • ① 開啟第二個終端機再切換工作路徑到剛才所建立 send.js 程式的地方
  • ② 執行下方指令
    node send.js
    

---2021-11-25---5.54.36

Step 3. 驗證

  • 查看 Step 1 的執行視窗會看到已收到 send.js 所傳送來的訊息

---2021-11-25---5.55.09

GitHub

List of blogs