【 Cloud 】使用 MQTT 傳送訊息到 Azure IoT Hub 並透過 Built-in endpoint 接收訊息 ( Node.js )
內容
- 前置準備作業
- 建立與設定 Azure IoT Hub
- 撰寫接收與傳送訊息程式
- 測試與驗證
前置準備作業
- 已建立 Azure 帳號並能正常登入
- 已於電腦端安裝 Node.js
- 已於電腦端安裝 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/Nodejs
- 請於終端機輸入下方指令
cd ./Azure_IoT_Hub_Send_Receive/Nodejs
- 請於終端機輸入下方指令
-
安裝相關套件
-
請於終端機輸入下方指令
npm i
-
-
建立與設定
.env
- 於
./Azure_IoT_Hub_Send_Receive/Nodejs
路徑中建立.env
的檔案並輸入以下的內容- 第 1 行的
IOT_HUB_DEVICE_CONNECTION_STRING
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 8
所取得的Primary connection string
- 第 2 行的
EVENT_HUB_NAME
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 9
所取得的Event Hub-compatible name
- 第 3 行的
EVENT_HUB_COMPATIBLE_ENDPOINT
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 9
所取得的Event Hub-compatible endpoint
- 第 4 行的
CONSUMER_GROUP_NAME
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 9
所取得的Consumer Groups
- 第 5 行的
IOT_HUB_DEVICE_ID
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 7
所建立的Device ID
。 - 第 5 行的
DEVICE_KEY
等號右邊請輸入建立與設定 Azure IoT Hub
段落Step 8
所取得的Primary key
。
- 第 1 行的
- 於
測試與驗證
- 開啟 2 個終端機,第 1 個終端機輸入下方指令
node receive.js
- 開啟 2 個終端機,第 2 個終端機輸入下方指令
node mqtt_send.js
- 回到第 1 個終端機看結果
[
{
"body":{
"temperature":0.18216750068202936,
"humidity":0.26031225741329145,
"timestamp":"2023/7/7 15:18:11.103"
},
"properties":{
},
"offset":"833184",
"sequenceNumber":1708,
"enqueuedTimeUtc":"2023-07-07T07:18:11.372Z",
"systemProperties":{
"iothub-connection-device-id":"device01",
"iothub-connection-auth-method":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"iothub-connection-auth-generation-id":"638242885636433004",
"iothub-enqueuedtime":1688714291131,
"iothub-message-source":"Telemetry",
"contentType":"application/json",
"contentEncoding":"utf-8"
},
"contentType":"application/json"
}
]