• 欢迎光临~

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

开发技术 开发技术 2022-11-15 次浏览

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLIOTE_STM32F407/EC200/aliyun.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

 

 

说明

阿里云的TCP和TCP+SSL方式连接MQTT服务器使用的端口号都是 1883;

如果使用SSL连接, 拼接的ClientID参数时  securemode=2

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

关于模组的SSL相关指令(自行学习哈)

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

程序测试

 

1.安装好模组

单片机通过串口2和GPRS模块通信;  单片机PA8引脚作为复位模组使用

(单片机)PA2  ----   (EC200)RX;

(单片机)PA3  ----   (EC200)TX;

(单片机)PA8  ----   (EC200)RST

 

 

2.打开这节的单片机程序

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

3.使用单片机串口1打印串口日志(115200)

 

4.修改为阿里云的设备参数.

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

 

5.然后下载程序到单片机,查看日志

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

单片机程序说明

1,串口2接收模组数据的时候,单独使用一个缓存,缓存了TCP接收的数据

 002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

3.初始化MQTT,注册相应的回调函数

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

 

我编写的包是以注册回调函数的形式使用.

 002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

4.先使用TCP连接上TCP服务器(MQTT服务器就是TCP服务器嘛)

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

这个里面还有使用模组的唯一码作为ClientID

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

5.连接上TCP以后,发送连接MQTT协议

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

(关于组合计算密码在最后面会有详细说明)

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

6.发送连接协议给服务器以后,如果服务器返回连接成功消息,便会调用MQTT连接成功回调函数

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

7.连接上了以后就轮训mqtt_send_function函数

咱们后面调用订阅,发布的函数的时候, 数据都会存储在缓存里面, 然后通过轮训 mqtt_send_function函数,把MQTT的数据发送出去

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

8.接收消息

连接MQTT成功以后收到的服务器发送的数据需要让 mqtt_read_function函数处理, 该函数内部会处理消息并调用相应的回调函

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

 

 

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

 

002-STM32F407+EC200基本控制篇(阿里云物联网平台)-STM32F407+EC200使用MQTT+SSL加密方式接入阿里云物联网平台(不验证服务器证书)

 

喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com