跳到主要内容

基于 MQTT 协议连接阿里云服务器

WIFI MQTT ALIYUN

前言

本章主要学习 lwIP 提供的 MQTT 协议文件使用,通过 MQTT 协议将设备连接到阿里云服务器,实现远程互通。由于 MQTT 协议是基于 TCP 的协议实现的,所以我们只需要在单片机端实现 TCP 客户端程序并使用 lwIP 提供的 MQTT 文件来连接阿里云服务器。

MQTT 协议简介

1,MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在1999 年发布,目前最新版本为 v3.1.1。
2,MQTT 是一个基于客户端与服务器的消息发布/订阅传输协议。
3,实现 MQTT 协议需要:客户端和服务器端 MQTT 协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。
4,MQTT 传输的消息分为:主题(Topic)和消息的内容(payload)两部分。

本实验对应的工程文件夹为:<开发板A盘路径>/4,程序源码/v_5.5版本例程/2,扩展例程-IDF版/2,WiFi例程/08_WiFi_MQTT_ALIYUN

实验准备

1.配置远程服务器

启动流程

第一步:打开阿里云物联网平台,如下图所示:

01

启动流程

点击上图中的“管理控制台”按键进去物联网平台页面。
第二步:在物联网平台页面下点击公共实例->设备管理->产品->创建产品,在此界面下填写项目名称等相关信息,如下图所示:

01

启动流程

注:上图中的节点类型、连网方式、数据格式以及认证模式的选择,其他产品参数根据用户爱好设置。
第三步:创建产品之后点击设备管理添加设备,如下图所示:

01

启动流程

第四步:进入创建的设备,点击查看三元组内容,如下图所示:

01

启动流程

这三个参数非常重要!!!!!!!!!!在本章实验中会用到。
第五步:打开产品->查看->功能定义路径,在该路径下添加功能定义,如下图所示:

01

启动流程

第六步:打开自定义功能并发布上线,这里我们添加了两个CurrentTemperatureRelativeHumidity标签。

  1. 硬件设计
例程功能与硬件资源

lwIP 连接阿里云实现数据上传至阿里云服务器。
1,LED(RED) - IO1_1
2,正点原子 2.4 寸LCD屏幕
3,ESP32-S3 内部 WiFi

3.原理图

原理图

本章实验使用的 WiFi 为 ESP32-S3 的片上资源,因此并没有相应的连接原理图。

  1. 软件设计
软件设计

程序启动后初始化并连接网络,创建MQTT句柄与回调事件,开启MQTT。循环检测连接状态,成功则发布数据;事件回调处理连接、订阅、发布、接收及错误事件,实现完整MQTT通信流程。

  1. 将对应接口的电源线接入 DNESP32S3 BOX3 开发板底板的 USB Type-C 接口,为其进行供电。

实验现象

程序下载成功后,打开阿里云平台的物联网平台设备管理,可以看到此时的设备处于连接状态,如下图所示:

01