目录

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

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

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

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

1、准备工作

1.1 MQTTS 账号

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

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

https://i-blog.csdnimg.cn/blog_migrate/7d0f06228d30415ce6da1bb8794ec12b.png

1.2 CA 证书

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

https://i-blog.csdnimg.cn/blog_migrate/bd2700d3634f52f9a836a0ae7c1f4ec6.png

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

1.3 MQTT工具连接服务器

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

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

https://i-blog.csdnimg.cn/blog_migrate/2b19800059535fd695e11e22a4403fab.png

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

https://i-blog.csdnimg.cn/blog_migrate/1dbc7a80a5541fc23fbc70937be31f92.png

https://i-blog.csdnimg.cn/blog_migrate/63bd985761ec449c82d19ee1602633de.png

2、连接测试

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

https://i-blog.csdnimg.cn/blog_migrate/e00147b2a8638694de5cd79ad5123221.png

2.1 AT指令连接云服务器:

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

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

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

https://i-blog.csdnimg.cn/blog_migrate/c20c1e21f532a41d4dea7f75cfc7b7bb.png

2)MQTTS参数配置

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

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

https://i-blog.csdnimg.cn/blog_migrate/9be4ab837c9feb65cd7c6a5a213a86e6.png

https://i-blog.csdnimg.cn/blog_migrate/5163674c334cdfa222b09256e60dc602.png

3)连接服务器

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

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

https://i-blog.csdnimg.cn/blog_migrate/560b3ac11609f746c634b006790b6770.png

2.2 发送数据

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

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

https://i-blog.csdnimg.cn/blog_migrate/201f2619f9075ab52be9677969c4e8fd.png

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

https://i-blog.csdnimg.cn/blog_migrate/48158226e61faac21a1ef373134d90b6.png

2.3 接收数据

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

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

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

https://i-blog.csdnimg.cn/blog_migrate/eb7e3b1730fbb63fbe8261846727d9a3.png

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

https://i-blog.csdnimg.cn/blog_migrate/8002778c86187ce8e179483ec1f94cd7.png

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

https://i-blog.csdnimg.cn/blog_migrate/573567a8b7583ea5bd6a99327a6520f2.png

https://i-blog.csdnimg.cn/blog_migrate/cbb48fb4c417a11baac3517556dca505.gif

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

https://i-blog.csdnimg.cn/blog_migrate/1ff30a2b914a6e0e1a8498180fdfe2a1.gif