一、通信模块
ESP32和ESP8266的区别
1、处理能力和内存:
ESP8266:是一个基于32位RISC CPU的芯片,工作频率可达160MHz,内部有SRAM和SPI Flash,可以储存和运行代码。
ESP32:具有更强的处理能力,内置两个32位的LX6微处理器,工作频率可达240MHz,并配备了更大的RAM和Flash存储空间,适合处理复杂的任务和程序。
2、无线通信能力:
ESP8266:只支持Wi-Fi通信(802.11b/g/n)。
ESP32:同时支持Wi-Fi(802.11b/g/n)和蓝牙(包括经典蓝牙和蓝牙低功耗BLE)。
3、GPIO(通用输入/输出)引脚:
ESP8266:具有17个GPIO引脚,适合连接较少设备的简单项目。
ESP32:具有高达36个GPIO引脚,能处理更多的并行任务,适合更复杂的项目。
4、电源消耗:
ESP32的工作电流更低,且具有更多的电源管理功能,能在不影响性能的前提下有效降低功耗。
二、AT指令集介绍
AT指令集是一个通用的说法:WIFI模块,4G模块,CAT1模块,蓝牙模块..
1、指令格式:
(AT)开头 +数据+ (回车+换行)结尾
串口传输方式: 默认波特率:115200
字符串:”AT+数据+换行”
串口转WIFI
2、指令分类:
WIFI模块的AT指令有哪些:
ESP8266指令集主要分为:基础 AT 指令、 Wi-Fi 功能 AT 指令、 TCP/IP 相关的 AT 指令。
3、指令应用
如何确定使用哪些指令:
- 确认使用那个功能
- 根据功能查找相关命令(查手册、百度)
三、ESP8266WIFI设置3种无线通信模式
AP模式 -- 相当于手机释放热点,让别人连接
STA模式 -- 相当于手机连接别人的热点
四、硬件原理图
串口1是通过CP2102电路和电脑通信
串口2和ESP8266通信的
五、WIFI连接
1、使用安信可测试透传模式
透传:透传传输,配置成透传之后,发的数据无论是否是指令都会发出去
1.先发送AT指令 测试模块,正常会回复OK,如下图所示:
2.AT+CWMODE=1 设置为STA模式,正常会回复OK,如下图所示:
3.AT+CWJAP="gys","123456789" 连接wifi,连接成功如下图所示:
4.AT+CIPMODE=1 进入透传模式,
5.AT+CIPSTART="TCP","122.114.122.174",33582 连接服务器。
测试服务器地址:安信可透传云 V1.0 (ai-thinker.com)
注意:使用安信可TCP服务器3分钟内没有客户端接入将关闭,所以连接服务器的时候要保证在3分钟以内。
6.AT+CIPSEND 开始传输数据
我们可以看到,在串口助手发送的数据,在安信可上面可以正常接收。
同样的,在安信可发送的数据在串口助手上面也是可以正常接收。
7.退出透传模式 : +++ 不需要加\r\n
六、MQTT
1、协议介绍
2、MQTT 控制报文格式
1、固定报头

2、可变报头
3、有效载荷

3、控制报文
必须要熟悉的报文:连接报文,连接应答,发布报文,订阅报文,订阅应答,心跳报文,心跳应答
七、云平台使用/连接
1、阿里云平台创建产品
步骤一:阿里云账号注册

步骤二:飞燕平台使用
实名认证后一定要先注册认证飞燕平台
搜索框搜索飞燕平台(或生活物联网平台)
点击产品控制台,进入控制台创建项目(最多四个项目,每个项目可以创建多个产品)
创建产品:
选择网关,连网方式选择蜂窝;(蜂窝配网的APP配网比较方便)
芯片模组选其他
在功能定义界面定义自己产品的功能
之后人机交互选择云智能APP,点击保存
基础配置:
这里面除了控制面板,其他的产品展示、绑定方式(这里面的绑定方式对应不同的效果)、产品说明书里面的信息文档随便填写;
重点是控制面板:里面设计自己的面板(记得保存,并选择面板,尽量避免反复修改面板,可能会导致面板修改不了)
最后在设备调试里面新增测试设备:
点击查看就可以正常调试了(下一步的批量投产不需要设置)
此时产品就已经发布了,接下来打开我们常用的物联网平台的公共实例也会出现我们刚才创建的设备。
步骤三:物联网平台的使用
打开之后,如下图所示:
可以直接搜索物联网平台,然后打开。
和阿里云平台进行通信,是通过发布/订阅主题实现,接下来我们看一下:
把属性上报和属性设置Topic这三个复制下来,后面需要用到。
点击MQTT连接参数就可以直接使用里面的信息连接了
八、使用 MQTT.fx 接入物联网平台
1. 下载并安装 MQTT.fx 软件。请访问 MQTT.fx 官网。
2. 打开 MQTT.fx 软件,单击设置图标。
3. 设置连接参数。

填完参数之后,点击OK。
4、点击Connect
5、云平台页面刷新,显示设备在线
6、publish页面填写
先查看一下自己的设备名
把复制的Topic设备名换成自己的
7、寻找发布消息的有效载荷部分的格式
{"id":1716522070424,"params":{"Lock_control":0,"master":666666,"card_num":1,"Delete_card":0,"password":123123,"Fingerprint_num":1,"new_card":0},"version":"1.0","method":"thing.event.property.post"}
上面这个就是发布消息的格式。
8、发布消息
9、数据的下发,先订阅主题
10、模拟数据下发
模拟数据下发,一定要保证设备在线,否则收不到下发的消息。
11、下载云智能APP
然后使用云智能APP扫码添加就可以了。
在云智能APP上面点击开锁关锁在这里也可以看到,如下图所示:
12、总结mqtt.fx的作用
九、使用STM32连接阿里云
1、使用STM32连接阿里云:
- 配置STM32的网络连接,确保能够连接到互联网。
- 使用MQTT等协议,在STM32中编写代码实现与阿里云IoT平台的通信,包括设备注册、数据上传、指令下发等功能。
2、如何封装MQTT格式的数据
- 自己定义数组,按照协议挨个字节填写 -- 最根本的
- MQTT库 有封装好的函数,按照函数传递参数使用 -- 我们用的
- 使用集成了MQTT库的联网模块,
3、将MQTT库添加到工程中
1、准备MQTT库文件
2、在自己的工程文件夹下建一个mqtt文件夹
3、将MQTT的源文件全部拷贝到mqtt文件夹下
4、在keil工程中,新建文件夹
5、添加所有的.c文件
6、包含一下.h路径
7、mqtt C语言库