一、ESP12-F模组介绍
ESP8266类比于U5芯片ESP12-F模组类比为 U5的最小系统
安信可 ESP8266 系列模组https://docs.ai-thinker.com/esp8266
二、固件
固件就是程序,比如之前的串口控灯实验,将当时的代码下载到硬件中去,形成一个产品,用户不能动,代码只对用户提供了控制指令的输入接口。此时这个控制程序就是固件。ESP8266不需要我们从到到尾去编程,只要们将官方提供的固件烧进去,那我们只要发送指令就可以控制这款芯片了。
- 固件开发(二次开发):不需要其他单片机只用8266就可以了,写8266内程序。
- AT指令方式开发:需要通过串口再接一个单片机,8266和这个单片机进行串口通信,8266内有原本的固件程序,单片机串口发送指令(AT指令)控制8266。
三个开放引脚
GPIO0:控制WIFI模式,GPIO0为低电平是下载模式,高电平为运行模式
运行和下载模式:
运行模式:此时串口为正常的通信功能
下载模式:此时串口为下载固件的功能
22号引脚 TXD为WIFI模组的串口发送引脚
21号引脚 RXD为WIFI模组的串口接收引脚
三、指令
注意:指令均要以 ' \r\n ' 结尾,
\r ---->光标回到本行行首
\n ---->光标直接直接换到下一行
3.1 复位
AT+RST
此指令相当于按了一下复位按键,有如下回复则是成功复位![]()
3.2 设置wifi模式
AT+CWMODE=参数 参数: 0: 无 Wi-Fi 模式,并且关闭 Wi-Fi RF 1: Station 模式---------可以连接其他热点 2: SoftAP 模式---------变身成为一个路由器,可以发射wifi信号成为一个热点 3: SoftAP+Station------模式 混合模式 一般使用1(station)模式 ,即AT+CWMODE=1
有如下回复则设置成功
3.3 连接WIFI热点
AT+CWJAP="热点名字","热点密码" 此处确保热点名字不要出现比较另类的字符,尽量为纯数字或者数字和字母组合 此热点为2.4G热点
如下回复则连接成功
如连接有问题可根据回复的错误信息判断连接不成功的问题在哪回复错误码1:连接超时
回复错误码2:密码错误
回复错误码3:找不到该AP(热点)
回复错误码4:连接失败
补充:使用电脑开热点:


3.4 连接TCP服务器
AT+CIPSTART="TCP","服务器IP",服务器端口 此时需要打开一个同网络下的服务器,可以是虚拟机的用代码写的服务器或者在Windows上打开一个服务器模拟器
3.5 数据发送
AT+CIPSEND=5 //发送五个字节给服务器
这种方式只能实现单次固定长度数据的发送输入后会出现箭头,表示后续需要往串口发的就是想发送到服务器的5个字节的数据
3.6 透传模式
3.6.1 什么是透传
3.5的发送太别扭了,每次发送要提前输入指令,还有长度限制,并不高效和方便, 可以不可以有一种设置,只要设置好了,我们就可以让串口助手直接和服务器进行通信,ESP8266只作一个转发者的身份存在,当发送指定字符时才退出通信。这就是透传,让ESP8266透明化的一种数据传输方式。
也就是,开启透传模式后,ESP8266接收到的任何数据他都不会将其看做命令,而是看做是要传输出去的数据,此时ESP8266就只是一个数据中转站,也就是实现了其透明化,数据好像直接从发送方到了接收方。
3.6.2 开启透传
//设置透传模式 AT+CIPMODE=1 //使能透传发送 AT+CIPSEND
发送完上面两个命令以后,出现如下的小箭头,则代表开启透传成功
进行数据的发送和接收:![]()
这样每次收发前不用再输入指令,更加高效。一旦进入了透传模式,即使再发送AT指令ESP8266也不会把他当指令进行处理的,所发送的AT指令会当做消息发送。
注意:
在透传模式中,若识别到单独的一包数据“ +++”,则退出透传模式。
流程:
四、单片机控制ESP8266连接TCP服务器
wifi驱动文件:
https://gitee.com/xiefujuan/driver-files.git