分享

BC26使用MQTT连接阿里云指导

 美目扬 2018-07-02

 

一、阿里云——账号申请、创建产品、添加设备

注册阿里云https://account.aliyun.com

注意:需要注册后实名认证才可以进入“物联网平台”(更名前叫物联网开发套件),操作工作有任何问题走可以从阿里云的技术支持找到对应文档查看。

注册后选择物联网平台

键入控制台后创建产品

创建产品后

针对产品添加设备

定义topic类型

下面这点很重要,设置转发规则,为了设备接入后针对某一topic发布消息时另外一个终端订阅能看到消息,需要设置topic规则转发,因为阿里云MQTT topic同一时刻只能容许一个终端操作,如果不设置转发只能自己发布消息自己收。

规则引擎设置,下面操作是将Topic:/a1P6PO7KIaW/BC26/data收到的任何消息转发到Topic:/a1P6PO7KIaW/BC26NA/data,*号代表任何数据,也可以对数据进行特殊处理。

二、BC26 MQTT连接阿里云——接入、订阅发布消息

    使用BC26模组,升级最新版本,确认BC26能注册NB网络能获取IP

    以下是AT流程:

************Log start 

[Sun Jul 01 16:11:15.371 2018] ATI

[Sun Jul 01 16:11:15.379 2018] Quectel_Ltd

[Sun Jul 01 16:11:15.379 2018] Quectel_BC26

[Sun Jul 01 16:11:15.379 2018] Revision:BC26NAR01A05_BETA0622

[Sun Jul 01 16:11:15.379 2018]

[Sun Jul 01 16:11:15.379 2018] OK

[Sun Jul 01 16:11:15.387 2018] AT+CMEE=2

[Sun Jul 01 16:11:15.390 2018] OK

[Sun Jul 01 16:11:15.500 2018] AT+CPIN?

[Sun Jul 01 16:11:15.509 2018] +CPIN: READY

[Sun Jul 01 16:11:15.509 2018]

[Sun Jul 01 16:11:15.509 2018] OK

[Sun Jul 01 16:11:20.568 2018] AT+CESQ

[Sun Jul 01 16:11:20.573 2018] +CESQ:45,0,255,255,26,69

[Sun Jul 01 16:11:20.573 2018]

[Sun Jul 01 16:11:20.573 2018] OK

[Sun Jul 01 16:11:20.680 2018] AT+CGDCONT?

[Sun Jul 01 16:11:20.688 2018] +CGDCONT:1,'IP','ctnb','',0,0,0,,,,,,0,,0

[Sun Jul 01 16:11:20.688 2018]

[Sun Jul 01 16:11:20.688 2018] OK

[Sun Jul 01 16:11:20.695 2018] AT+CGPADDR?

[Sun Jul 01 16:11:20.705 2018] +CGPADDR: 1,10.43.190.170

[Sun Jul 01 16:11:20.705 2018]

[Sun Jul 01 16:11:20.705 2018] OK

[Sun Jul 01 16:11:20.717 2018]AT+QMTOPEN=0,'106.15.100.2',1883 //原本是用域名的,但是有些版本可能域名解析有问题,所以当出现域名连接失败时尝试用IP,即电脑上ping下域名获取IP替换,域名一般是productKey.iot-as-mqtt.cn-shanghai.aliyuncs.com'productKey和创建产品的productKey保持一致。


[Sun Jul 01 16:11:20.733 2018] OK

[Sun Jul 01 16:11:21.477 2018]

[Sun Jul 01 16:11:21.477 2018] +QMTOPEN: 0,0   //open成功

[Sun Jul 01 16:11:21.518 2018]

AT+QMTCONN=0,'a1P6PO7KIaW.BC26|securemode=3,timestamp=255,signmethod=hmacsha1|','BC26&a1P6PO7KIaW','1db98c194d770b02b6b2a0ac5ea19c9091df6e70'

