目录
知识点二:ESP8266上传数据至阿里云物联网平台&平台下发
知识点四:阿里云物联网平台AMQP服务端订阅NodeJS Demo
知识点五:使用IoT Studio开发可视化大屏&大屏&手机APP
知识点一:利用nodejs发送数据至阿里云物联网平台
Node就是一个js的执行环境,npm是nodejs下的包管理器。新版的nodejs已经集成了npm;
Node.js官方安装包及源码下载地址:
安装后输入“node --version”检查Node.js版本及是否安装成功;
输入“npm -v”来测试是否安装成功;
npm安装的文件目录
C:\Users\sunkaige\node_modules
C:\Users\sunkaige\AppData\Roaming\npm\node_modules
举例
npm install express -g
npm install jade -g
npm install mysql –g
npm install -g express-generator
说明-g的,会安装到“C:\Users\sunkaige\AppData\Roaming\npm\node_modules”中
案例注意事项:手动创建文件夹 aliyun-iot-demo,在该文件夹下编写程序thermometer.js,之后添加引用的SDK。
方法1(推荐):在该文件夹下右键打开命令窗口,输入“npm install aliyun-iot-mqtt -S”,之后自动安装IoT套件,并生成package.json和node_modules文件夹。
方法2:手动创建package.json ,文件内容如下,之后输入“npm install”,则自动生成node_modules文件夹。
{
"name": "aliyun-iot-demo",
"dependencies": {
"aliyun-iot-mqtt": "^0.0.4"
},
"author": "wongxming",
"license": "MIT"
}
引用SDK后在命令窗口中运行 node thermometer.js即可将数据传到阿里云物联网平台(阿里云物联网平台设置此处忽略),利用Ctrl+C停止服务,则显示暂停发送。效果如下:
知识点二:ESP8266上传数据至阿里云物联网平台&平台下发
ESP8266采用arduino进行开发,首先需要添加阿里云SDK库文件,可直接在arduino库管理器中搜索“AliyunIoTSDK”进行安装,安装后被保存在库管理器中,如“C:\Users\sunkaige\Documents\Arduino\libraries”,也可将下载的库文件夹直接拷到这里。
(说明:软件自带库安装在“C:\Program Files (x86)\Arduino\libraries”中)
注意事项:更改PubSubClient.h文件中定义的 MQTT_MAX_PACKET_SIZE的值, 最好要大于1024, MQTT_KEEPALIVE 大于60,否则连接不上,其余参考示例代码。
在阿里云平台创建产品和设备,进行合适的“功能定义”;
编写arduino程序,注意更改设备三要素名称(ProductKey、DeviceName、DeviceSecret)和与“功能定义”中相同的“标识符”名,上传程序至ESP8266模块中,即可上传数据;
云端下发数据,控制LED灯
在“监控运维”-->“在线调试”页面,选择相应产品、设备和调试功能,输入“1”或“0”,点击发送指令,即可控制ESP8266模块上的LED灯。
知识点三:利用C#发送数据至阿里云物联网平台&平台下发
如何使用C#语言的Paho MQTT类库接入阿里云物联网平台
在VS-->Nuget中安装mqtt包
参考阿里云官网例子程序,再自行更改,此处不做详细说明,看实现效果。
测试“自定义主题测试”,即可将数据传至平台,其中params:{CurrentTemperature:48}是设备上传至平台的数据,大括号内既可以是对应设备下面所有的参数,也可以是单个参数。点击“开启订阅”,即可接收从阿里云“在线调试”中设置的灯状态,相当于远程开关灯。
知识点四:阿里云物联网平台AMQP服务端订阅NodeJS Demo
使用Node.js语言的AMQP SDK接入阿里云物联网平台,接收服务端订阅消息的示例
前面介绍的都是设备如何上传数据到云平台&云平台如何下发指令到设备,这些数据如何应用,阿里云平台也具有丰富的数据应用方式,详见官网介绍
本例为服务端订阅案例,参照阿里云上的案例进行操作即可;
阿里云物联网控制台à公共实例à规则引擎à服务端订阅à消费组列表中创建新消费组,可利用默认的,之后回到订阅列表,创建订阅
创建文件夹,添加npm install rhea –s,创建js程序,复制示例代码,更改参数,在回调函数中添加用于报文显示的代码,部分参数更改参考如下:
//建立连接。
var connection = container.connect({
//接入域名,请参见AMQP客户端接入说明文档。
'host': '1402095915306205.iot-amqp.cn-shanghai.aliyuncs.com',
'port': 5671,
'transport':'tls',
'reconnect':true,
'idle_time_out':60000,
//userName组装方法,请参见AMQP客户端接入说明文档。其中的iotInstanceId,购买的实例请填写实例ID,公共实例请填空字符串""。
'username':'SKGTEST|authMode=aksign,signMethod=hmacsha1,timestamp=1573489088171,authId=LTAI4G5HZVZFkJMeL6ty1qY4,iotInstanceId= ,consumerGroupId=DEFAULT_GROUP|',
//计算签名,password组装方法,请参见AMQP客户端接入说明文档。
'password': hmacSha1('RCylzrkY8vsxo3Wwz08HviA1MeHwVJ', 'authId=LTAI4G5HZVZFkJMeL6ty1qY4×tamp=1573489088171'),
});
运行js后可看出,返回的是JSON格式。
在阿里云物联网平台查看连接的客户端ID信息等数据
知识点五:使用IoT Studio开发可视化大屏&大屏&手机APP
IoT Studio平台是阿里云的物联网开发平台。包含Web可视化开发、移动可视化开发、业务逻辑、数据分析等模块,其业务功能比较强大。本文以nodejs模拟的温湿度仪上传数据为例,简单介绍可视化大屏、大屏和手机可视化页面开发过程,实现底层设备的数据展示。
可视化大屏开发
从“物联网平台”-->“相关产品”-->“IoT Studio”进入开发平台,新建Web应用
之后进入开发界面,类似传统的组态软件,根据需要添加相应的组件,并设置组件的数据源(展示数据 配置展示数据源),如果需要控制底层设备,在交互页面进行配置。
以下为湿度参数配置页面,选择“数字框”组件,数据源绑定到设备的相关参数。
配置完成后,运行nodejs并预览大屏,即可看到数据上传至平台,确认无误后即可发布。
大屏开发
此处说的大屏指的是狭义的“黑底大屏”,在阿里云中虽然属于可视化大屏的一个组件,但具有专用的配置页面和丰富的可视化组件,如饼图、柱状图等,利用该平台,方便快速搭建。
本例中,新建Web应用,在可视化大屏平台中,选择“大屏组件”,选择一个空的模板,之后进行“编辑大屏”,根据需要添加相应的组件。以下为湿度参数配置页面,选择“通用标题”组件,设置自动更新时间,配置数据源为设备的相关参数。
都配置好后,关闭配置页面,运行nodejs并预览大屏,即可看到数据上传至平台,确认无误后即可发布。
手机可视化应用开发
新建移动应用,进入编辑,出现类似以上的配置页面
以下为湿度参数配置页面,选择“卡片”组件,配置数据源为设备的相关参数。
都配置好后,运行nodejs并预览,即可看到数据上传至平台,利用手机扫码即可查看在手机上的运行效果,确认无误后即可发布。