学习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指令

相关推荐
炸膛坦客2 小时前
FreeRTOS 学习:(二十六)FreeRTOS 专用延时函数(相对延时、绝对延时)
stm32·操作系统·freertos
JeffDingAI2 小时前
【Datawhale学习笔记】动手学RNN及LSTM
笔记·rnn·学习
LS_learner2 小时前
Ubuntu启动盘制作
嵌入式硬件
S火星人S2 小时前
软件调试基础(四【断点和单步执行】4.3【陷阱标志】)
stm32·单片机·嵌入式硬件
JeffDingAI3 小时前
【Datawhale学习笔记】预训练模型实战
笔记·学习
GISer_Jing3 小时前
AI Coding学习——dw|ali(持续更新)
人工智能·学习·prompt·aigc
振华说技能3 小时前
MasterCAM车铣复合都学哪些内容!
学习
世人万千丶3 小时前
鸿蒙跨端框架 Flutter 学习 Day 4:程序生存法则——异常捕获与异步错误处理的熔断艺术
学习·flutter·华为·harmonyos·鸿蒙
NEWEVA__zzera223 小时前
AM32开源项目固件解析(STM32G071)
stm32·单片机·嵌入式硬件