将BC26连接至OneNET平台

2 篇文章 2 订阅
2 篇文章 1 订阅

我们之前了解如何连接OneNET平台的基本操作步骤与流程,也使用软件进行模拟一个设备连接OneNET平台,现在使用AT指令将BC26连接至OneNET平台进行各项操作

在OneNET添加一个BC26设备

我们首先在OneNET平台下添加一个BC26的设备,如下图所示:

 

命令介绍

连接OneNET平台需要用到AT指令。

AT+QMTCFG

该命令用来配置 MQTT 的可选参数

语法:

AT+QMTCFG="version",<tcpconnectID>[,<version>]

参数说明: 

  • <tcpconnectID>:MQTT Socket 服务编号,范围:0-5
  • <version>:MQTT版本协议,3 为MQTTv.3.1;4 为MQTTv3.1.1

注意:BC26支持MQTTv3.1和v3.1.1这两个版本协议,而OneNET平台MQTT只支持v3.1.1版本协议,BC26MQTT协议版本默认是v3.1,必须使用命令设置为v3.1.1版本协议才能连接OneNET平台

OneNETMQTT协议文档

AT+QMTOPEN

该命令用来为 MQTT 客户端打开网络。

语法:

AT+QMTOPEN=<tcpconnectID>,"<host_name>",<port>

参数说明: 

  • <tcpconnectID>:MQTT Socket 服务编号,范围:0-5
  • <host_name>:服务器IP地址或域名,最大字节:100
  • <port>:服务器端口,范围:1-65535
     

AT+QMTCONN

该命令用来为 MQTT 客户端连接服务器。

语法:

AT+QMTCONN=<tcpconnectID>,"<clientID>"[,"<username>"[,"<password>"]]

参数说明: 

  • <tcpconnectID>:MQTT Socket 服务编号,范围:0-5
  • <clientID>:该标志位表示一个设备ID
  • <username>:该标志位表示一个用户名
  • <password>:该标志位表示一个密码

AT+QMTDISC

该命令用来为 MQTT 客户端断开服务器。

AT+QMTDISC=<tcpconnectID>

参数说明: 

  • <tcpconnectID>:MQTT Socket 服务编号,范围:0-5

 使用AT指令登录OneNET平台

①设置MQTT版本协议

命令为:

AT+QMTCFG="version",0,4 //MQTT版本协议,OneNET只支持V3.1.1

正常返回:
OK

②打开MQTT客户端网络

命令为:

AT+QMTOPEN=0,"183.230.40.39",6002

正常返回:
OK
+QMTOPEN: 0,0

注意:该命令发出后,要在几秒内执行第③步骤,否则服务器可能因超时而断开连接

OneNET服务器地址与端口号查找:OneNETMQTT官方服务器地址与端口
 

③连接MQTT服务器

命令为:

AT+QMTCONN=0,"969091782","534682","460049167418007"

正常返回
OK
+QMTCONN: 0,0,0

说明:
969091782代表设备ID
534682代表产品ID
460049167418007代表鉴权信息

查看设备ID:

查看产品ID:

 

 查看鉴权信息:

 然后在OneNET平台查看设备状态,可以看到设备处于在线状态

订阅与发布消息

首先介绍AT指令

AT+QMTSUB

 该命令用于订阅消息

语法:

AT+QMTSUB=<tcpconnectID>,<msgID>,"<topic1>",<qos1>[,"<topic2>",<qos2>…]

参数说明:

  • <tcpconnectID>:MQTT Socket 服务编号,范围:0-5
  • <msgID>:该标志位表示一个数据包,范围:1-65535
  • <topic>:订阅或退订的主题消息.最大长度字节:255
  • <qos>:发送消息级别,0 为最多发送一次;1 为至少发送一次;2 为之发送一次

AT+QMTPUB

该命令用于发布消息 

语法:

