在嵌入式开发中,无线通信的方式有很多,其中 WIFI 是绕不开的话题。说到 WIFI 通信,就不得不提 ESP8266了。
ESP8266 是一款高性能的 WIFI 串口模块,实现透明传输。只要有一定的串口知识,不需要知道 WIFI 原理就可以上手,在业内应用广泛。
1. 源码下载
本文首发 良许嵌入式网 :https://www.lxlinux.net/e/ ,欢迎关注!
本文所涉及的源码及安装包如下(由于平台限制,请点击以下链接阅读原文下载):
https://www.lxlinux.net/e/stm32/esp8266-tutorial.html
STM32F103C8T6模板工程
本文的源码
串口调试助手
网络调试助手
CH340驱动
如果不知道如何搭建 STM32 编程环境,不知道如何烧录 STM32 代码,可以阅读这篇文章:
https://www.lxlinux.net/e/stm32/stm32-quick-start-for-beginner.html
如果你连代码都不知道怎么烧录到 STM32 的,可以参考下文,提供了 5 种代码烧录方式:
https://www.lxlinux.net/e/stm32/five-ways-to-flash-program-to-stm32.html
文中所使用的芯片是 STM32F103C8T6 ,配套了一个工程模板,如果你需要自己搭建一个工程模板,可以参考下文:
https://www.lxlinux.net/e/stm32/create-stm32-hal-project-template.html
2. ESP8266介绍
ESP8266 是一个非常强大的 WIFI 模块,可以利用串口与单片机进行通讯,从而编程实现控制 ESP8266。利用 ESP8266 可以访问一些 API,获取天气信息或者完成网络授时,也可以连接云平台进行开发。不过因为是串口传输,速度较慢,不能用来传输图像、视频这些大容量的数据,但是传些传感器数据还是绰绰有余的。
我们常说的 ESP8266 是指 ESP8266 WIFI 模块,它是物联网和嵌入式开发常用的模块,其中 ESP8266 是 WIFI 模块的芯片型号。
ESP8266 有 ESP-01/01S/07/07S/12E/12F/12S 等规格,还有正点原子自研的 ATK-ESP8266 (修改了固件及模组引脚)。
本文用到的是 ESP-01S,长下面这样。这种模组非常便宜,某宝几块钱一个,建议可以买几个囤着。

3. 三种调试方式
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,就是正常启动了。

4. ESP8266工作模式
ESP8266 支持 STA、AP、AP+STA 三种工作模式。
- STA 模式(Station)
一般用于远距离传输。ESP8266 通过路由器连接互联网,终端设备通过互联网实现对设备的远程控制。简单来说,此时的 ESP8266 可以当作是一个客户端,可以向服务端进行数据的下载与传输。这就类似于,手机/平板/笔记本(客户端)可以通过 WIFI 连接到路由器进行上网。
- AP 模式(Access Point)
一般用于近距离传输。ESP8266 作为热点,提供无线接入服务、数据访问,一般的无线路由/网桥工作在 AP 模式下,最多支持 4 台设备接入。简单来说,此时的 ESP8266 可以当作是一个服务端。这就类似于,ESP8266 变身为一个路由器,然后手机/平板/笔记本可以通过 WIFI 连接到 ESP8266 进行上网。
- AP+STA 模式
两种模式的共存模式,可以通过互联网控制可实现无缝切换,方便操作。简单来说,此时的 ESP8266 可以当作是一个路由器既可以做服务端接收也可以当客户端连接路由器,进行联网传输和控制。
5. AT指令介绍
5.1 什么是AT指令?
AT 指令(AT Commands)最早是由发明拨号调制解调器的贺氏公司为了控制拨号调制解调器而发明的控制协议。后来随着网络带宽的升级,速度很低的拨号调制解调器基本退出市场,但是 AT 指令被保留了下来。
在嵌入式开发中,经常是使用 AT 命令去控制各种通讯模块,比如 ESP8266 模块、4G 模块、GPRS 模块等等。一般就是主芯片通过硬件接口(比如串口、SPI)发送 AT 指令给通讯模块,模块接收到数据之后回应响应的数据。
5.2 常用AT指令介绍
AT 指令分为四种类型:
| 类型 | 格式 | 功能 |
|---|---|---|
| 测试指令 | AT + < X > = ? | 查询设置命令或内部程序设置的参数及其取值范围 |
| 查询指令 | AT + < X > ? | 返回参数的当前值 |
| 设置指令 | AT + < X > = < ... > | 设置用户自定义的参数值 |
| 执行指令 | AT + < X > | 执行受模块内部程序控制的变参数不可变 |
AT 指令有近百条,但常用的就十几条,理解起来也非常简单,现在举例一些常用指令,并使用这些指令一步一步的通过 TCP 连接到远程的服务器实现收发数据。
| AT指令 | 功能 |
|---|---|
| AT | 测试是否正常启动 |
| AT+CWMODE=1 | 设置 STA 模式</ |

本文围绕ESP8266高性能WIFI串口模块展开,介绍其源码下载途径,阐述三种调试方式,分析STA、AP、AP+STA三种工作模式,讲解AT指令及常用指令用法,还进行编程实战,包括硬件接线、串口通讯、实现不同工作模式等,助力嵌入式开发。
2万+

被折叠的 条评论
为什么被折叠?



