如何通过MQTT协议使DTU设备连接阿里云实现数据传输

原文:百度安全验证

首先创建阿里云账号并登录登录(如果已有阿里云账号则无需注册直接登录即可)

登录阿里云后点击“控制台”->通过搜索“物联网平台”进入到物联网平台

进入到物联网平台后点击“立即开通”进入物联网平台管理界面。(如果已经开通过了的则会接直接进入到物联网平台的管理界面)

然后选择“公共实例”

选择“设备管理”->“产品”->“创建产品”

根据下图或自身理解创建一个产品

创建完产品后,推荐先执行“添加设备”;在设备成功连上阿里云后再来根据自身需求“定义物模型”。

通过上一步骤直接跳转到设备添加界面;或通过“设备管理”->“设备”->“选择刚创建的产品”->“添加设备”跳转到设备添加界面。

设置DeviceName,该参数为“一机一密”连接方式的重要参数之一,2/4G设备推荐使用设备的IMEI号作为识别码,可以通过AT+GSN指令查询设备的IMEI。

直接点击“前往查看”;或点击“完成”后再点击“查看”前往设备的详细信息界面。

进入设备详情界面后,可以点击DeviceSecret旁的“查看”来打开设备证书,其中包含了“一机一密”连接方式所需要用到的3个重要参数,后面简称“三元组”。

DTU参数配置(此文档以TAS_LTE_363为例其余支持MQTT的设备可供参考)

方式一:MQTT透传

我司提供“阿里云物联平台配置_32.exe”参数生成工具,如果没有可以联系销售或技术获取。首先打开参数生成工具,将1.4章节中复制得到的“三元组”直接粘贴到工具中,或者3条分别填入对应位置均可;再分别填入TimeStamp和ClientID,完成后点击“生成”即可。

经过上一步后,我们得到了DTU所需的通用MQTT连接参数,先将连接参数配置进DTU。

配置完连接参数,如需测试数据透传,还需要配置订阅和推送的主题。可以从设备的“Topic列表”->“自定义Topic”中找,一般使用update和get这两个主题。

注意:如果从产品的Topic类列表中得到的主题会带有${deviceName},需要替换成具体设备的deviceName之后才能使用,例如本例中的866262044292042。

如下图,得到订阅和推送的主题后,就可以完成DTU的所有基本配置了。在工具上填完所有参数后,点击“一键配置参数”将参数配置进DTU,当配置完成后点击“重启设备”即可。

方式二:阿里云直链

TAS_LTE_363系列提供了阿里云直连功能,方便阿里云的直接配置接入。在工具中选择“阿里云直连”模式,将“三元组”配置到相应的位置即可,主题选用了get和update主题。填写完参数后点击“一键配置参数”,提示配置完成后点击“重启设备”即可。

数据收发测试

正常情况下,如果设备已插卡插天线,那么重启之后设备会自行连接服务器。当连上服务器时,Link灯常亮,默认开启连接状态上报,串口还会收到连接状态信息“+STATUS: 1,MQTT CONNECTED”。

连上服务器之后在右下角窗口发送数据,就可在平台的“运维监控”->“日志服务”->“上行消息分析”中看到。

如果需要查看详细内容可以点“查看”查看详情。

平台上数据下发可以通过get主题下发,点击设备的“Topic列表”->“自定义Topic”->“发布消息”即可打开发布消息界面,输入相应内容(仅支持ASCII)后确认即可。

设备端会收到相应的数据。

物模型测试

在建立连接并成功透传数据之后,如何进一步满足客户需求并应用到真实的监控环境中,阿里云已经提供了物模型的功能来方便用户实现监控功能。本例中,我们实现了一个485接口、MODBUS协议的温湿度传感器的远程监控。(注意:该示例涉及一定的编程)

MODBUS传感器数据寄存器

定义物模型

本例中,我们创建的是自定义项目,所以是一个空的物模型,所有属性可以根据自身需要添加。通过“产品”->“查看”->“功能定义”->“编辑草稿”打开物模型管理界面。

通过“添加自定义功能”打开编辑界面,根据自身开发需要,填入相应的内容,例如本例中我们需要监控的是温度和湿度这两个属性,逐个添加即可。

创建完属性后,点击“发布更新”即可完成物模型的定义,相当于给该产品下的设备添加了两个属性,用于平台端监控。

数据点上传

在完成上一步“定义物模型”后,我们已经可以在相应设备的运行状态界面看到自己所添加的2个属性了。接下来关于物模型数据点的上传(属性上报),这边主要介绍透传/自定义以及ALink协议两种方式。

方式一:ALink JSON格式

