学习STM32 ESP8266

1.ESP8266介绍

ESP8266 是一款由乐鑫(Espressif)推出的低成本、高性能 Wi-Fi 系统级芯片(SoC),它集成了 Tensilica L106 32 位 RISC 处理器Wi-Fi 收发器丰富的外设接口,广泛用于物联网(IoT)、智能家居、可穿戴设备和各种网络控制项目。

ESP8266 是一个非常强大的 WIFI 模块,可以利用串口与单片机进行通讯,从而编程实现控制 ESP8266。利用 ESP8266 可以访问一些 API,获取天气信息或者完成网络授时,也可以连接云平台进行开发。不过因为是串口传输,速度较慢,不能用来传输图像、视频这些大容量的数据,但是传些传感器数据还是绰绰有余的。

我们常说的 ESP8266 是指 ESP8266 WIFI 模块,它是物联网和嵌入式开发常用的模块,其中 ESP8266 是 WIFI 模块的芯片型号。

ESP8266 有 ESP-01/01S/07/07S/12E/12F/12S 等规格,还有正点原子自研的 ATK-ESP8266 (修改了固件及模组引脚)。

(默认115200 需要发送新行)

2. 三种调试方式

ESP8266 已经是一款很成熟的模组了,前文提到,它可以通过串口进行通讯。

既然可以进行串口通讯,那么我们就可以使用以下三种方法进行调试。

  • USB 转 TTL 工具

这玩意儿大家应该非常熟悉了,通常我们用它来打印单片机 log。

当然,配合上位机(比如串口调试助手),我们也可以使用它对一些模组进行调试,比如:ESP8266、4G模组、蓝牙,等等。

USB转TTL模块 ESP8266
3.3V 3.3V
TXD RX
RXD TX
GND GND

使用 USB 转 TTL 工具调试 ESP8266,可以通过上面的表格进行接线。

3.3V 相接后可能无法启动 ESP8266,这是因为 USB 转 TTL 模组的 3.3V 并没有真的达到 3.3V,直接将 ESP8266 的3.3V 引脚接入 USB 转 TTL 的 5V 引脚,如果 ESP8266 会发烫到无法触摸就拔掉,如果温度你手指还能接受,那就没问题,ESP8266 还是没那么脆弱的。

接好线之后,将 USB 端连接到电脑,打开串口调试助手就可以进行调试了。

  • USB 转 ESP8266WIFI 模块

上面的 USB 转 TTL 模组需要你动手去接线,比较麻烦,而且要是线有一根接错了,就无法正常调试了。

而这个模组专门是为了调试 ESP8266 而设计,不需要一个个引脚接线,直接把 ESP8266 往上一插就可以啦,超方便的。同样,USB 端连接电脑,打开串口调试助手就可以进行调试了。

  • 单片机调试

这种就是在项目中最常用的方式了。需要将 ESP8266 接到单片机的任意一个串口,然后再编写代码驱动 ESP8266 ,实现各种业务逻辑。

本文就是手把手教大家编写一个 ESP8266 驱动程序。

上电:正常工作验证

模块拿到手之后,我们需要先确保这个模组是正常的,否则后面的调试、写代码都是白搭。

首先,上电后,蓝色灯微弱闪烁后熄灭,表示正常工作。

还可以更进一步,接好线之后,然后打开串口调试助手发送 AT(并且还要敲一个回车),ESP8266 回复 OK,就是正常启动了。

3.ESP8266工作模式

ESP8266 支持 STA、AP、AP+STA 三种工作模式。

STA 模式(Station):

一般用于远距离传输。ESP8266 通过路由器连接互联网,终端设备通过互联网实现对设备的远程控制。简单来说,此时的 ESP8266 可以当作是一个客户端,可以向服务端进行数据的下载与传输。这就类似于,手机/平板/笔记本(客户端)可以通过 WIFI 连接到路由器进行上网。

AP 模式(Access Point):

一般用于近距离传输。ESP8266 作为热点,提供无线接入服务、数据访问,一般的无线路由/网桥工作在 AP 模式下,最多支持 4 台设备接入。简单来说,此时的 ESP8266 可以当作是一个服务端。这就类似于,ESP8266 变身为一个路由器,然后手机/平板/笔记本可以通过 WIFI 连接到 ESP8266 进行上网。

AP+STA 模式:

两种模式的共存模式,可以通过互联网控制可实现无缝切换,方便操作。简单来说,此时的 ESP8266 可以当作是一个路由器既可以做服务端接收也可以当客户端连接路由器,进行联网传输和控制。

4.常用AT指令

AT指令 功能
AT 测试是否正常启动
AT+CWMODE=1 设置 STA 模式
AT+CWMODE=2 设置 AP 模式
AT+CWMODE=3 设置 AP+STA 模式
AT+RST 重启生效
AT+CWSAP="SSID","password",1,4 设置 AP 参数:账号为SSID ,密码为password,通道号为 1,加密方式为:WPA_WPA2_PSK
AT+CIPMUX=0 开启单连接
AT+CIPMUX=1 开启多连接
AT+CIPSERVER=1,8080 开启 SERVER 模式,设置端口为 8080
AT+CIPSTART="TCP","192.168.X.XXX",8080 建立 TCP 连接到"192.168.X.XXX",8080
AT+CIPSTART="UDP","192.168.X.XXX",8080 建立 UDP 连接到"192.168.X.XXX",8080
AT+CIPCLOSE 断开 TCP 连接
AT+CWQAP 断开热点
AT+CIPSEND=n 开始传输,n表示需要传输的字节数
AT+CIPSEND=0,n 向 ID0 发送 n 字节数据包,n的值自己定
AT+CIPMODE=1 开启透传模式
AT+CIPSEND 开始发送数据
AT+CIPMODE=0 退出透传
AT+CWJAP="SSID,"password" 加入 WIFI 热点:SSID ,密码为:password
AT+CIFSR 查询 ESP8266 的 IP 地址
AT+CIPSTA? 查询 ESP8266 的 IP 、网关地址和子网掩码

5.设置工作模式和发送数据

ESP8266 STA工作模式

使用网络助手,设立TCP服务器

ESP8266 AP工作模式

使能多链接 如上次使用透传将 AT+CIPMODE=1 设置为1 需改为 0后 再次发送使能多链接AT指令

相关推荐
西岸行者4 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意4 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码4 天前
嵌入式学习路线
学习
Lester_11014 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元4 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133974 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315204 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
毛小茛4 天前
计算机系统概论——校验码
学习
babe小鑫4 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
古译汉书4 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http