当前位置:   article > 正文

2023年最新的OneNet版本使用介绍(MQTT协议)_at指令订阅onenet的主题

at指令订阅onenet的主题

2023新版OneNet的升级介绍

OneNet在2023年4月23日,对NB-IoT套件、MQTT套件、和物生活平台进行融合升级,升级后的新版OneNET物联网开放平台将通过统一的入口。 之前写的教程里都是以原旧版本的MQTT套件为主,现在升级新版本之后,之前的教程截图就不适用了。很多小伙伴不知道新版本的OneNet如何使用,当前文章就以汽车行驶数据采集项目为例,介绍新版本的OneNet平台如何使用。

一、项目介绍

【1】项目背景

随着汽车技术的不断发展,汽车的智能化程度越来越高,实时监测和采集汽车行驶数据已成为必要的技术手段。因此,本设计将通过STM32主控芯片和OneNet云平台,设计一款汽车行驶数据采集系统,用于采集汽车行驶过程中的速度、转速、油量、蓄电池电压、转向角度、GPS定位等信息,并实时上传到OneNet云端进行显示。

【2】硬件模块介绍

(1)STM32F103RCT6主控芯片

本系统的主控芯片采用STM32F103RCT6,具有64KB Flash存储器、20KB SRAM存储器和512B EEPROM存储器,支持多种外设接口,包括CAN总线、SPI、I2C等。

(2)CAN总线收发器

CAN总线收发器用于连接汽车上的CAN总线,将CAN总线上传来的数据进行解析和存储。

(3)NB-IoT模块

本系统采用NB-IoT模块作为通信模块,实现数据上传到OneNet云平台。其中,NB-IoT模块采用BC26模块,支持多种通信方式,包括TCP/UDP/MQTT/CoAP等协议。

(4)GPS模块

GPS模块用于获取车辆的定位信息,通过串口与主控芯片进行通信。

(5)传感器模块

本系统还包括多个传感器模块,包括速度传感器、转速传感器、油量传感器、蓄电池电压传感器和转向角度传感器。这些传感器模块通过模拟输入口连接到STM32主控芯片,用于采集汽车行驶过程中的实时数据。

【3】主要实现功能

(1)CAN总线数据采集

本系统通过CAN总线收发器连接汽车上的CAN总线,将CAN总线上传来的数据进行解析和存储,包括速度、转速、油量、转向角度等信息。

(2)GPS定位数据采集

本系统通过GPS模块获取车辆的定位信息,通过串口与主控芯片进行通信,并将获取的GPS数据进行解析和存储。

(3)传感器数据采集

本系统还包括多个传感器模块,包括速度传感器、转速传感器、油量传感器、蓄电池电压传感器和转向角度传感器。这些传感器模块通过模拟输入口连接到STM32主控芯片,用于采集汽车行驶过程中的实时数据。

(4)NB-IoT数据上传

本系统采用NB-IoT模块作为通信模块,实现数据上传到OneNet云平台。通过AT指令将采集到的数据通过MQTT协议上传到OneNet云平台,并在云平台上进行实时显示和存储。

二、OneNet云端部署

官网地址:https://open.iot.10086.cn/

2.1 创建产品与设备

image-20230504164601965

选择MQTT物联网开发平台。

image-20230504164656694

创建产品。

image-20230504164738197

image-20230504165552329

设备管理。

image-20230504164759109

填写设备信息。

image-20230504164833266

创建完毕。

image-20230504164950100

查看设备详情。

image-20230504165006382

2.2 设置物模型

物模型就是onenet之前的数据流模板升级之后的东西。它的作用用于存放设备上传的数据。

image-20230504165652666

image-20230504165713102

image-20230504165733712

接下来根据自己的设备需要上传的数据信息进行添加字段。

image-20230504170323077

image-20230504170428669

image-20230504170540777

image-20230504170824382

字段添加完成。

image-20230504170842446

当前添加的字段如下:

车速speedfloat(单精度浮点型)取值范围:0-300只读
转向角anglefloat(单精度浮点型)取值范围:0-360; 单位:角度只读
电池电压voltagefloat(单精度浮点型)取值范围:0-100只读
GPS定位数据GPSstruct(结构体)-只读