AT+QMTPUB=<tcpconnectID>,<msgID>,<qos>,<retain>,"<topic>","<msg>"

 参数说明:

  • <tcpconnectID>:MQTT Socket 服务编号,范围:0-5
  • <msgID>:该标志位表示一个数据包,范围:0-65535,只有当<qos>=0时.该参数值为0
  • <qos>:发送消息级别,0 为最多发送一次;1 为至少发送一次;2 为之发送一次
  • <retain>:发布消息后是否保存消息,0 为不保存;1 为保存
  • <topic>:待发布消息主题.最大长度字节:255
  • <msg>:待发布的消息,最大长度字节:700,在数据模式下则为1024字节

AT+QMTUNS 

 该命令用于退订消息

语法:

AT+QMTUNS=<tcpconnectID>,<msgID>,"<topic1>"[,"<topic2>"…]

  参数说明:

  • <tcpconnectID>:MQTT Socket 服务编号,范围:0-5
  • <msgID>:该标志位表示一个数据包,范围:1-65535
  • <topic>:订阅或退订的主题消息.最大长度字节:255

订阅与发布

④订阅消息

命令为:

AT+QMTSUB=0,1,"topic/exp",1    //订阅消息

正常返回
OK
+QMTSUB: 0,1,0,1    //如果服务器收到订阅消息,会上报URC

⑤发布消息

命令为:

AT+QMTPUB=0,0,0,0,"topic/exp","Hello MQTT" //发布消息

正常返回
OK
+QMTPUB: 0,0,0
+QMTRECV: 0,0,"topic/exp","Hello MQTT"   //收到之前订阅的消息

⑥断开MQTT服务器连接

命令为:

AT+QMTDISC=0    //断开连接

正常返回
OK
+QMTDISC: 0,0

大致整体流程,如下图所示

>>>>>>>>>>  AT+QMTCFG="version",0,4    //设置MQTT版本协议
AT+QMTCFG="version",0,4

OK

>>>>>>>>>>  AT+QMTOPEN=0,"183.230.40.39",6002    //打开MQTT网络
AT+QMTOPEN=0,"183.230.40.39",6002

OK

+QMTOPEN: 0,0

>>>>>>>>>>  AT+QMTCONN=0,"969091782","534682","460049167418007"    //连接MQTT服务器
AT+QMTCONN=0,"969091782","534682","460049167418007"

OK

+QMTCONN: 0,0,0

>>>>>>>>>>  AT+QMTSUB=0,1,"topic/exp",1      //订阅消息
AT+QMTSUB=0,1,"topic/exp",1

OK

+QMTSUB: 0,1,0,1

>>>>>>>>>>  AT+QMTPUB=0,0,0,0,"topic/exp","Hello MQTT"    //发布消息
AT+QMTPUB=0,0,0,0,"topic/exp","Hello MQTT"

OK

+QMTPUB: 0,0,0

+QMTRECV: 0,0,"topic/exp","Hello MQTT"    //收到订阅消息

>>>>>>>>>>  AT+QMTDISC=0    //断开MQTT服务器连接
AT+QMTDISC=0

OK

+QMTDISC: 0,0

OneNET下发命令

OneNET平台支持下发命令,能够实现远程操控IOT设备,下发命令需要订阅才能接收到,接下来我们尝试使用BC26开发板实现上述功能

启动开发板,输入以下命令:

>>>>>>>>>>  AT+QMTCFG="version",0,4
AT+QMTCFG="version",0,4

OK

+IP: 100.118.22.175

>>>>>>>>>>  AT+QMTOPEN=0,"183.230.40.39",6002
AT+QMTOPEN=0,"183.230.40.39",6002

OK

+QMTOPEN: 0,0

>>>>>>>>>>  AT+QMTCONN=0,"969091782","534682","460049167418007"
AT+QMTCONN=0,"969091782","534682","460049167418007"

OK

+QMTCONN: 0,0,0

