需要用到的工具:
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) })
结果如下

我们的项目成功实现