image-20230504171118347

image-20230504171130292

设备属性查看页面,在这个页面可以看到设备上传的数据。

image-20230504171621694

2.3 产品与设备信息

在产品详情和设备详情页面,可以看到ID和key,这个在后面设备登录和可视化页面设计里非常有用。

image-20230504172743379

image-20230504172855492

产品access_key: L8elH4E9n6+pT7UhvUHZOzur2wvrE7FrJxWjCX9TDak=
产品ID: lbAzSXWa62
设备密匙:dnNvZ0FqSUc2QU1VWVpWMm5KbDhUQ2JPUm9LcHpXTmc=
设备名称: dev1
  • 1
  • 2
  • 3
  • 4

2.4 设备MQTT协议登录

帮助文档:https://open.iot.10086.cn/doc/v5/develop/detail/248

服务地址

设备接入支持标准MQTTV3.1.1版本,接入服务地址如下:

连接协议地址
MQTTmqtts.heclouds.com:1883

IP地址和端口号:

IP:     183.230.40.96
端口号: 1883
  • 1
  • 2

设备安全认证

产品、设备创建时,平台为每类产品、每个设备均分配了唯一的 key,设备登录时需要使用通过key计算出的访问token 来进行访问安全认证。

设备可通过MQTT connnect报文进行登录,connect报文中三要素填写方法如下:

参数是否必须参数说明
clientId设备名称
username平台分配的产品ID
password填写经过 key 计算的 token

MQTT密匙获取

https://open.iot.10086.cn/doc/v5/fuse/detail/913

image-20230504173914298

工具软件里需要填写的参数如下:

【1】res选项参数的格式: products/{产品ID}/devices/{设备名称}

【2】et是设置token过期时间:算出1970-1-1到你想要设置的到期时间,单位是秒,填入即可。

比如: 超时时间设置为2024-4-7,那么,这里填入的秒就是:1970-1-1到2024-4-7之间的秒单位时间。

【3】key的参数格式: 就是设备创建之后,在设备详情页的key

image-20230504174311331

MQTT登录参数的总结:

IP地址:183.230.40.96
端口号:1883
MQTT客户端ID:dev1
MQTT用户名:lbAzSXWa62
MQTT登录密码: version=2018-10-31&res=products%2FlbAzSXWa62%2Fdevices%2Fdev1&et=207998147912&method=md5&sign=t4lFh84qj3spvsx7a554og%3D%3D
  • 1
  • 2
  • 3
  • 4
  • 5

接下来使用MQTT软件模拟设备登录。

在软件里填入对应的参数,点击登录。

image-20230504174634370

然后打开onenet的后台页面。 可以看到设备已经在线了。

image-20230504174718350

image-20230504174747916

2.5 OneJSON简介

(1)协议简介

OneJSON协议是针对物联网开发领域设计的一种数据交换规范,数据格式是JSON,用于设备端和物联网平台的双向通信,更便捷地实现和规范了设备端和物联网平台之间的业务数据交互。

(2)设备接入

设备接入流程,可以按照设备类型,分为直连设备和子设备接入。主要包括:设备注册、上线、绑定拓扑和数据上报三个流程。
image

(3)设备上报属性或事件

image

(1) 设备使用OneJSON指定主题,上报数据
(2) 平台对数据进行业务处理,包含格式验证、数据存储等,如果配置了规则引擎,数据将流转到用户配置的消息目的地,推送方式支持HTTP(S)、MQ等
(3) 平台返回数据上报结果
(4) 开发者也可以通过控制台或公开API查询上报的数据
  • 1
  • 2
  • 3
  • 4

(4)设备属性获取

image

(1) 开发者通过公开API或控制台发起获取属性请求
(2) 平台将根据物模型定义验证请求参数
(3) 平台将数据请求发给设备
(4) 平台等待设备响应,如果等待超时,将返回超时错误信息
(5) 设备处理完请求之后,把需要的设备属性返回给平台
(6) 平台收到设备最新属性后,对设备属性进行校验,将结果返回给开发者
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(5)设备服务调用及属性设置

