物联网基础:EC20 MQTTS连接服务器进行加密数据传输

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密

本文将介绍使用EC20 封装好的AT指令通过 MQTTS(即MQTT+SSL) 协议连接私有云服务器进行加密传输数据

1、准备工作

1.1 MQTTS 账号

要连接私有云服务器,需有一个私有云服务器的mqtt客户端账号,笔者就用公司服务器的MQTTS测试账号做演示,后续涉及到账号密码相关部分打码,望理解

服务器地址及mqtts账号相关信息:

1.2 CA 证书

使用MQTTS加密传输数据的话需要服务器提供一个CA证书,可向相关服务器技术人员咨询

用记事本打开CA证书,计算出CA证书的字节大小,后续需要用到,我所使用的CA证书大小为1163

1.3 MQTT工具连接服务器

使用MQTT工具 MQTTBox模拟务器,订阅设备的发布主题,即能接收到设备发送到服务器的数据,也能模拟向设备下发数据

安装MQTTBox,填写服务器及设备MQTT的相关信息即能连接上服务器

再订阅设备的发布主题,即可接收到设备往服务器发送的数据

2、连接测试

使用串口调试助手,选择 USB AT Port端口,并对串口调试助手做简单设置

2.1 AT指令连接云服务器:

AT指令连接私有云服务器过程:

1)AT指令入网、模块测试

序号 AT指令 指令解析
1 AT 测试指令,若返回OK,则模块可正常通信
2 AT+CPIN? 检查SIM卡是否在位
3 AT+CSQ 查询信号质量
4 AT+CREG? 查询入网状态
5 AT+CGATT=1 激活网络
6 AT+CGATT? 查询激活状态
7 AT+CGPADDR 获取PDP地址

2)MQTTS参数配置

分别发送以下AT指令进行MQTTS参数配置(注意替换CA证书的相关指令部分部分):

序号 AT指令 指令解析
1 AT+QMTCFG="recv/mode"0,0,1 配置为接收模式
2 AT+QMTCFG=“SSL”,0,1,2 配置MQTT连接进入SSL模式
3 AT+QFUPL=“RAM:cacert.pem”,1163,100 将CA证书保存到EC20 RAM
4 AT+QSSLCFG=“cacert”,2,“RAM:cacert.pem” 配置CA证书
5 AT+QSSLCFG=“seclevel”,2,1 选择SSL认证模式
6 AT+QSSLCFG=“sslversion”,2,4 选择SSL版本
7 AT+QSSLCFG=“ciphersuite”,2,0xFFFF 选择SSL密码套件
8 AT+QSSLCFG=“ignorelocaltime”,2,1 配置身份验证时间

3)连接服务器

注意:测试时需将服务器地址信息及MQTT账号信息替换成自己的账户信息

序号 AT指令 指令解析
1 AT+QMTOPEN=0,“121.36.47.54”,8883 开启MQTT SSL 连接,连接服务器
2 AT+QMTCONN=0,“Clientid”,“Username”,“Password” 配置MQTT连接

2.2 发送数据

AT指令发送数据的过程如下:

序号 AT指令 指令解析
1 AT+QMTPUB=0,1,1,0,“PubTopic” 发布主题消息
2 {params:{IndoorTemperature:55,mhumi:55}} 发送的JSON数据
3 0x1a 数据结束符

此时,可在MQTTBox数据接收区查看EC20往服务器发送的数据

2.3 接收数据

AT指令接收服务器数据指令如下:

EC20接收服务器下发的数据只需要订阅服务器的发布主题,即设备订阅主题:SubTopic 即能接收到服务器下发的数据

序号 AT指令 指令解析
1 AT+QMTSUB=0,1,“SubTopic”,0 订阅服务器发布主题

使用MQTTBox工具模拟服务器下发数据

在本地串口调试助手数据接收区就能收到对应的数据

笔者知识有限,如果发现本文有错误的地方欢迎批评、指正,若本文对您有所帮助,点赞、在看也是笔者坚持的动力;扫码关注公众号,后台回复 EC20模块获取EC20全套资料

猜你喜欢

转载自blog.csdn.net/qq_42965739/article/details/107140678