汉枫Elfin-EW11/EG11连接阿里云物联网平台--温湿度检测-阿里云开发者社区

开发者社区> 阿里云物联网> 正文
登录阅读全文

汉枫Elfin-EW11/EG11连接阿里云物联网平台--温湿度检测

简介: 给大家带来详细例程介绍: Elfin-EW11/EG11连接阿里IoT之温湿度检测。

目录:

实现功能

所需设备

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_yYJw.png

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进制):
2_amvw.png
应答帧(16进制):(例如读到温度为25.8℃,湿度为62.9%RH)
3_3X90.png

温度计算:

温度: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、 建立设备模型:根据对设备的抽象,在云端建立设备模型。在本例中,创建一个温湿度检测产品。设备端物模型抽象如下表
4_WqUB.png
3、 打开https://iot.console.aliyun.com/product,选择【设备管理】->【产品】,点击【创建产品】
5_I4Qo.png
完成后即可看到新创建的产品,点击【查看】即可看到产品详情。
6_bap9.png
4、点击【功能定义】->【自定义功能】->【编辑草稿】,进入编辑草稿页面【自定义功能】->【编辑草稿】添加产品属性及功能
7_5E3q.png
5、 添加自定义功能:当前温度和当前湿度
9_NlmZ.png
自定义功能添加完毕后,点击【发布更新】定义一个版本号,完成后的功能列表如下:
10_fH2a.png
6、编写云端解析脚本在产品详情页中点击【数据解析】,进行解析脚本的编写,解析脚本支持JavaScript和Python2.7语言,此处以JavaScript为例进行编写。

关于数据解析更多说明,参考:

https://help.aliyun.com/document_detail/68702.html
11_78Ly.png

此例编写脚本如下,可将下列脚本粘贴至【编辑脚本】中,脚本的逻辑为,将其中湿度和温度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、创建设备完成产品类型的建立之后,创建真实的设备,在【设备】列表中,选择 产品 后,点击【添加设备】。
13_XLNo.png
输入设备DeviceName,自定义一个设备名称,如此处定义为THSensor001,添加完成后,可以一键复制设备证书,等待写入设备中。

如此处添加的设备证书如下:
14_451c.png
15_VWq1.png
16_0zL0.png
若未及时复制设备证书,也可在建好的设备详情页,DeviceSecret处,点击“查看”,查看设备证书信息。

9、设备添加完成后,会先处于“未激活”状态,如下所示:
18_0P9o.png

至此AliIOT云端配置已经完成,接下来完成DTU的配置。

设备连接(EW11/EG11)

案例一:设备EW11的设置和连接

1.硬件连接:

19_y2QS.png
2.EW11设置连接路由器:

(1)EW11供电后,配置EW11为STA模式连接一个路由器

EW11出厂默认AP组网模式,如果要修改为STA组网,可以采用几种方式,方式如下:

方法一: PC无线直连Elfin-EW1X热点,PC打开IOTService工具,通过工具进去配置,执行步骤详见如下。
20_HNfK.png

进入 [设备编辑] 后,在WiFi设置框里 选择模式:STA,扫描需接入的信号热点,最后输入热点密码,点击 确认,后进入 [设备状态] 页面, 重启 DTU设备。

注意:DTU设备设置为STA模式,重启后,不再广播无线热点信号,因此PC或手机不能再搜索到Elfin-EW1X的热点。

设备重启后,EW11与路由器建立连接,PC或手机可通过路由器连接到DTU设备。如下图所示,EW11已经连上路由器并获取到IP地址。

21_Nano.png

