说明
阿里云的TCP和TCP+SSL方式连接MQTT服务器使用的端口号都是 1883;
如果使用SSL连接, 拼接的ClientID参数时 securemode=2
关于模组的SSL相关指令(自行学习哈)
程序测试
1.安装好模组
单片机通过串口2和GPRS模块通信; 单片机PA8引脚作为复位模组使用;PB15连接模组的开机引脚
(单片机)PA2 ---- (EC800K)RX;
(单片机)PA3 ---- (EC800K)TX;
(单片机)PA8 ---- (EC800K)RST
(单片机)PB15 ---- (EC800K)PWR
注意: 单片机都是使用串口2和模组通信,所以需要拆掉ESP8266
2.打开这节的单片机程序
3.使用单片机串口1打印串口日志(115200)
4.修改为阿里云的设备参数.
5.然后下载程序到单片机,查看日志
单片机程序说明
1,串口2接收模组数据的时候,单独使用一个缓存,缓存了TCP接收的数据
2.整体概况
①:控制模块连接TCP服务器(MQTT服务器)
②:计算MQTT密码
③:MQTT消息处理封装包(缓存管理,支持消息等级0,1,2)
④:使用Mbedtls里面的sha1或者md5 计算密码文件
3.初始化MQTT,注册相应的回调函数
我编写的包是以注册回调函数的形式使用.
4.先使用TCP连接上TCP服务器(MQTT服务器就是TCP服务器嘛)
5.连接上TCP以后,发送连接MQTT协议
6.发送连接协议给服务器以后,如果服务器返回连接成功消息,便会调用MQTT连接成功回调函数