ESP8266WIFI实验准备工作
056.8.1 ESP8266WIFI实验准备工作
一、课程回顾
本阶段的目标是让51单片机借助ESP8266 Wi-Fi模块获得网络通信能力。51单片机本身不具备Wi-Fi射频功能,但可以通过UART向ESP8266发送AT指令;ESP8266负责连接无线网络并完成TCP/IP通信。
flowchart LR
A[51单片机] -->|UART与AT指令| B[ESP-01S]
B -->|2.4GHz Wi-Fi| C[路由器或手机热点]
C -->|局域网TCP| D[电脑]
这与蓝牙模块的思路相似:单片机只处理串口数据,通信模块负责无线链路。不过Wi-Fi通信还会涉及IP地址、端口、客户端、服务端和TCP连接等网络概念。
本讲先认识ESP-01S、供电与串口接线,再建立TCP客户端和服务端的基本概念,为后续AT指令实验做准备。
二、硬件介绍
2.1 WIFI透传模块
课程使用的是安信可ESP-01S模组,核心芯片属于乐鑫ESP8266系列。模组把ESP8266芯片、外部Flash、晶振、PCB天线及必要的外围元件集成在小型电路板上,对外引出8个插针。
ESP-01S功能组成
┌──────────────┐
TXD / RXD ─────────>│ │
GPIO0 / GPIO2 ─────>│ ESP8266EX │<────> 外部SPI Flash
EN / RST ──────────>│ SoC │
│ │──────> PCB天线 ──> 2.4GHz Wi-Fi
3.3V / GND ────────>│ │
└──────────────┘
8个引脚的基本作用如下,实际接线应按照模块丝印确认,不要只凭照片方向判断:
| 引脚 | 作用 | 正常运行时的要点 |
|---|---|---|
VCC/3V3 | 模块电源 | 使用稳定的3.3V,不能直接接5V |
GND | 电源地与信号参考地 | 必须与串口设备共地 |
TXD | ESP8266串口发送 | 接USB转TTL或单片机的RXD |
RXD | ESP8266串口接收 | 接对方TXD,并确保输入不超过3.3V逻辑范围 |
EN/CH_PD | 芯片使能 | 高电平时芯片工作 |
RST | 复位,低电平有效 | 正常工作时保持高电平 |
GPIO0 | 通用I/O兼启动配置 | 正常从Flash启动时保持高电平 |
GPIO2 | 通用I/O兼启动配置 | 正常启动时保持高电平 |
供电是ESP8266实验中最容易出问题的部分。 ESP8266工作电压典型值为3.3V,芯片工作范围上限为3.6V,ESP-01S的 VCC/3V3引脚不是5V输入。直接把5V接到该引脚可能立即损坏模块,也可能造成寿命缩短或不稳定。
Wi-Fi发射时会出现数百毫安的瞬时电流。很多廉价USB转TTL模块的3.3V输出能力较弱,因此会发生反复重启、发送时掉线或输出乱码。正确解决方法是增加电流能力足够的3.3V稳压电源,而不是给ESP-01S施加5V。
推荐的供电和串口连接如下:
USB 5V ──> 3.3V稳压器(建议可稳定提供500mA以上) ──┬──> ESP-01S VCC
├──> ESP-01S EN
└──> 必要的启动上拉
3.3V ──||── GND
去耦电容
USB转TTL GND ───────────────────────────────────────> ESP-01S GND
USB转TTL RXD <─────────────────────────────────────── ESP-01S TXD
USB转TTL TXD ──[3.3V逻辑或电平转换]─────────────────> ESP-01S RXD
电源输入附近应放置低ESR储能电容,并在模块旁并联小容量陶瓷去耦电容。例如可使用 100~470 μF与 0.1 μF组合,具体值按稳压器和布线情况调整。导线过细、过长也会造成瞬时压降。
如果USB转TTL的TXD输出是5V逻辑,应切换到3.3V逻辑档,或在TXD到ESP8266 RXD之间增加可靠的电平转换。ESP8266 TXD输出3.3V,通常可以被支持TTL阈值的USB串口RXD识别,但仍应以转换板规格为准。
2.2 乐鑫官网
乐鑫信息科技是ESP8266EX芯片的设计厂商。ESP8266EX不仅包含Wi-Fi射频,还集成32位处理器、UART、SPI、GPIO等资源,并支持Station、SoftAP和两者共存等Wi-Fi模式。
在本课程中,ESP8266运行已经烧录好的AT固件,用户不直接编写ESP8266内部程序,而是把它当作“串口控制的网络协处理器”:
上位机或51单片机发送AT命令
│
▼
ESP8266 AT固件解析命令
│
├── 配置Wi-Fi
├── 建立TCP/UDP连接
└── 在UART与网络之间转发数据
芯片资料主要用于核对供电、电平、射频和启动条件;AT命令的具体格式还要结合模块所烧录的AT固件版本,因为不同固件版本支持的命令和默认参数可能不同。
2.3 安信可官网
安信可是ESP系列模组厂商之一,ESP-01S是其基于乐鑫ESP8266芯片设计的模组。它不是ESP8266芯片本身,而是把芯片和外围电路封装成便于使用的产品。
ESP-01与ESP-01S属于不同硬件版本。两者都可能正常使用,但引脚外围、指示灯、上拉电阻、Flash或固件配置可能存在差异。课程选择ESP-01S,是为了让硬件和演示环境保持一致;购买和查资料时要核对完整型号,不能只看“ESP8266”字样。
资料页面通常包括:
- 模组规格书、尺寸和引脚说明;
- AT固件及烧录资料;
- 常见启动、供电和联网问题;
- 接入云平台或物联网服务的示例;
- 不同ESP8266模组之间的选型信息。
2.4 物联网项目
ESP8266既可用于本地局域网通信,也可连接互联网中的云平台。一个较完整的物联网系统可分为设备、网络、云端和应用四层:
flowchart LR
Z[51单片机与传感器] -->|ZigBee| S[STM32主控制器]
S -->|UART| E[ESP8266]
E -->|Wi-Fi| R[路由器]
R -->|Internet| C[云平台]
P[手机App] -->|4G/5G/Wi-Fi| C
C -->|控制命令| P2[云端消息通道]
P2 --> R
数据上行时,传感器数据由单片机交给ESP8266,再通过路由器上传云平台;数据下行时,手机App先向云平台发送控制命令,云平台再转发给在线设备。手机与单片机不一定直接建立连接,云平台承担设备鉴权、消息路由、数据保存等任务。
若加入ZigBee,51单片机和STM32之间还需要匹配的ZigBee节点及协调器,并设计单独的数据协议。无线模块只提供传输通道,数据含义、校验、重发和设备状态仍要由应用程序规定。
2.5 产品供货保证
乐鑫的产品生命周期页面列出了ESP8266系列15年的长期供货承诺,起止日期为2014年1月1日至2029年1月1日。这是芯片系列的生命周期承诺,不等于任意ESP-01S店铺或特定固件版本在此期间始终有现货。
ESP8266属于推出时间较早、生态成熟的产品,适合教学和存量项目。新项目还可评估ESP32-C2、ESP32-C3等较新的低成本Wi-Fi SoC;ESP32-S2、ESP32-S3则具备更丰富的处理器和外设资源,可直接承担更复杂的主控任务。选型时应综合考虑:
- 供货周期与厂商状态;
- Wi-Fi、蓝牙等无线功能;
- RAM、Flash、GPIO和外设数量;
- 开发方式是AT固件还是直接编程;
- 功耗、成本、认证和软件维护周期。
ESP8266 AT命令通常以ASCII字符 AT开头,并以回车换行 \r\n结束。例如最基本的测试命令在线路上是:
字符:A T \r \n
HEX: 41 54 0D 0A
只发送 AT但没有正确行结束符,AT固件通常不会执行。串口助手若提供“自动添加回车换行”选项,应确认它实际追加的是 CR LF。
三、CH340串口模块
3.1 CH340串口模块介绍
CH340是USB转UART桥接芯片。电脑通过USB识别出一个虚拟COM口,CH340再把USB数据转换为UART的TXD/RXD信号。它适合在第一阶段直接向ESP-01S发送AT指令,从而把单片机程序因素暂时排除。
flowchart LR
A[电脑串口助手] -->|USB| B[CH340 USB转UART]
B -->|TXD/RXD| C[ESP-01S AT固件]
C -->|Wi-Fi| D[路由器或热点]
不同CH340小板的电路并不相同:有些跳帽选择3.3V/5V逻辑,有些跳帽连接供电输出,有些带独立稳压器。视频中的“去掉黄色跳帽”只适用于画面里的具体板型。使用其他转换板时,应先查看板上丝印、原理图或商家说明,不能机械照搬跳帽位置。
3.2 51单片机与ESP8266的通信原理
最终系统中存在两条性质不同的通信链路:
链路一:51单片机 <--UART字节--> ESP8266
链路二:ESP8266 <--Wi-Fi/TCP--> 电脑
ESP8266承担协议转换:
flowchart LR
M[51单片机应用数据] --> U[UART发送]
U --> A[ESP8266 AT固件]
A --> T[TCP/IP协议栈]
T --> W[Wi-Fi无线帧]
W --> R[无线路由器]
R --> P[电脑TCP程序]
51单片机不直接生成Wi-Fi无线帧,也不直接处理TCP握手;它通过AT命令要求ESP8266入网、建立连接和发送数据。ESP8266收到网络数据后,再从UART返回提示或数据内容。
电脑和ESP8266在同一局域网时,通常可以使用私有IP地址直接通信,但还要满足:
- 电脑服务端监听正确的本地IP与端口;
- 路由器没有开启客户端隔离;
- 电脑防火墙允许该端口;
- ESP8266连接的是2.4GHz Wi-Fi,SSID与密码正确;
- 双方网络可路由,不只是名称看起来相同。
3.3 购买链接与课程配套硬件清单
课程硬件清单可用于确认外形和型号,但购买链接可能下架或更换。购买时应核对:
- 型号明确为ESP-01S;
- 模组来源、Flash和AT固件说明清楚;
- 是否需要单独的3.3V大电流稳压板或ESP-01S专用适配板;
- USB转TTL是否支持3.3V逻辑,供电输出能力是多少;
- 排针方向、转接底板和烧录器是否匹配。
不要仅凭“安信可原装”字样判断全部电气参数,收到模块后仍应核对丝印和资料。链接失效时可在店铺内搜索完整型号,但不应在学习笔记中依赖某个临时商品地址。
四、TCP实验
TCP是一种面向连接、可靠、有序的字节流传输协议。建立连接后,TCP负责重传、排序和差错检测,使应用层按顺序获得字节。
TCP通信通常包含:
服务端:绑定本机IP和端口 → 监听 → 接受连接 → 收发数据
客户端:指定服务端IP和端口 → 主动连接 → 收发数据
一个服务端程序可以根据实现方式同时管理多个客户端,但“服务端”这个名称本身并不保证一定支持任意数量的连接。本实验只使用一个ESP8266客户端和一个电脑服务端。
TCP提供的是字节流,不保留应用层消息边界。例如连续发送两次 ABC和 DEF,接收端可能一次读到 ABCDEF,也可能分多次读到。正式协议需要用固定长度、分隔符或长度字段划分消息。
4.1 接线方式
第一阶段不连接51单片机,只使用USB转TTL、可靠3.3V电源和ESP-01S:
┌──────── 3.3V稳压电源 ────────┐
│ │
├──> ESP-01S VCC │
├──> ESP-01S EN │
└──> 启动配置上拉 │
USB转TTL GND ─────────> ESP-01S GND <──────── 电源GND
USB转TTL RXD <───────── ESP-01S TXD
USB转TTL TXD ──电平转换─> ESP-01S RXD
禁止把ESP-01S的3V3引脚直接接到5V。 如果转换板的3.3V输出带不动模块,应换用电流能力足够的3.3V稳压器或专用ESP-01S适配板。
上电前按下面顺序检查:
- 万用表确认电源为约3.3V,极性正确。
- 确认所有设备共地。
- 确认TX接RX、RX接TX,没有把两个输出端直接相连。
- 确认USB转TTL到ESP RXD的逻辑电平不超过允许范围。
- 确认EN为高,RST为高,GPIO0/GPIO2满足正常启动状态。
- 模块天线区域远离金属、导线和大面积铜板。
- 根据所用转换板的真实电路设置跳帽。
插入电脑后,在设备管理器确认COM口,再用串口助手选择固件对应的波特率。不同AT固件的默认波特率可能不同;无响应时应先核对资料,而不是连续尝试高电压供电。
4.2 作为客户端测试
本实验让ESP-01S作为TCP客户端,电脑网络调试工具作为TCP服务端:
sequenceDiagram
participant PC as 电脑TCP服务端
participant AP as 路由器/热点
participant ESP as ESP-01S客户端
ESP->>AP: 连接2.4GHz Wi-Fi
ESP->>PC: 向电脑IP和监听端口发起TCP连接
PC-->>ESP: 接受连接
ESP->>PC: 发送数据
PC->>ESP: 返回数据
开始实验前需要准备:
- 路由器或手机2.4GHz热点的SSID和密码;
- 电脑在该网络中的IPv4地址,而不是
127.0.0.1; - 电脑服务端监听端口;
- 防火墙放行规则;
- 与AT固件匹配的串口波特率和命令文档。
典型步骤是先用 AT\r\n确认模块响应,再设置Wi-Fi模式、连接热点、查询IP、建立TCP连接,最后进入发送流程。具体命令将在下一讲逐条执行。