>>>>>>>>>>  AT+QMTSUB=0,1,"topic/exp",1
AT+QMTSUB=0,1,"topic/exp",1

OK

+QMTSUB: 0,1,0,1

 按如下图所示,尝试给BC26_001设备上下发命令

 

 

 

这时我们观察串口调试助手数据,可以看到收到以下数据:

+QMTRECV: 0,0,"$creq/170ce8d7-0d18-55da-a837-e965e674780f","123456"
+QMTRECV: 0,0,"$creq/2d0cc48a-d0d5-5751-9272-aa800a2b13bd","Hello BC26"

 

 

 表示开发板接收到平台下发的数据。

 

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 您好,连接OneNet需要使用STM32的网络模块,例如W550或ENC28J60等。您需要在STM32上实现MQTT协议,将数据上传到OneNet平台。具体实现方法可以参考OneNet提供的开发文档和STM32的网络编程相关资料。 ### 回答2: bc35是一种低功耗的NB-IoT模组,而STM32是一种微控制器,可以用于连接OneNet物联网平台。 首先,我们需要了解bc35模组的硬件连线。bc35模组有一个UART接口,我们可以通过串口与STM32进行通信。在STM32上,我们需要使用相应的GPIO引脚来模拟串口的TX和RX信号线,以与bc35模组进行通信。 接下来,我们需要在STM32的代码中实现与bc35模组的通信协议。通常,bc35模组使用AT指令进行通信,因此我们需要在STM32上编写代码,以发送和接收AT指令。这可以通过使用串口的发送和接收功能来实现。 在连接OneNet物联网平台之前,我们需要在bc35模组上配置必要的参数。这些参数包括设备的ID、访问密钥、服务器地址等。我们可以使用STM32的代码来向bc35模组发送AT指令,以设置这些参数。 一旦bc35模组成功地连接OneNet物联网平台,我们就可以开始发送和接收数据了。在STM32的代码中,我们可以定义要发送到OneNet平台的数据,并使用相应的AT指令发送数据。另外,我们也可以编写代码来接收从OneNet平台发送回来的数据,并进行相应的处理。 总的来说,将bc35模组与STM32连接OneNet物联网平台需要进行硬件连线和软件编程。通过串口通信和编写AT指令,我们可以实现数据的发送和接收,从而实现与OneNet物联网平台连接和数据交互。 ### 回答3: BC35是一款支持NB-IoT通信技术的模块,而STM32是一款常用的微控制器。要连接STM32与OneNet平台,可以按照以下步骤进行: 1. 硬件连接:首先,将BC35模块和STM32微控制器连接在一起。可以通过串口或者硬件串口进行连接。将BC35的RXD引脚连接到STM32的TXD引脚,将BC35的TXD引脚连接到STM32的RXD引脚。同时,需要把BC35的VCC和GND引脚连接到STM32的对应引脚,确保BC35模块能够正常供电。 2. 通信协议:使用STM32的UART通信协议与BC35进行通信。可以使用AT指令进行通信,具体的AT指令可以参考BC35模块的文档。通过发送AT指令,可以控制BC35模块的功能和参数,例如连接OneNet平台,发送数据等。 3. 连接OneNet平台:在连接OneNet平台之前,需要先在OneNet上创建一个设备,并获取对应的设备ID和API Key。然后,通过AT指令将设备ID和API Key配置到BC35模块中,以便进行连接。 4. 数据传输:一旦连接OneNet平台,就可以通过发送数据到BC35模块,再由BC35发送数据到OneNet平台。可以使用AT指令将数据发送到BC35模块,然后BC35模块会使用NB-IoT技术将数据发送到OneNet平台。 总结起来,连接BC35模块和STM32微控制器,需要进行硬件连接和通信协议的设置。然后,在OneNet平台上创建设备,并将设备ID和API Key配置到BC35模块中。最后,使用AT指令进行数据传输。这样就可以实现STM32与OneNet平台连接和数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值