汉枫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

相关文章
|
13天前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
396 3
|
13天前
|
监控 安全 Java
Java与物联网:连接与控制设备
Java与物联网:连接与控制设备
40 0
|
2天前
|
消息中间件 弹性计算 物联网
【阿里云弹性计算】阿里云ECS在IoT领域的应用:支撑大规模设备连接与数据处理
【5月更文挑战第26天】阿里云ECS是弹性计算服务,支持IoT设备的连接与数据处理。通过MQTT协议实现设备快速接入,配合消息队列处理异构实时数据。ECS可用于部署数据处理工具、应用服务,如智能家居控制系统,通过弹性伸缩适应负载变化。结合阿里云其他服务,ECS为IoT提供完整解决方案,助力企业数字化转型。
10 0
|
6天前
|
Cloud Native 安全 物联网
【阿里云云原生专栏】云边端一体化:阿里云如何利用云原生技术赋能物联网
【5月更文挑战第22天】阿里云借助云原生技术赋能物联网,实现云边端一体化,提升系统弹性与敏捷性。通过容器化部署,保证高可用性与可靠性。在智能交通等领域,阿里云提供高效解决方案,实现实时数据分析与决策。代码示例展示如何使用阿里云服务处理物联网数据。同时,阿里云重视数据安全,采用加密和访问控制保障数据隐私。丰富的工具和服务支持开发者构建物联网应用,推动技术广泛应用与发展。
147 1
|
13天前
|
消息中间件 存储 JavaScript
阿里云IOC物联网异步处理基础概念
该内容介绍了异步处理基础和消息队列的相关概念。首先,同步处理指任务完成后才能执行其他操作,而异步则允许任务并行执行,不阻塞程序。异步能提高系统并发性和响应性,但也增加复杂性和资源消耗。接着,提到了消息队列,包括生产者、消费者、队列、broker和topic等概念,并指出在IoT中,设备作为生产者发送消息到特定topic,消费者从队列获取数据。最后,简要介绍了AMQP协议,它是用于应用程序间消息传递的开放标准,常用于分布式系统和物联网,如RabbitMQ和Apache Qpid。课程将以Apache Qpid为例接收IoT数据。
140 6
阿里云IOC物联网异步处理基础概念
|
13天前
|
安全 物联网 Android开发
安卓物联网(IoT)应用开发:连接物理世界
【4月更文挑战第14天】本文探讨了安卓平台在物联网应用开发中的角色,强调了设备连接性、数据处理、用户界面、安全性和可扩展性五大关键点。通过举例说明了一个智能家居应用的开发流程,涉及通信协议、用户界面设计、数据安全及可扩展性的实现。安卓物联网应用开发结合了多领域知识,为创造智能、安全的生活解决方案提供了广阔空间。
|
13天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
135 3
|
13天前
|
SQL 关系型数据库 MySQL
阿里云数据库使用教程、购买、价格、连接数据库全流程
阿里云数据库使用涉及购买、创建及登录步骤。支持MySQL、SQL Server等引擎。购买时选择所需配置、地域和可用区。创建数据库和账号后,通过DMS登录。在同一地域内,ECS需将IP加入RDS白名单以实现内网连接。详细流程见阿里云官方文档。
|
13天前
|
域名解析 弹性计算 网络协议
阿里云DNS常见问题之mx设置好但生效检测中未通过如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:

相关产品

  • 物联网平台