方法二: 采用PC无线直连EW11_XXXX热点,浏览器输入10.10.100.254(产品默认IP),再输入用户名密码(默认为admin,admin,打开产品配置Web页面。

点击 [系统设置] 进入 [无线网络设置], 扫描选择要连接的AP热点,输入密码,提交后,进入[其他]-˃[恢复出厂设置/重启] 框下,点击“重启”按钮。
22_GNBW.png

方法三: Smartlink配网,该方法采用智能家居常用的配网方式,具体步骤可参考《Elfin-EW1X_操作指南》。

3、EW11设置连接AliIOT参数:

电脑安装IOTServcie工具后,绑定设备后,选择EW11设备,进入【设备编辑】页面,设置 【串口】参数和【连接】参数。

23_gVgI.png

24_MiDx.png

填写完成后,点击“确认”->“确认”保存参数,重启设备。

重新进入到AliIOT物联网平台,在【设备管理】->【设备】列表里,可以查看到设备已经激活并显示在线,如下所示:
25_JeTF.png

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设备。

26_C6FK.png

(3)之后,进入【设备状态】查看EW11接入状态:

27_djeK.png

5、 AliIOT物联网平台数据接收展示进入到AliIOT物联网平台,在【设备管理】->【设备】列表里选中设备,点击【查看】,进入设备详情页,点击【运行状态】,可查看数据,如下所示:
28_ACZh.png
29_kJzt.png

设备运行一段时间后,点击【查看数据】,可以看到各个时间点温湿度变化情况:
30_NCtf.png
31_P1eJ.png

案例二:设备EG11的设置和连接

1、硬件连接
19_y2QS (1).png

2、EG11设置连接网络:
(1)EG11支持移动、联通SIM卡,只需插入SIM卡即可自动连接网络
(2)EG11接入网络后,电脑开启IOTService工具,绑定EG11设备,绑定设备方法,可参考《HF DTU 设备快速使用指导》。

3、 EG11设置连接AliIOT参数:电脑安装IOTServcie工具后,绑定设备后,选择EG11设备,进入【设备编辑】页面,设置 【串口】参数和【连接】参数。

32_d9Rd.png
33_Qve5.png

填写完成后,点击“确认”->“确认”保存参数,重启设备。重新进入到AliIOT物联网平台,在【设备管理】->【设备】列表里,可以查看到设备已经激活并显示在线,如下所示:

34_Iohm.png

4、 设置EG11串口主动轮询温湿度传感器功能EG11不支持HS脚本功能,可以通过设置串口心跳包方式实现对传感器的定时查询,如下:

35_bnWf.png

设置之后,点击“确认”重启设备,再次进入【设备状态】查看EG11接入状态:
36_MeZf.png

5、 AliIOT物联网平台数据接收展示进入到AliIOT物联网平台,在【设备管理】->【设备】列表里选中设备,点击【查看】,进入设备详情页,点击【运行状态】,可查看数据,如下所示:
37_slYP.png
38_l0qw.png

设备运行一段时间后,点击【查看数据】,可以看到各个时间点温湿度变化情况:
39_qn0P.png

设备调试

在设备连接上AliIOT物联网平台,并上传数据后,若出现数据显示不正确时,可以使用AliIOT物联网平台的【日志服务】功能,选择产品后,点击【上行消息分析】,选择一个【MessageID】查看设备上传到平台的原始数据,并根据上传的数据查找原因,再做匹配调整。

40_roRn.png

如此处查看THSensor002上传的一个数据值,16进制显示为:0x01030402a100dd6a30,其中02a1和00dd分别为湿度值和温度值,转换为10进制后为:673和221,则湿度和温度分别为67.3%RH和22.1℃。

设备WEB应用开发

阿里云IoT物联网平台还提供【应用开发】功能,可以自定义Web页面和APP页面。(注:当前APP自定义开发功能暂时关闭,Ali完善后再重新上线)

1、进入Ali IoT Studio菜单下,选择【项目管理】->【新建项目】->【新建空白项目】,自定义填入一个项目名称。
41_G14d.png

2、之后,进入创建项目的主页,选择【Web应用】,【新建】一个Web应用。
42_cg1B.png
43_cV2S.png
3、 进入Web可视化开发页面,根据需要创建自己的Web展示页面。
44_MiRv.png

4、 选择【组件】进行页面设计,比如选择“实时曲线”,然后选择曲线表后,对“样式” 和“交互”进行设置,比如“关联产品”和“配置数据源”。

45_wksl.png
5、 之后生成页面,可以预览,待设计成熟后,可以发布。比如此Demo预览界面如下:
46_V40v.png

设备运维大屏展示

阿里云物联网平台还提供强大的监控运维功能,大屏显示所有管理设备运行状态,实时掌握设备最新运行情况。在【运维监控】->【运维大盘】->【设备运维大盘】,可以查看整体状态。

47_Lskz.png
48_HgAl.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云物联网
使用钉钉扫一扫加入圈子
+ 订阅

致力于实现万物互联的美好世界,为生态合作伙伴提供基于云计算、大数据、人工智能、云端一体化、安全的物联网基础平台和内容服务平台。

官方博客
官网链接
在线咨询