完成物聯網平臺控制臺的配置工作后,您需要進行設備端業務開發。本文通過Node.js腳本模擬設備業務行為,實現設備的MQTT建連和數據上報。
操作步驟
- 在Windows系統或Linux系統下載并安裝Node.js。本文以Windows 10(64位)系統為例,下載安裝包node-v14.15.1-x64.msi。
- 安裝成功后,打開CMD窗口,通過以下命令查看node版本。
node --version
顯示如下版本號,表示安裝成功。v14.15.1
- 在本地計算機創建一個JavaScript文件(例如iot_device.js),用來存放Node.js示例代碼。示例代碼如下:
// 引入依賴mqtt庫,或自己實現。 const mqtt = require('aliyun-iot-mqtt'); // 設備身份。 var options = { productKey: "設備ProductKey", deviceName: "設備DeviceName", deviceSecret: "設備DeviceSecret", host: "iot-cn-***.mqtt.iothub.aliyuncs.com" }; // 1.建立連接。 const client = mqtt.getAliyunIotMqttClient(options); // 2.設備接收云端指令數據。 client.on('message', function(topic, message) { console.log("topic " + topic) console.log("message " + message) }) // 3. 模擬設備上報數據(原始報文)。 setInterval(function() { client.publish(`/${options.productKey}/${options.deviceName}/user/data`, getPostData(),{qos:1}); }, 1000); // 模擬設備原有報文格式。 function getPostData() { let payload = { temperature:Math.floor((Math.random() * 20) + 10) }; console.log("payload=[ " + payload+" ]") return JSON.stringify(payload); }
- 配置設備接入參數。
參數 示例 說明 productKey a16c***** 您添加設備后,保存的設備證書信息。 您可在物聯網平臺控制臺的設備詳情頁面查看。
deviceName device1 deviceSecret b2e6e4f102458d84*** host iot-cn-***.mqtt.iothub.aliyuncs.com MQTT設備接入域名。查看方法,請參見查看實例終端節點。 - 打開CMD窗口,使用
cd
命令找到設備端的iot_device.js文件所在路徑,在該路徑下使用npm
命令下載阿里云IoT的MQTT庫。下載后的MQTT庫文件如下圖所示。npm install aliyun-iot-mqtt -S