教你用Air720 模块通过AT指令以MQTTS方式连接华为云(下篇)
Air720模块介绍
Air720模块是一款带分集接收功能的4G多模无线通信模块,其中Air720D支持LTE-TDD/GPRS双模,Air720H支持LTE-TDD/LTE-FDD/TD-SCDMA/WCDMA/GPRS五模,二者硬件封装和软件完全兼容,几乎能够满足所有的M2M的需求,包括汽车及个人追踪服务、无线POS机、智能计量、工业级PDA以及其它M2M的应用
##Air720支持两种开发模式
- 传统的AT指令模式:MCU通过AT指令控制Air720H进行网络数据传输或其他各种应用;
- 合宙特有的Lua脚本二次开发模式:Air720H拥有丰富的硬件接口及GPIO,可以通过Lua脚本调用由合宙
官方提供的API接口对外设或GPIO进行编程设计,省掉主控MCU,极大的减少了客户的开发周期和成本
本文介绍一下如何使用AT指令模式连接华为云。
首先介绍一下涉及到的AT指令,AT指令固件从V1104版本增加了MQTT证书认证方式,而这也是华为云MQTT连接需要CA证书,正好可以使用Air720模块实现这个功能。
方向 | AT命令 | 说明 |
---|---|---|
发 | AT+CGATT? | 查看当前GPRS附着状态 |
收 | +CGATT: 1 | state>=1, 标明当前GPRS已经附着 |
OK | ||
发 | AT+FSCREATE=”server.crt” | 创建CA 证书文件 |
收 | OK | |
发 | AT+FSWRITE=”server.crt”,0,1402,15 | 1402是华为云CA证书的实际长度,15是超时时间 |
收 | > | 出现>符号后输入CA证书文件的内容 |
发 | CA证书文件的实际内容 | |
收 | OK | 证书接收完成 |
发 | AT+SSLCFG=”cacert”,88,”server.crt” | 设置CA证书证书文件名称, server.crt为CA证书文件名称 |
收 | OK | |
发 | AT+MCONFIG= |
|
收 | OK | |
发 | AT+SSLMIPSTART= |
|
收 | OK | |
收 | CONNECT OK | 收到这条后发下面指令 |
发 | AT+MCONNECT=1,60 | 建立mqtt会话 |
收 | OK | |
收 | CONNACK OK | 收到CONNACK OK后才能发布和订阅消息 |
发 | AT+MSUB=”mqtt/topic”,0 | 订阅 |
收 | OK | |
收 | SUBACK | |
发 | AT+MPUB=”mqtt/topic”,0,0,”SSSSddddd” | |
收 | +MSUB: “mqtt/topic”,9 byte,SSSSddddd | |
发 | AT+MDISCONNECT | 关闭MQTT连接 |
收 | OK |
以上是涉及MQTTS连接的指令,具体指令参加官网AT命令手册
下面先用SSCOM以手动方式测试一下连接华为云的方法,其中的连接参数是我已经在华为云建立好的设备连接参数,后文会介绍如何在华为云建立产品和设备,并获取连接参数的方法。
- 华为云CA证书。把下面内容保存到一个文本文件中,命名为server.crt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23-----BEGIN CERTIFICATE-----
MIID4DCCAsigAwIBAgIJAK97nNS67HRvMA0GCSqGSIb3DQEBCwUAMFMxCzAJBgNV
BAYTAkNOMQswCQYDVQQIEwJHRDELMAkGA1UEBxMCU1oxDzANBgNVBAoTBkh1YXdl
aTELMAkGA1UECxMCQ04xDDAKBgNVBAMTA0lPVDAeFw0xNjA1MDQxMjE3MjdaFw0y
NjA1MDIxMjE3MjdaMFMxCzAJBgNVBAYTAkNOMQswCQYDVQQIEwJHRDELMAkGA1UE
BxMCU1oxDzANBgNVBAoTBkh1YXdlaTELMAkGA1UECxMCQ04xDDAKBgNVBAMTA0lP
VDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJxM9fwkwvxeILpkvoAM
Gdqq3x0G9o445F6Shg3I0xmmzu9Of8wYuW3c4jtQ/6zscuIGyWf06ke1z//AVZ/o
dp8LkuFbBbDXR5swjUJ6z15b6yaYH614Ty/d6DrCM+RaU+FWmxmOon9W/VELu2BB
NXDQHJBSbWrLNGnZA2erk4JSMp7RhHrZ0QaNtT4HhIczFYtQ2lYF+sQJpQMrjoRn
dSV9WB872Ja4DgcISU1+wuWLmS/NKjIvOWW1upS79yu2I4Rxos2mFy9xxz311rGC
Z3X65ejFNzCUrNgf6NEP1N7wB9hUu7u50aA+/56D7EgjeI0gpFytC+a4f6JCPVWI
Lr0CAwEAAaOBtjCBszAdBgNVHQ4EFgQUcGqy59oawLEgMl21//7F5RyABpwwgYMG
A1UdIwR8MHqAFHBqsufaGsCxIDJdtf/+xeUcgAacoVekVTBTMQswCQYDVQQGEwJD
TjELMAkGA1UECBMCR0QxCzAJBgNVBAcTAlNaMQ8wDQYDVQQKEwZIdWF3ZWkxCzAJ
BgNVBAsTAkNOMQwwCgYDVQQDEwNJT1SCCQCve5zUuux0bzAMBgNVHRMEBTADAQH/
MA0GCSqGSIb3DQEBCwUAA4IBAQBgv2PQn66gRMbGJMSYS48GIFqpCo783TUTePNS
tV8G1MIiQCpYNdk2wNw/iFjoLRkdx4va6jgceht5iX6SdjpoQF7y5qVDVrScQmsP
U95IFcOkZJCNtOpUXdT+a3N+NlpxiScyIOtSrQnDFixWMCJQwEfg8j74qO96UvDA
FuTCocOouER3ZZjQ8MEsMMquNEvMHJkMRX11L5Rxo1pc6J/EMWW5scK2rC0Hg91a
Lod6aezh2K7KleC0V5ZlIuEvFoBc7bCwcBSAKA3BnQveJ8nEu9pbuBsVAjHOroVb
8/bL5retJigmAN2GIyFv39TFXIySw+lW0wlp+iSPxO9s9J+t
-----END CERTIFICATE----- - 连接参数
-1. AT+MCONFIG=8598553f-1f3d-47e6-a7b4-bbdabce316ba_0_0_2019071115,8598553f-1f3d-47e6-a7b4-bbdabce316ba,36d37c72b6cb7f5eb04cc2499946d835121e22ae866783cf9792627b7ca59624
-2. AT+SSLMIPSTART=49.4.93.24,8883
-3. AT+MSUB="/huawei/v1/devices/8598553f-1f3d-47e6-a7b4-bbdabce316ba/command/json", 0
-4.AT+MSUB="/huawei/v1/devices/8598553f-1f3d-47e6-a7b4-bbdabce316ba/data/json", 0
-5.AT + MPUB = "/huawei/v1/devices/8598553f-1f3d-47e6-a7b4-bbdabce316ba/data/json", 0,0,"{\22msgType\22:\22deviceReq\22,\22data\22: [{\22serviceId\22: \22ServiceWin\22,\22serviceData\22:{\22Status\22: },\22eventTime\22:\2220180915T121606Z\22}]}"
3.连接过程和结果,按照下图命令顺序和上面给出的连接参数,可以看到连接,订阅,发布几个过程成功。
华为云设置过程
注册华为云账号,并完成实名认证。
过程就不详述了。具体进入华为云IOT开发者注册链接,按照提示一步步完成
进入开发者中心
点击+,新建项目
保存应用ID和密匙,这个在应用开发时需要用到,在MQTTS链接时不需要。
进入新建项目,新建产品
点击产品开发
点击新建产品
选择自定义产品
填写产品信息,其中协议类型选MQTT,数据格式选JSON
然后进入产品开发,选刚刚建立的产品,进入Profile定义,也就是定义数据点
参照下图进行profile定义,实际上是定义了一组Json数据格式
进入在线调测,点击新增测试设备
选择真实设备,设备名和标识随便填,连接方式选直连
点击创建,生成的设备ID和密匙要记下来,一会儿需要用来生成MQTTS的连接参数。
写不下了,分成两篇,未完待续,见下篇。
教你用Air720 模块通过AT指令以MQTTS方式连接华为云(下篇)