需要用到的工具:
1.阿里雲IOT平台
2.NodeJs
3.Visual studio Code
阿里雲IOT平台為廣大物聯網開發者提供了豐富的服務和應用接口,作為學習,我們實現一個名為hello燈的項目
hello燈:1.開關控制 2.顯示文字控制
首先,我們要確保已經開通了阿里雲物聯網平台
進入之后,我們點擊設備管理-》產品-》創建產品 做如下配置
創建好之后我們打開產品的詳情界面,點擊功能定義-》編輯草稿-》添加自定義功能,然后添加如下兩個功能
注意這里的標識符要仔細填寫,之后會用到
編輯好之后如上圖所示,點擊左下的發布更新按鈕,填寫相關信息。這樣我們就完成了產品的設置
之后,我們添加設備。點擊設備,添加設備
創建好之后我們點擊查看-》運行狀態。可以看到這里的設備已經繼承了產品的屬性(由於我已經上傳過值,所以顯示會不一樣)
之后,我們開始設備端代碼的編寫,我們用windows10電腦來運行腳本
創建一個文件夾,用visual studio code 打開。打開terminal(ctrl+ `)輸入npm init -y 來做初始化
(一下具體參考官網文檔 https://help.aliyun.com/document_detail/96618.html?spm=a2c4g.11186623.6.628.67082fb0Q4Up44)
輸入npm install alibabacloud-iot-device-sdk --save 下載阿里雲sdk到項目中來
然后我們創建一個新的文件 index.js 並在其中編寫代碼
使用 const iot = require('alibabacloud-iot-device-sdk'); 引用
之后,我們用如下代碼實現電腦和阿里雲IOT的連接
// node引入包名 const iot = require('alibabacloud-iot-device-sdk'); //創建iot.device對象將會發起到阿里雲IoT的連接 const device = iot.device({ productKey: '<productKey>', //將<productKey>修改為實際產品的ProductKey deviceName: '<deviceName>',//將<deviceName>修改為實際設備的DeviceName deviceSecret: '<deviceSecret>',//將<deviceSecret>修改為實際設備的DeviceSecret }); //監聽connect事件 device.on('connect', () => { console.log('connect successfully!'); });
//來自阿里雲官方文檔
注意其中的
const device = iot.device({
productKey: '<productKey>', //將<productKey>修改為實際產品的ProductKey deviceName: '<deviceName>',//將<deviceName>修改為實際設備的DeviceName deviceSecret: '<deviceSecret>',//將<deviceSecret>修改為實際設備的DeviceSecret });
將里面的 productKey deviceName deviceSecret 分別填為自己設備相對應的 這一步可以在設備詳情頁中復制
點擊DeviceSecret旁邊的查看
點擊一鍵復制

然后粘貼在相應代碼處
使用 node index 運行上述的代碼可以在terminal看到以下信息

表明連接成功,可以看到設備已是在線狀態

隨后,我們嘗試使用 postProps 來設置設備的屬性
我們用如下代碼設置開關為開,文字為hello world
device.postProps({ switch:1, text:"hello world" },(res)=>{ console.log(res) })
把代碼放在末尾,在這里 switch 和 text 對應在產品設置的相應屬性的標識符,注意bool型用 1 和 0
運行代碼
terminal 顯示如下結果

之后我們點擊設備-》查看-》運行狀態 可以看到以下結果
成功設置了屬性
最后,我們開發一個web頁面實時顯示我們設備的屬性
選擇IOT studio-》項目管理-》新建一個項目
進入到項目管理頁面之后關聯我們剛才的設備和產品
在下邊我們新建一個web應用
進入到web編輯界面
選擇左側的組件
我們拖拽出一個指示燈和一個文字框(注意,最好使用chrome瀏覽器,不然會拖不出來)
點擊文字框 找到文字內容,選右側的配置數據源
選擇產品,設備,屬性
點擊確定
指示燈選展示數據並做相同操作
配置好后如下
我們嘗試修改燈為開,顯示文字為Open!
完整代碼如下
const iot = require('alibabacloud-iot-device-sdk'); const device =iot.device({ "ProductKey": "a1JR2MUoUFI", "DeviceName": "helloLight", "DeviceSecret": "6zqI8ZigCwR2umyMu40sl4HtAk6XLF1I" }) device.on("connect",()=>{ console.log("connect succ") }) device.postProps({ switch:1, text:"Open!" },(res)=>{ console.log(res) })
結果如下

我們的項目成功實現