同步服务调用及属性设置

image

(1) 通过调用对应API接口来调用同步服务(定义服务时,调用方式选择为同步的服务即为同步调用)
(2) 平台将根据物模型定义验证输入参数
(3) 平台将数据下发给设备
(4) 平台等待设备响应,如果等待超时,将返回相应错误信息
(5) 设备处理完数据之后,把处理结果返回给平台
(6) 平台收到设备处理结果后,对设备输出参数进行校验,将结果返回给开发者
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

异步服务调用

image

(1)通过调用对应API接口来调用同步服务(定义服务时,调用方式选择为异步的服务即为异步调用)
(2) 平台对输出参数进行校验,并返回处理结果给开发者
(3) 平台采用异步方式将数据下发
(4) 设备收到数据后,进行业务处理
(5) 设备完成业务处理后,返回处理结果给平台
(6) 平台对设备返回的输出参数进行验证
(7) 如果配置了规则引擎,数据将流转到用户配置的消息目的地,推送方式支持HTTPS、MQ等
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(6)拓扑关系

image
网关和子设备绑定拓扑关系后,子设备可借助网关通道进行上下线、数据上传、指令接收等操作,网关和子设备拓扑关系可以通过北向、南向修改两种方式变更。

2.6 主题订阅与发布

帮助文档链接:https://open.iot.10086.cn/doc/v5/fuse/detail/920

(1)通信主题

物联网平台中,服务端和设备端通过通信主题topic实现消息通信,设备可以通过发布消息到系统 topic 调用服务接口,也可以订阅系统 topic 用于接收服务消息通知,服务提供的系统 topic 见Topic列表。

(2)主题列表

物联网平台预定义物模型通信topic,各物模型功能topic消息的数据格式,见OneJSON数据格式,另外为兼容旧设备保留了数据流,同步命令以及设备镜像相关的topic。
topic以正斜线(/)进行分层,区分每个类目。其中,有两个类目为既定类目:{pid}表示产品的产品id;{device-name}表示设备名称;{identifier}表示服务标识符,{cmdId}为平台生成命令id。

(3)物模型通信主题

功能主题操作权限
设备属性上报请求$sys/{pid}/{device-name}/thing/property/post发布
设备属性上报响应$sys/{pid}/{device-name}/thing/property/post/reply订阅
设备属性设置请求$sys/{pid}/{device-name}/thing/property/set订阅
设备属性设置响应$sys/{pid}/{device-name}/thing/property/set_reply发布
设备获取属性期望值请求$sys/{pid}/{device-name}/thing/property/desired/get发布
设备获取属性期望值响应$sys/{pid}/{device-name}/thing/property/desired/get/reply订阅
设备清除属性期望值请求$sys/{pid}/{device-name}/thing/property/desired/delete发布
设备清除属性期望值响应$sys/{pid}/{device-name}/thing/property/desired/delete/reply订阅
设备属性获取请求$sys/{pid}/{device-name}/thing/property/get订阅
设备属性获取响应$sys/{pid}/{device-name}/thing/property/get_reply发布

(4)主题发布与订阅总结

根据前面的帮助文档总结,最后得到的结果如下:

1)主题订阅
为了确保设备上传消息确实被平台所接受处理,设备可以订阅系统 topic 获取属性上报结果消息,属性上报回复topic为:
$sys/lbAzSXWa62/dev1/thing/property/post/reply


(2)主题上报
属性上报的topic为:$sys/lbAzSXWa62/dev1/thing/property/post
上报数据成功后,订阅的属性上报会返回success。

上报的数据如下:
{"id":"123","version":"1.0","params":{"speed":{"value":120.2},"angle":{"value":45.8},"voltage":{"value":23.6},"GPS":{"value":{"lng":109.731653,"lat":28.289839}}}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

打开MQTT客户端,在MQTT客户端里输入主题发布与主题订阅的信息,然后分别点击主题订阅,主题发布,给设备上传数据。

image-20230504215034223

发布之后,打开oennet后台,就可以看到设备上传的数据。

image-20230504215129109

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/731959
推荐阅读
相关标签
  

闽ICP备14008679号