该方式需要设备具有主动上报及数据组包能力,采用ICA 标准数据格式 (Alink JSON):设备按照物联网平台定义的标准数据格式生成数据,然后上报数据。数据格式类型及通讯主题如下:

首先需要更改DTU的主题配置,如下图所示(注意:上图中{productKey}和{deviceName}需要替换成自身设备对应的参数,例如:/sys/a1PHcbsgASq/866262044292042/thing/event/property/post)

完成DTU的配置更改并重启后,我们即可来上传数据进行测试,我在配置工具右下角输入框输入如下内容并发送,就可以在平台上的“设备”->“运行状态”中看到数据的实时变化。

{

"method": "thing.event.property.post",

"id": "4",

"params": {

"Temperature": 45.1,

"Humidity": 60.3

},

"version": "1.0"

}

注意:目前该ALink JSON格式数据需要由客户设备自行生成后传给DTU,若设备无法实现可以参考方式二。

方式二:透传/自定义

设备上报原始数据如二进制数据流,阿里云物联网平台会运行您在控制台提交的数据解析脚本,将原始数据转成标准数据格式后,再进行业务处理。通过这种方式通讯的话,我们需要将主题配置为物模型通讯Topic,如下图所示。

这里我们只测试透传上行,DTU配置如下图所示,修改推送和订阅的主题,点击“一键配置参数”来保存配置。

由于传感器并不会主动上报数据,所以需要DTU去轮询采集,我们可以使用自定义轮询这个功能来完成采集的工作,配置完保存重启。如下图所示:

配置完DTU之后,我们就需要根据自己设备透传至云端的数据来编写“数据解析脚本”,本例以JavaScript脚本为例。

注意:必须了解清楚自己上传数据的形式再来编写脚本。

本例中我们已经配置了DTU每10秒向温湿度传感器发送一条查询指令,正常情况下,温湿度传感器在收到指令后会恢复数据,这里我以其中一次返回举例,传感器返回HEX格式的数据 01 04 04 00 EB 01 E2 0A 69 共9字节。

如果不了解MODBUS RTU协议也不要紧,只要清楚这里我要用到数据中的第4/5/6/7这4个字节即可。其中4,5字节合起来是一个整型数int16,00 EB转换成10进制之后为235,根据本章之前提到的图1中描述,235/10=23.5℃即为真实温度值;同理,6,7两个字节表示的是湿度,转换后为482/10=48.2,则此时的实际湿度为48.2%。了解了自己所需要的数据后,我们可以看如下脚本:

脚本编写完成后,可以将脚本复制到此处

脚本可以进行模拟测试,在下图模拟输入框中填入设备上报的原始数据,点击“执行”

点击“执行”后如果脚本正确即可解析得到相应的ALink JSON格式的数据,确认解析正确后点击“提交”或“保存”即可。

提交脚本之后,我们就可以将DTU接传感器测试或用串口助手模拟测试了,为了直观表现,我们这边采用了modbus slave模拟测试。

并可以在“监控运维”->“日志服务”->“上行消息分析”->“MessageID”中查看原始数据。

以及“物模型数据分析”中查看经过脚本解析的数据。

以上内容便是使用4G DTU设备通过MQTT协议连接阿里云实现数据传输的全部过程!

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DTU(Data Terminal Unit)是一种数据终端单元,用于实现远程设备与云端之间的数据传输和通信。阿里云是阿里巴巴集团提供的云计算服务平台,提供了丰富的云端资源和功能。 要实现DTU自动连接阿里云设备,可以按照以下步骤进行: 1. 准备DTU设备:首先,需要有一个支持数据传输DTU设备,该设备需要具备与云端进行通信的能力。可以选择阿里云支持的DTU设备或其他兼容性较好的设备。 2. 设备注册:在阿里云平台上注册和配置DTU设备。这需要在阿里云控制台中创建一个物联网平台实例,并在实例中添加DTU设备的信息。 3. DTU设置:在DTU设备中配置连接阿里云平台所需的参数,如设备标识、连接协议、通信凭证等。可以使用DTU提供的设置工具或者通过串口等方式进行配置。 4. 云平台通信:DTU设备根据配置参数,通过网络与阿里云平台进行连接。在连接建立后,DTU会自动将设备的数据上传到云平台,并接收云端下发的指令。 5. 数据传输与处理:在阿里云平台上,可以通过物联网平台的控制台对DTU设备进行实时监控和数据处理。可以设置数据规则,将上传的数据进行过滤、存储和分析等操作。 通过以上步骤,就可以实现DTU设备的自动连接阿里云设备。这样,用户可以随时随地监控和管理DTU设备实现对远程设备的集中控制和数据管理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值