百度云
一、百度云概述
百度物联网平台(物联网核心套件 IoT Core)是百度旗下的一个物联网平台,该平台是一个集成了设备接入、设备管理、数据安全通信、消息订阅、消息转发和数据服务(存储、分析、过滤、解析、集成等)等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端 API,服务端可通过云端 SDK 调用云端 API 将指令下发至设备端,实现远程控制。
官网地址:百度智能云物联网平台控制台
官方文档地址:物联网核心套件文档
注:新用户首次使用 IoT Core 时,需要完成实名认证并开通 IoT Core 服务。 IoT Core 属于后付费业务,未使用 IoT Core 前,不会进行任何计费。
1.1 物联网核心套件中相关的核心概念
IoT Core 实例: 物联网核心套件 IoT Core 的资源划分单位。每个实例是一个独立的命名空间,有独立标识即 Core ID。不同实例之间相互隔离。
设备:
实体世界一个设备的云端映射,是 IoT Core 连接的最小单元,每个设备均可拥有自己的身份(DK/SK)及主题列表。
MQTT:
MQTT(Message Queuing Telemetry Transport)是一个基于二进制消息的客户端服务端架构的发布/订阅(Publish/Subscribe)模式的消息传输协议,最早由 IBM 提出的,如今已经业界通行规范,更符合机器与机器的通信(M2M)以及物联网环境(IoT)。
DK(Device Key):
设备连接所需的 key,用于生成 MQTT 连接所需的用户名。
SK(Device Secret Key):
设备连接所需的密钥,用于生成 MQTT 连接所需要的密码。
影子:
设备影子反映物理世界中的一个物(设备),是物在云端的『影子』或『数字双胞胎』。运行时,物将监控值上报给影子,影子会用一个 json 文档存储设备的最后一次上报的状态,您可以直接通过 MQTT 或 HTTP 访问。同时,影子也提供反控功能。
模板:
设备的模板用于批量创建一类设备,当前提供主题模板。使用相同主题模板创建是设备,其对主题的权限一致。
主题(topic):
主题应用于 MQTT 客户端。topic 规则允许字符串可以带通配符“#”或 “+”。
1.2 物联网核心套件 IoT Core 使用步骤
在使用物联网核心套件服务前需要完成以下步骤:
1. 在百度智能云登录页面,选择百度账号,点击“立即注册”,进入百度账号注册界面。 2. 如果未进行实名认证,请先进行实名认证。 3. 开通 IoTCore:开通服务并同意按需计费,可进入“实例列表”
1. 创建 IoTCore 实例:使用物联网核心套件 IoTCore 服务需要先创建一个 IoT Core 实例。
2. 创建设备:点击实例名称,进入详情页面,点击设备列表即可创建和管理设备。
3. 获取连接信息:查看连接信息,包含 IoTCoreId、DeviceKey 和 DeviceSecret。
4. 使用 MQTT 模拟器连接及收发消息:配置 MQTT 的应用客户端,可以快速验证是否可以实现与 IoT Core 服务交流发送或者接收消息。
5. 使用规则引擎将设备消息流转到业务服务器:天工平台将设备上报的数据流转至百度 kafka 中,之后,业务应用服务器可以消费 kafka 中的数据进行业务处理。
更详细的信息请参考:https://cloud.baidu.com/doc/IoTCore/s/ek7o8ydue
二、本教程实现的功能概述
本文教你怎么使用 AT 命令,通过几个简单的步骤,就可以让合宙 4G 模组接入百度云物接入。
本教程实现的功能定义是:
1. 一机一密建立 MQTT 连接 ;
2. 使用证书鉴权建立 MQTT 连接;
三、准备硬件环境
工欲善其事,必先利其器。在正式介绍本功能示例之前,需要先准备好以下硬件环境。
本文章使用 Air700EMQ 核心板做演示;
参考:硬件环境清单,准备以及组装好硬件环境。
四、准备软件环境
在量产的项目硬件设计中,一般都是由主控 MCU 通过 UART 给 4G 模组发送命令实现具体的业务逻辑;
在本教程中,为了测试方便,没有使用主控 MCU;
而是使用了 PC 电脑上的一个串口工具 SSCOM 给 4G 模组发送命令来实现演示功能;
1. Luatools工具;
2. SSCOM 串口通信工具;
3. 本教程使用的AT固件版本号是:AirM2M_700EMQ_V2019_LTE_AT,如果版本号不正确,参考:固件版本确认和烧录检查确认。
五、连接百度云所需相关指令
本文主要使用 MQTT 协议接入百度云平台,相关指令点击连接查看合宙 4G 模组 MQTT 指令
六、 百度云操作实例
6.1 确认开发板正常开机并联网正常
依次发送如下指令序列确认模组开机正常,且网络正常。
AT //测试AT指令
AT
OK
ATE0 //关闭回显
ATE0
OK
AT+CSQ //查询模组信号质量
+CSQ: 30,99
OK
AT+CPIN?
+CPIN: READY
OK
AT+CCID //查询卡ccid,如果AT+CPIN? AT+CCID指令返回错误信息,请检查物联网卡正常(无卡,无流量、锁卡、欠费等)
898604F4152391195302
OK
AT+CGATT? //AT+CGATT?查询是否注册网络收到+CGATT: 1值是1即为注册成功,正常情况下注册时间不会超过两分钟,如果超过两分钟没有注册可以进入飞行模式五秒后退出再查询,或者直接重启模块。
+CGATT: 1
OK
AT+CSTT //**AT+CSTT**配置网络,非私有APN以外Cat1的固件支持根据卡自动配置APN,直接输入AT+CSTT即可,模块会按照自动获取的APN设置CSTT的APN。
OK
AT+CIICR //**AT+CIICR**激活网络,在IP START的状态使用AT+CIICR激活网络
OK
AT+CIFSR //激活以后通过**AT+CIFSR**查询是否获取IP,如果成功就可以开始配置TCP连接了,如果不成功使用AT+CIPSHUT关闭移动网络,从AT+CSTT重新进行。
10.177.182.22
6.2 物联网核心套件 IoT Core 操作
打开百度智能云官网输入“物联网核心套件 IoT Core”,如果您未注册请参考上文或者百度智能云帮助文档进行注册。
点击“立即使用”进入
点击创建 IoT Core 实例
在“名称”框内输入实例名称,付费方式选择“按需付费”,在点击“确认购买”
点击创建的实例,进入设备创建页面
切换到模板标签页,创建消息模板
其中:
$iot/{deviceName}/events 为客户端向云端发布消息的主题,系统默认
$iot/{deviceName}/msg 为云端向客户端发布消息的主题,系统默认
$iot/{deviceName}/user/air780e 为自定义云端发布/订阅的主题
{deviceName}为具体设备名称
点击创建的实例,进入设备创建页面
名称框内填写设备的名称,认证方式选择“秘钥认证”,选择上一步创建好的模板,然后点击“提交”
设备创建成功后会自动生成连接配置信息,如下图所示,请妥善保管,后续环节会用到
把得到的 IoTCoreId、DeviceKey、DeviceSecret 记录如下:
IoTCoreId:asfalyd
DeviceKey:air780dev001
DeviceSecret:kHjWlQXleaiMrwdJ
使用指定算法生成连接信息;快速体验中,也可以在线生成器来进行使用,打开 MQTT 连接信息生成器 ,使用拿到的 IoTCoreId、DeviceKey 和 DeviceSecret,生成 MQTT 连接所需的用户名及密码。
根据上面的连接信息生成如下 mqtt 连接信息
Broker地址:asfalyd.iot.gz.baidubce.com
MQTT用户名:thingidp@asfalyd|air780dev001|0|MD5
MQTT密码:bbfeead4ca919cacfb164cc3b3af6364
ClientID:air780dev001
云端订阅的主题:
$iot/air780dev001/events
云端发布的主题:
$iot/air780dev001/msg
自定义云端发布/订阅的主题:
$iot/air780dev001/user/air780e
我们使用自定义主题“$iot/air780dev001/user/air780e”进行测试,先使用 mqtt 客户端在电脑端测试连接是否可用,将以上 mqtt 连接参数填入对应的框中,点击连接
客户端订阅主题“$iot/air780dev001/user/air780e”
向主题“$iot/air780dev001/user/air780e”发送“hello world”,订阅主题接收到同样的消息,证明连接可以使用
接下来我们通过 AT 指令让模组接入百度云 IoT Core
6.3 开发板 AT 实例
6.3.1 一机一密建立 MQTT 连接 AT 示例;
** 建立 mqtt 连接** 执行如下指令序列,可以让模组与 MQTT 服务器建立连接
AT+CGREG? //查询当前GPRS注册状态
+CGREG: 0,1 //<n>=0,表示禁用URC上报,<stat>=1,标识已经注册GPRS网络,而且是本地网
OK
AT+CGATT? //查看当前GPRS附着状态
+CGATT: 1 //<state>=1,标明当前GPRS已经附着
OK
AT+MCONFIG="air780dev001","thingidp@asfalyd|air780dev001|0|MD5", "bbfeead4ca919cacfb164cc3b3af6364" //_配置mqtt连接参数,分别为ClientID:001,MQTT用户名:thingidp@abrgnbf|001|0|MD5,MQTT密码:7c28b808509c1b641a8dcea4ee517e2b_
OK
AT+MIPSTART="asfalyd.iot.gz.baidubce.com_",_"1883" //_建立mqtt连接通道,连接为上节生成的地址:abrgnbf.iot.gz.baidubce.com_
OK
CONNECT OK
AT+MCONNECT=1,60 //_配置mqtt保活时间,60表示保活时间为60s_
OK
CONNACK OK
建立 mqtt 连接后,我们就可以进行后面的主题订阅与发布步骤了。 订阅主题与发布消息 如图,$iot/air780dev001/user/air780e 主题是可以订阅和发布消息的 执行如下指令序列,可以让模组订阅 $iot/air780dev001/user/air780e 主题
AT+MSUB="$iot/air780dev001/user/air780e",0 //_订阅主题_
OK
SUBACK
模组订阅$iot/air780dev001/user/air780e成功后主题后,我们可以AT主题$iot/air780dev001/user/air780e 发布消息“hello world”
AT+MPUB="$iot/air780dev001/user/air780e",0,"hello world"
模组串口端输出如下消息: +MSUB: "$iot/air780dev001/user/air780e",11 byte,hello world 通过电脑端 mqtt 客户端也可以看到消息已经发布成功,如下图所示
说明:消息中 +MSUB: "$iot/air780dev001/user/air780e",11 byte,为消息头,后面的"byte,hello world“为实际的消息内容。
6.3.2 使用证书鉴权建立 MQTT 连接 AT 示例
1. 创建设备 添加设备填写相关信息,“认证方式”选择“证书认证”,如下图所示: 2. 保存证书文件 将下载的 TXT 文件按照使用说明将文件内容分别保存为:client_cert.pem 和 client_private_key.pem 说明:设备证书:-----BEGIN CERTIFICATE-----
和 -----END CERTIFICATE-----
起止的部分为设备证书内容,可将此部分单独保存或在代码中直接粘贴,作为设备证书使用。 设备私钥:----------BEGIN RSA PRIVATE KEY----------
和 -----END RSA PRIVATE KEY-----
起止的部分为设备私钥,可将此部分单独保存或在代码中直接粘贴,作为设备私钥使用。获取根证、鉴权证书、设备私钥文件,用于证书鉴权建立 MQTT 连接,详细使用方法请参考:使用证书鉴权建立 MQTT 连接 3. 下载根证文件,并保存,文件下载地址在这里:https://doc.bce.baidu.com/bce-documentation/IOT/GlobalSign.cer.zip 最后如下所示有三个文件,从上到下分别是:设备证书
、设备私钥
、根证文件。 由于我们未使用生成地址,使用证书鉴权建立 MQTT 连接需要使用实例的接入点作为 Broker 地址,示例创建的设备对应的接入点为:asfalyd.iot.gz.baidubce.com。
为了方便下面的测试,我们将建立 MQTT 连接的信息整理如下(以上三个文件可以用文本编辑工具打开):
Broker地址:
asfalyd.iot.gz.baidubce.com
根证文件(GlobalSign.cer)内容:
-----BEGIN CERTIFICATE-----
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
WD9f
-----END CERTIFICATE-----
设备证书文件(client_cert.pem)内容:
-----BEGIN CERTIFICATE-----
MIIEnzCCA4egAwIBAgIDH3xuMA0GCSqGSIb3DQEBCwUAMG4xCzAJBgNVBAYTAkNO
MSMwIQYDVQQDDBpvbmxpbmUuaW90ZGV2aWNlLmJhaWR1LmNvbTEOMAwGA1UECgwF
QkFJRFUxDDAKBgNVBAsMA0JDRTEcMBoGCSqGSIb3DQEJARYNaW90QGJhaWR1LmNv
bTAeFw0yNDEwMjkxMjM5MThaFw0zNDEwMjcxMjM5MThaMEcxDjAMBgNVBAoMBUJh
aWR1MQswCQYDVQQGEwJDTjEaMBgGA1UEAwwRYXNmYWx5ZC9haXI3ODBlU2UxDDAK
BgNVBAsMA0JDRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALbGRgGP
RSzElGAHsxnG0KCkq4K/X/pIhCKJCCgbdTryfWySX/HDakhDz2gT7ILomPo3QjlP
AaaxiWilXq2NQFx/P10pudXmc8bmO9NOcCz9M1ApoMi5tEaoVo+L3cnswJGvHbDI
w9JlltB3DlB9ilj5URfw4u8T0vww8IqOWaeTF53l7bsyk9CFvNZ5eItDii8fUsrf
hy7s6Rrw2VDIonGP4M1Ou6E8L0qy4y0iiP+cK8zV20ova6d/dVczAwuGZD2jWsEE
u7QNqP9VkMwifxqiszJFMpZz1FNQrHCWXeDt649niCwTTN5d/pGcctPzIL6pfzna
8Fod1OWHDfYFyTMCAwEAAaOCAWswggFnMB0GA1UdDgQWBBQLAioG0aLxTXvAbOEX
uEZTVHf6qDAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFLPrE8QwTwDCp+sVDszY
Kyd2E2RXMIGjBgNVHR8EgZswgZgwgZWggZKggY+GgYxodHRwOi8vcGtpaW92LmJh
aWR1YmNlLmNvbS92MS9wa2kvY3JsP2NtZD1jcmwmZm9ybWF0PVBFTSZpc3N1ZXI9
Qz1DTixDTj1vbmxpbmUuaW90ZGV2aWNlLmJhaWR1LmNvbSxFTUFJTEFERFJFU1M9
aW90QGJhaWR1LmNvbSxPPUJBSURVLE9VPUJDRTBCBggrBgEFBQcBAQQ2MDQwMgYI
KwYBBQUHMAGGJmh0dHA6Ly9wa2lpb3YuYmFpZHViY2UuY29tL3YxL3BraS9vY3Nw
MA4GA1UdDwEB/wQEAwID+DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQw
DQYJKoZIhvcNAQELBQADggEBADUYPyiNvcRvM+DxAQEJpPI0V0eVKgeksgolUcRk
1ZiCcnWioJRplIm5I9qVFXUghzcronxkC7zUOfZO2wrn0ORFLZF3+s58a3+eHAV2
lxFKfHtHdhRXdlu91mN2p9ByGT07Amh7Rqp12t7ZCvKiWwB98/mvGgo59ZwNFpsX
+Sa2M9Z5Zr0OAlnEV+EiMZQobPY122+uqh3ws6UEm0Nco+WTxzh2rzD+FfKbqTsu
ET1UgRPh6qVgsg9ZvhlGjjFySTWOwy9KcJIbYuJD1BTBf4n6n8DvbN0QGza2gKxt
OkcTiXs7SpVDMuuBGau01K2o6Ay1PgFUnI1dqa17gW3oY40=
-----END CERTIFICATE-----
设备私钥文件(client_private_key.pem)内容:
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAtsZGAY9FLMSUYAezGcbQoKSrgr9f+kiEIokIKBt1OvJ9bJJf
8cNqSEPPaBPsguiY+jdCOU8BprGJaKVerY1AXH8/XSm51eZzxuY7005wLP0zUCmg
yLm0RqhWj4vdyezAka8dsMjD0mWW0HcOUH2KWPlRF/Di7xPS/DDwio5Zp5MXneXt
uzKT0IW81nl4i0OKLx9Syt+HLuzpGvDZUMiicY/gzU67oTwvSrLjLSKI/5wrzNXb
Si9rp391VzMDC4ZkPaNawQS7tA2o/1WQzCJ/GqKzMkUylnPUU1CscJZd4O3rj2eI
LBNM3l3+kZxy0/Mgvql/OdrwWh3U5YcN9gXJMwIDAQABAoIBAAQEzgtAvDOkyuJl
qPF7JqExnbfNP24AZC9iNfSzzdsS8+EMQuHM+yxFmWzfa0bhmGOADYu3CgFBTBUp
9a/5OB4QijMhNL3YSFlqPIyD4AGNO7CaibeAJc+b6fNUDvdepklNwWhesbeRlkRV
KdJpQD5+lOLi4AqDtBLpfJB/WsdNciUDAGMPEJqW2yn1ZqzTVehfIaUe/B23sxfj
sZgUqbFu+RrYaFvgqxii4Z3vRY5RkihGdImBrKHisWZCIK1ewclo5laj369oajsR
vRu6k9SlvZg5+eigtBJB/KhIDg7xQ37qK9exRKvy35X3a4hv95NLtuDJoEgLUpF7
2Krq2+kCgYEA4ehiNr4xAKAmC7+EVZk4Vnv3O44Kk7Yj47FGHZ4Wukps+Xk2LXw5
6SEqT26d5/IU95DIELbhlFQqb5jg7MjmvtDLt6aCjKRMs3mOMjcVZc2/uVj/BHhp
zY3iNdqyFXIxU3z544WnxRHwZ91ze7p+qitBIXpHymQzZ6+gqi+EfA0CgYEAzx8D
6RN87VI5XLyb12bwPvGvGuxrj1PdqaNxQ9JFk+11PVhyPAR+SA/0i8hPEWc4mKL8
DygkEVGs6SZVHlgK6+yhrMdUHRGDMxUmvQLlvOFN4YQThk3lqSd8g1Q18Y9eLoN5
xEv5aWGPmnaDTXb9brZap+swLrln62EsiU1tyj8CgYEArqWjWEMNSziEcUysmCiO
P34zEp2rW6rScDMay8buNzNWsD+fPObvNmZneWVBOpIS15ncsd9Q4gV3kTMVoLlo
elidReu6vdQ/X/k3j2a6aiv4buh4rxIQadOo8I2UY7QWoj7aSaWIoHhP7Vxs7Viu
mAw8nA8W9Ucl3qEOisOVnvkCgYB2OE7EF5KD5x3EuAb/sMrKMqru5CkUmxr3e8nn
mzqJj80OYdB6P1pRCYJc0s2GsnMUdFsIz7GejQ7z2SRWeIxrUxqJAxEYsmk/nAAL
fH7jC3qnkPqP+yBuJ5KjZ0qPAXUReYvkJjVLGBueX6zcZ2GKct1V4SEUWlFdgY6p
JB/ZgwKBgBoiKrVX9afIboQiK7SM1I/bcEk17cuIIp1btoG9Es0Ez5Y9wvvbqwjm
kkXloAm1Nl6tyzQtZe1V3S5xRwmtf63Meg2XKraaXaYgyTTCCpaYhfqmXib2Cblt
v0xOjXn8ylwfWp6bH7ogh/0rqUy6ebeEsI85DniLb9t1UFg71XyX
-----END RSA PRIVATE KEY-----
1. 电脑端建立连接验证
使用 MQTTX 建立连接,填入上一步得到的连接配置信息,如下图: 订阅主题“$iot/air780eSe/user/air780e”,并往主题发布消息“hello air780e”,客户端可以成功收到消息“hello air780e”,说明通信已经成功建立。下面我们通过 AT 指令让模组完成连接、消息订阅,发布过程 2. AT 指令序列:
AT+CGATT?
+CGATT: 1
OK
AT+FSCREATE="ca.crt"
OK
AT+FSWRITE="ca.crt",0,2048,15
>
-----BEGIN CERTIFICATE-----
MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
WD9f
-----END CERTIFICATE-----
OK
AT+FSCREATE="client.crt" //创建客户端证书文件
OK
AT+FSWRITE="client.crt",0,2048,15 //文件大小根据实际情况填写
>
-----BEGIN CERTIFICATE-----
MIIEnzCCA4egAwIBAgIDH3xuMA0GCSqGSIb3DQEBCwUAMG4xCzAJBgNVBAYTAkNO
MSMwIQYDVQQDDBpvbmxpbmUuaW90ZGV2aWNlLmJhaWR1LmNvbTEOMAwGA1UECgwF
QkFJRFUxDDAKBgNVBAsMA0JDRTEcMBoGCSqGSIb3DQEJARYNaW90QGJhaWR1LmNv
bTAeFw0yNDEwMjkxMjM5MThaFw0zNDEwMjcxMjM5MThaMEcxDjAMBgNVBAoMBUJh
aWR1MQswCQYDVQQGEwJDTjEaMBgGA1UEAwwRYXNmYWx5ZC9haXI3ODBlU2UxDDAK
BgNVBAsMA0JDRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALbGRgGP
RSzElGAHsxnG0KCkq4K/X/pIhCKJCCgbdTryfWySX/HDakhDz2gT7ILomPo3QjlP
AaaxiWilXq2NQFx/P10pudXmc8bmO9NOcCz9M1ApoMi5tEaoVo+L3cnswJGvHbDI
w9JlltB3DlB9ilj5URfw4u8T0vww8IqOWaeTF53l7bsyk9CFvNZ5eItDii8fUsrf
hy7s6Rrw2VDIonGP4M1Ou6E8L0qy4y0iiP+cK8zV20ova6d/dVczAwuGZD2jWsEE
u7QNqP9VkMwifxqiszJFMpZz1FNQrHCWXeDt649niCwTTN5d/pGcctPzIL6pfzna
8Fod1OWHDfYFyTMCAwEAAaOCAWswggFnMB0GA1UdDgQWBBQLAioG0aLxTXvAbOEX
uEZTVHf6qDAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFLPrE8QwTwDCp+sVDszY
Kyd2E2RXMIGjBgNVHR8EgZswgZgwgZWggZKggY+GgYxodHRwOi8vcGtpaW92LmJh
aWR1YmNlLmNvbS92MS9wa2kvY3JsP2NtZD1jcmwmZm9ybWF0PVBFTSZpc3N1ZXI9
Qz1DTixDTj1vbmxpbmUuaW90ZGV2aWNlLmJhaWR1LmNvbSxFTUFJTEFERFJFU1M9
aW90QGJhaWR1LmNvbSxPPUJBSURVLE9VPUJDRTBCBggrBgEFBQcBAQQ2MDQwMgYI
KwYBBQUHMAGGJmh0dHA6Ly9wa2lpb3YuYmFpZHViY2UuY29tL3YxL3BraS9vY3Nw
MA4GA1UdDwEB/wQEAwID+DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQw
DQYJKoZIhvcNAQELBQADggEBADUYPyiNvcRvM+DxAQEJpPI0V0eVKgeksgolUcRk
1ZiCcnWioJRplIm5I9qVFXUghzcronxkC7zUOfZO2wrn0ORFLZF3+s58a3+eHAV2
lxFKfHtHdhRXdlu91mN2p9ByGT07Amh7Rqp12t7ZCvKiWwB98/mvGgo59ZwNFpsX
+Sa2M9Z5Zr0OAlnEV+EiMZQobPY122+uqh3ws6UEm0Nco+WTxzh2rzD+FfKbqTsu
ET1UgRPh6qVgsg9ZvhlGjjFySTWOwy9KcJIbYuJD1BTBf4n6n8DvbN0QGza2gKxt
OkcTiXs7SpVDMuuBGau01K2o6Ay1PgFUnI1dqa17gW3oY40=
-----END CERTIFICATE-----
OK
AT+FSCREATE="client.key" //创建客户端key文件
OK
AT+FSWRITE="client.key",0,2048,15 //注意大小根据实际情况填写
>
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAtsZGAY9FLMSUYAezGcbQoKSrgr9f+kiEIokIKBt1OvJ9bJJf
8cNqSEPPaBPsguiY+jdCOU8BprGJaKVerY1AXH8/XSm51eZzxuY7005wLP0zUCmg
yLm0RqhWj4vdyezAka8dsMjD0mWW0HcOUH2KWPlRF/Di7xPS/DDwio5Zp5MXneXt
uzKT0IW81nl4i0OKLx9Syt+HLuzpGvDZUMiicY/gzU67oTwvSrLjLSKI/5wrzNXb
Si9rp391VzMDC4ZkPaNawQS7tA2o/1WQzCJ/GqKzMkUylnPUU1CscJZd4O3rj2eI
LBNM3l3+kZxy0/Mgvql/OdrwWh3U5YcN9gXJMwIDAQABAoIBAAQEzgtAvDOkyuJl
qPF7JqExnbfNP24AZC9iNfSzzdsS8+EMQuHM+yxFmWzfa0bhmGOADYu3CgFBTBUp
9a/5OB4QijMhNL3YSFlqPIyD4AGNO7CaibeAJc+b6fNUDvdepklNwWhesbeRlkRV
KdJpQD5+lOLi4AqDtBLpfJB/WsdNciUDAGMPEJqW2yn1ZqzTVehfIaUe/B23sxfj
sZgUqbFu+RrYaFvgqxii4Z3vRY5RkihGdImBrKHisWZCIK1ewclo5laj369oajsR
vRu6k9SlvZg5+eigtBJB/KhIDg7xQ37qK9exRKvy35X3a4hv95NLtuDJoEgLUpF7
2Krq2+kCgYEA4ehiNr4xAKAmC7+EVZk4Vnv3O44Kk7Yj47FGHZ4Wukps+Xk2LXw5
6SEqT26d5/IU95DIELbhlFQqb5jg7MjmvtDLt6aCjKRMs3mOMjcVZc2/uVj/BHhp
zY3iNdqyFXIxU3z544WnxRHwZ91ze7p+qitBIXpHymQzZ6+gqi+EfA0CgYEAzx8D
6RN87VI5XLyb12bwPvGvGuxrj1PdqaNxQ9JFk+11PVhyPAR+SA/0i8hPEWc4mKL8
DygkEVGs6SZVHlgK6+yhrMdUHRGDMxUmvQLlvOFN4YQThk3lqSd8g1Q18Y9eLoN5
xEv5aWGPmnaDTXb9brZap+swLrln62EsiU1tyj8CgYEArqWjWEMNSziEcUysmCiO
P34zEp2rW6rScDMay8buNzNWsD+fPObvNmZneWVBOpIS15ncsd9Q4gV3kTMVoLlo
elidReu6vdQ/X/k3j2a6aiv4buh4rxIQadOo8I2UY7QWoj7aSaWIoHhP7Vxs7Viu
mAw8nA8W9Ucl3qEOisOVnvkCgYB2OE7EF5KD5x3EuAb/sMrKMqru5CkUmxr3e8nn
mzqJj80OYdB6P1pRCYJc0s2GsnMUdFsIz7GejQ7z2SRWeIxrUxqJAxEYsmk/nAAL
fH7jC3qnkPqP+yBuJ5KjZ0qPAXUReYvkJjVLGBueX6zcZ2GKct1V4SEUWlFdgY6p
JB/ZgwKBgBoiKrVX9afIboQiK7SM1I/bcEk17cuIIp1btoG9Es0Ez5Y9wvvbqwjm
kkXloAm1Nl6tyzQtZe1V3S5xRwmtf63Meg2XKraaXaYgyTTCCpaYhfqmXib2Cblt
v0xOjXn8ylwfWp6bH7ogh/0rqUy6ebeEsI85DniLb9t1UFg71XyX
-----END RSA PRIVATE KEY-----
OK
AT+SSLCFG="cacert",88,"ca.crt" //设置ca证书文件为ca.crt
OK
AT+SSLCFG="clientcert",88,"client.crt" //设置客户端证书文件为client.crt
OK
AT+SSLCFG="clientkey",88,"client.key" //设置客户端密钥文件为client.key
OK
AT+SSLCFG="seclevel",88,2 //设置认证模式为双向认证
OK
AT+MCONFIG=air780eSe,root,air780eSe
OK
AT+SSLMIPSTART="asfalyd.iot.gz.baidubce.com","1884" //注意端口号为1884
OK
CONNECT OK
AT+MCONNECT=1,60
OK
CONNACK OK
AT+MSUB="$iot/air780eSe/user/air780e",0 //订阅主题
OK
SUBACK
AT+MPUB="$iot/air780eSe/user/air780e",0,0,"hello world" //上报消息到服务器
OK
+MSUB: "$iot/air780eSe/user/air780e",11 byte,hello world //收到服务器下发消息
七、总结
本文详细介绍了如何使用 Air780E 核心板通过 AT 指令集和百度云物联网平台实现物联网设备的连接与管理。
通过本文的学习,大家可以掌握如何使用 Air780E 核心板 AT 指令和百度云物联网平台实现物联网设备的连接与管理。
八、参考资料
8.1 合宙 Air700EMQ 模组资料中心
https://docs.openluat.com/air700emq/
九、使用到的工具
https://docs.openluat.com/air_tools/
十、常见问题
10.1 连接服务器失败
1.检查 SIM 卡是否欠费,模块信号、网络注册、网络附着、PDP 激活状态。
2.PC 端使用 mqtt 工具,连接服务器确认一下是否可以连接成功,排除服务器故障。
3.在 MIPSTART /SSLMIPSTART 返 回 CONNECT OK 后 才 能 发 MCONNECT 命令,而且不要立即发,否则会被服务器踢掉(建议延时500ms再发送)。
4.检查鉴权证书内容是否正确。
10.2 MQTT 连接总是断开是什么原因?
1.PC 端使用 mqtt 工具,连接服务器测试服务器稳定性,排除服务器不稳定因素。
2.检查下模块信号弱导致网络不稳定,例如地下室、电梯、山区,天线匹配问题等。
3.检查是否因为长时间无数据通讯导致服务器主动断开连接,需要根据实际情况设置 mqtt keep alive 时间。