[Sun Jul 01 16:11:21.555 2018] OK

[Sun Jul 01 16:11:22.116 2018]

[Sun Jul 01 16:11:22.116 2018] +QMTCONN: 0,0,0  //连接成功,这里涉及一个接入的报文参数,详细接阿里云指导文档,链接如下

https://help.aliyun.com/document_detail/73742.html?spm=a2c4g.11186623.6.704.SeW8Cl

关于这点我已经弄好了一个Python脚本可以轻松计算出秘钥参数报文,

MQTT_Alicloud_parameter.py,安装Python脚本后轻松输出。              

              [Sun Jul 01 16:11:22.131 2018]

              AT+QMTPUB=0,0,0,0,'/a1P6PO7KIaW/BC26/data','{'data':'BC26 mqtt ok 1'}'

[Sun Jul 01 16:11:22.194 2018] OK

[Sun Jul 01 16:11:22.208 2018]

[Sun Jul 01 16:11:22.208 2018] +QMTPUB: 0,0,0  //针对topic'/a1P6PO7KIaW/BC26/data'发布消息成功,注意消息格式是{'***':***},不然那转发失败,这点感觉是阿里云的bug,尝试其他格式能发自己能收,但是另外终端订阅的无法收到转发过去的消息

[Sun Jul 01 16:11:22.711 2018]

[Sun Jul 01 16:11:22.711 2018] +QMTRECV:0,0,'/a1P6PO7KIaW/BC26/data','{'data':'BC26 mqtt ok 1'}'

[Sun Jul 01 16:11:25.284 2018]AT+QMTPUB=0,0,0,0,'/a1P6PO7KIaW/BC26/data','{'data':'BC26 mqttok 2'}'

[Sun Jul 01 16:11:25.346 2018] OK

[Sun Jul 01 16:11:25.375 2018]

[Sun Jul 01 16:11:25.375 2018] +QMTPUB: 0,0,0  //消息发布成功,可以看到另外订阅地方是有收到转发过去的消息,下面有截图

[Sun Jul 01 16:11:25.877 2018]

[Sun Jul 01 16:11:25.877 2018] +QMTRECV:0,0,'/a1P6PO7KIaW/BC26/data','{'data':'BC26 mqtt ok 2'}'  //由于topic设置的是订阅和发布,所以自己发布后能能收到

[Sun Jul 01 16:11:28.423 2018]AT+QMTPUB=0,0,0,0,'/a1P6PO7KIaW/BC26/data','{'data':'BC26 mqttok 3'}'

[Sun Jul 01 16:11:28.483 2018] OK

[Sun Jul 01 16:11:28.499 2018]

[Sun Jul 01 16:11:28.499 2018] +QMTPUB: 0,0,0  //消息发布成功,可以看到另外订阅地方是有收到转发过去的消息,下面有截图

[Sun Jul 01 16:11:29.081 2018]

[Sun Jul 01 16:11:29.081 2018] +QMTRECV:0,0,'/a1P6PO7KIaW/BC26/data','{'data':'BC26 mqtt ok 3'}'

[Sun Jul 01 16:11:41.601 2018] AT+QMTDISC=0

[Sun Jul 01 16:11:41.681 2018] OK

[Sun Jul 01 16:11:41.708 2018]

[Sun Jul 01 16:11:41.708 2018] +QMTDISC: 0,0

 

************Log end

            另外使用一个脚本订阅,通过转发规则,BC26发布的消息能在这边订阅topic 

            后收到发布的消息,如下

下面是阿里云上日志消息:

登录消息

上行消息:

 

 下行消息:

测试中设计的Python脚本以及AT log如下:

BC26 MQTT连接阿里云订阅发布消息log-20180701-161112.txt

iotsub.py(用来模拟另外一个订阅终端)

MQTT_Alicloud_parameter.py(计算接入报文参数)

下载链接

 https://share./5EMhNjV (密码:dtJ0)

    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约