物联网基础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账号相关信息:
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全套资料