目录:
实现功能
所需设备
AliIOT物联网平台配置
设备连接(EW11/EG11)
设备调试
设备WEB应用开发
设备运维大屏展示
完整文档:[点此下载
](链接地址http://www.hi-flying.com/download-center-1/application-notes-1/download-item-industry-products-application-manual)
实现功能:
Elfin-EW11/EG11通过RS485端口连接一个温湿度传感器,读取温度、湿度数据上传到阿里云IOT平台并在WEB网页上展示出来。具体如下:
EW11/EG11主动读取温湿度传感器的温湿度值
EW11/EG11将读取的温湿度数值传输到阿里IoT云端
IoT云端数据以Web方式展示出来
使用设备:
1、Elfin-EW11(配RJ45转4Pin端子):1套
或
2、Elfin-EG11(配RJ45转4Pin端子):1套
3、温湿度传感器(RS485接口):1个
12V1A电源:1个购买
点此购买
其中:温湿度传感器参数如下:
采用Modbus-RTU通讯规约
串口参数:RS485,波特率9600,数据位8,停止位1,校验位无
地址码:01
温湿度传感器通讯协议示例以及解释:
举例:读取设备地址0x01的温湿度值
问询帧(16进制):
应答帧(16进制):(例如读到温度为25.8℃,湿度为62.9%RH)
温度计算:
温度:0102 H(十六进制)= 258 =>温度= 25.8℃
湿度:0275 H(十六进制)= 629 =>湿度= 62.9%RH
读取命令:01 03 00 00 00 02 C4 0B
回复数据:01 03 04 02 75 01 02 6A 00(示例)
(注意:当温度低于0 ℃时温度数据以补码的形式回复,此处例子仅测试0 ℃以上温度)
AliIOT物联网平台配置
1、 AliIOT物联网平台注册、登录:网址:https://iot.aliyun.com/products/iotstudio
2、 建立设备模型:根据对设备的抽象,在云端建立设备模型。在本例中,创建一个温湿度检测产品。设备端物模型抽象如下表
3、 打开https://iot.console.aliyun.com/product,选择【设备管理】->【产品】,点击【创建产品】
完成后即可看到新创建的产品,点击【查看】即可看到产品详情。
4、点击【功能定义】->【自定义功能】->【编辑草稿】,进入编辑草稿页面【自定义功能】->【编辑草稿】添加产品属性及功能
5、 添加自定义功能:当前温度和当前湿度
自定义功能添加完毕后,点击【发布更新】定义一个版本号,完成后的功能列表如下:
6、编写云端解析脚本在产品详情页中点击【数据解析】,进行解析脚本的编写,解析脚本支持JavaScript和Python2.7语言,此处以JavaScript为例进行编写。
关于数据解析更多说明,参考:
https://help.aliyun.com/document_detail/68702.html
此例编写脚本如下,可将下列脚本粘贴至【编辑脚本】中,脚本的逻辑为,将其中湿度和温度16进制值取出,转换为10进制的湿度和温度,赋值给CurrentHumidity和CurrentTemperature。
// 以下为脚本模版,您可以基于以下模版进行脚本编写/** * 将设备自定义topic数据转换为json格式数据, 设备上报数据到物联网平台时调用 * 入参:topic 字符串,设备上报消息的topic * 入参:rawData byte[]数组 不能为空 * 出参:jsonObj JSON对象 不能为空 */function transformPayload(topic, rawData) { var jsonObj = {} return jsonObj;}/** * 将设备的自定义格式数据转换为Alink协议的数据,设备上报数据到物联网平台时调用 * 入参:rawData byte[]数组 不能为空 * 出参:jsonObj Alink JSON对象 不能为空 */function rawDataToProtocol(rawData) { var jsonObj = {} return jsonObj;}/** * 将Alink协议的数据转换为设备能识别的格式数据,物联网平台给设备下发数据时调用 * 入参:jsonObj Alink JSON对象 不能为空 * 出参:rawData byte[]数组 不能为空 * */function protocolToRawData(jsonObj) { var rawdata = []; return rawdata;}var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //标准ALink协议topic, 设备 上传属性数据到 云端var ALINK_PROP_SET_METHOD = 'thing.service.property.set'; //标准ALink协议topic, 云端 下发属性控制指令 到设备端/*示例数据:传入参数 -> 0x010304027501026A00 010304027501026A00为温湿度传感器返回的整体数据 其中0275是CurrentHumidity值,转化为10进制为629,除以10为62.9 其中0102是CurrentTemperature值,转化为10进制为258,除以10为25.8,输出结果 ->{ "method": "thing.event.property.post", "id": "16974850", "params": { "CurrentHumidity": 62.9, "CurrentTemperature": 25.8 }, "version": "1.1"}*/function rawDataToProtocol(bytes){ var uint8Array = new Uint8Array(bytes.length); for (var i = 0; i < bytes.length; i++) { uint8Array[i] = bytes[i] & 0xff; } var dataView = new DataView(uint8Array.buffer, 0); //10进制bytes数组转16进制字符串 var str = ""; for(var j=0; j<bytes.length; j++) { var tmp = (bytes[j] & 0xff).toString(16); if(tmp.length == 1) { tmp = "0" + tmp; } str += tmp; } var jsonMap = {}; var fHead = uint8Array[0]; // command { jsonMap['method'] = ALINK_PROP_REPORT_METHOD; //Alink协议 - 属性上报topic jsonMap['version'] = '1.1'; //Alink协议 - 协议版本号固定字段 jsonMap['id'] = '' + dataView.getInt32(1); //Alink协议 - 标示该次请求id值 var params = {}; //截取16进制字符串并转成10进制,并除以10 var Humidity_bp = parseInt(str.substring(6,10),16)/10; var Temperature_bp = parseInt(str.substring(10,14),16)/10; params['CurrentHumidity'] = Humidity_bp;//对应产品属性中 CurrentHumidity params['CurrentTemperature'] = Temperature_bp;//对应产品属性中 CurrentTemperature jsonMap['params'] = params;//Alink协议 - params标准字段 } return jsonMap;}
7、验证脚本在【数据解析】->【脚本编辑】页面下方,可以模拟设备上报数据,查看解析结果。如输入设备上报数据:0x010304027501026A00,点击【执行】,查看解析结果,结果正确后,点击【提交】,提交解析脚本。
8、创建设备完成产品类型的建立之后,创建真实的设备,在【设备】列表中,选择 产品 后,点击【添加设备】。
输入设备DeviceName,自定义一个设备名称,如此处定义为THSensor001,添加完成后,可以一键复制设备证书,等待写入设备中。
如此处添加的设备证书如下:
若未及时复制设备证书,也可在建好的设备详情页,DeviceSecret处,点击“查看”,查看设备证书信息。
9、设备添加完成后,会先处于“未激活”状态,如下所示:
至此AliIOT云端配置已经完成,接下来完成DTU的配置。
设备连接(EW11/EG11)
案例一:设备EW11的设置和连接
1.硬件连接:
2.EW11设置连接路由器:
(1)EW11供电后,配置EW11为STA模式连接一个路由器
EW11出厂默认AP组网模式,如果要修改为STA组网,可以采用几种方式,方式如下:
方法一: PC无线直连Elfin-EW1X热点,PC打开IOTService工具,通过工具进去配置,执行步骤详见如下。
进入 [设备编辑] 后,在WiFi设置框里 选择模式:STA,扫描需接入的信号热点,最后输入热点密码,点击 确认,后进入 [设备状态] 页面, 重启 DTU设备。
注意:DTU设备设置为STA模式,重启后,不再广播无线热点信号,因此PC或手机不能再搜索到Elfin-EW1X的热点。
设备重启后,EW11与路由器建立连接,PC或手机可通过路由器连接到DTU设备。如下图所示,EW11已经连上路由器并获取到IP地址。
方法二: 采用PC无线直连EW11_XXXX热点,浏览器输入10.10.100.254(产品默认IP),再输入用户名密码(默认为admin,admin,打开产品配置Web页面。
点击 [系统设置] 进入 [无线网络设置], 扫描选择要连接的AP热点,输入密码,提交后,进入[其他]-˃[恢复出厂设置/重启] 框下,点击“重启”按钮。
方法三: Smartlink配网,该方法采用智能家居常用的配网方式,具体步骤可参考《Elfin-EW1X_操作指南》。
3、EW11设置连接AliIOT参数:
电脑安装IOTServcie工具后,绑定设备后,选择EW11设备,进入【设备编辑】页面,设置 【串口】参数和【连接】参数。
填写完成后,点击“确认”->“确认”保存参数,重启设备。
重新进入到AliIOT物联网平台,在【设备管理】->【设备】列表里,可以查看到设备已经激活并显示在线,如下所示:
4、设置EW11串口主动轮询温湿度传感器功能
(1)编辑脚本
EW11可以通过编辑HIS脚本实现串口自动轮询功能,每隔一定时间主动发出轮询命令。此处设置脚本参考如下,可将如下脚本复制到txt文档保存:
更多HIS脚本编辑介绍,请下载说明文档.
下载地址:http://www.hi-flying.com/download-center-1/application-notes-1/download-item-his-script
(2)导入脚本
在IOTservice工具里,选择EW11设备后,点击【设备编辑】->【高级设置】->【编辑脚本】->【导入脚本】,选择编辑好的TXT脚本文件,直接会导入到EW11设备里面,然后重启EW11设备。
(3)之后,进入【设备状态】查看EW11接入状态:
5、 AliIOT物联网平台数据接收展示进入到AliIOT物联网平台,在【设备管理】->【设备】列表里选中设备,点击【查看】,进入设备详情页,点击【运行状态】,可查看数据,如下所示:
设备运行一段时间后,点击【查看数据】,可以看到各个时间点温湿度变化情况:
案例二:设备EG11的设置和连接
1、硬件连接
2、EG11设置连接网络:
(1)EG11支持移动、联通SIM卡,只需插入SIM卡即可自动连接网络
(2)EG11接入网络后,电脑开启IOTService工具,绑定EG11设备,绑定设备方法,可参考《HF DTU 设备快速使用指导》。
3、 EG11设置连接AliIOT参数:电脑安装IOTServcie工具后,绑定设备后,选择EG11设备,进入【设备编辑】页面,设置 【串口】参数和【连接】参数。
填写完成后,点击“确认”->“确认”保存参数,重启设备。重新进入到AliIOT物联网平台,在【设备管理】->【设备】列表里,可以查看到设备已经激活并显示在线,如下所示:
4、 设置EG11串口主动轮询温湿度传感器功能EG11不支持HS脚本功能,可以通过设置串口心跳包方式实现对传感器的定时查询,如下:
设置之后,点击“确认”重启设备,再次进入【设备状态】查看EG11接入状态:
5、 AliIOT物联网平台数据接收展示进入到AliIOT物联网平台,在【设备管理】->【设备】列表里选中设备,点击【查看】,进入设备详情页,点击【运行状态】,可查看数据,如下所示:
设备运行一段时间后,点击【查看数据】,可以看到各个时间点温湿度变化情况:
设备调试
在设备连接上AliIOT物联网平台,并上传数据后,若出现数据显示不正确时,可以使用AliIOT物联网平台的【日志服务】功能,选择产品后,点击【上行消息分析】,选择一个【MessageID】查看设备上传到平台的原始数据,并根据上传的数据查找原因,再做匹配调整。
如此处查看THSensor002上传的一个数据值,16进制显示为:0x01030402a100dd6a30,其中02a1和00dd分别为湿度值和温度值,转换为10进制后为:673和221,则湿度和温度分别为67.3%RH和22.1℃。
设备WEB应用开发
阿里云IoT物联网平台还提供【应用开发】功能,可以自定义Web页面和APP页面。(注:当前APP自定义开发功能暂时关闭,Ali完善后再重新上线)
1、进入Ali IoT Studio菜单下,选择【项目管理】->【新建项目】->【新建空白项目】,自定义填入一个项目名称。
2、之后,进入创建项目的主页,选择【Web应用】,【新建】一个Web应用。
3、 进入Web可视化开发页面,根据需要创建自己的Web展示页面。
4、 选择【组件】进行页面设计,比如选择“实时曲线”,然后选择曲线表后,对“样式” 和“交互”进行设置,比如“关联产品”和“配置数据源”。
5、 之后生成页面,可以预览,待设计成熟后,可以发布。比如此Demo预览界面如下:
设备运维大屏展示
阿里云物联网平台还提供强大的监控运维功能,大屏显示所有管理设备运行状态,实时掌握设备最新运行情况。在【运维监控】->【运维大盘】->【设备运维大盘】,可以查看整体状态。