没志青年
发布于 2026-01-05 / 14 阅读
0

ESP Wi-Fi 模块

模块

说明

价格

ESP-01

ESP-01S

ESP-07

ESP-07S

ESP-12E

ESP-12F

ESP-12S

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

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

AT指令

使用USB-TTL连接ESP8266

使用串口助手发送AT指令,波特率默认为115200

AT 指令就是一套控制规范

AT 指令(AT Commands)最早是由发明拨号调制解调器的贺氏公司为了控制拨号调制解调器而发明的控制 协议。后来随着网络带宽的升级,速度很低的拨号调制解调器基本退出市场,但是 AT 指令被保留了下来。

在嵌入式开发中,经常是使用 AT 命令去控制各种通讯模块,比如 ESP8266 模块、4G 模块、GPRS 模块等 等。一般就是主芯片通过硬件接口(比如串口、SPI)发送 AT 指令给通讯模块,模块接收到数据之后回应响 应的数据。

AT指令有四种类型

类型

格式

功能

测试指令

AT + < X > = ?

查询设置命令或内部程序设置的参数及其取值范

查询指令

AT + < X > ?

返回参数的当前值

设置指令

AT + < X > = < ... >

设置用户自定义的参数值

执行指令

AT + < X >

执行受模块内部程序控制的变参数不可变

AT 指令有近百条,但常用的就十几条,理解起来也非常简单,现在举例一些常用指令,并使用这些指令一步 一步的通过 TCP 连接到远程的服务器实现收发数据时

硬件基础指令

AT指令

功能

AT

测试模块是否正常

AT+GMR

获取固件版本信息

AT+RST

重启

AT_RESTORE

恢复出厂设置

串口助手中

shift+Enter换行

或是在后面添加\r\n

数据透传

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

STA 模式(Station)

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

AP 模式(Access Point)

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

AP+STA 模式

同一时刻只能是一种模式

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

模式切换指令

AT指令

功能

AT+CWMODE=1

设置 STA 模式

AT+CWMODE=2

设置 AP 模式

AT+CWMODE=3

设置 AP+STA 模式

AT+CWMODE?

查询当前是什么模式

发送 ATE0 ,关闭回显 发送 ATE1 ,开启回显

作为普通上网设备

AT+CWMODE=1

AT指令

功能

AT+CWJAP="SSID","password"

加入 WIFI 热点:SSID,密码为password

AT+CIFSR

查询 ESP8266 的 IP 地址

AT+CIPSTA?

查询 ESP8266 的 IP、网关地址和子网掩码

AT+CWQAP

断开WIFI

AT+CWJAP="66666789","66666789"
AT+CIPSTA?

作为TCP客户端

AT指令

功能

AT+CIPSTART="TCP","192.168.X.XXX",8080

建立 TCP 连接到“192.168.X.XXX”,端口为8080

AT+CIPCLOSE

断开 TCP 连接

建立连接以后,仍然是AT指令模式,需要设置为数据透传模式,执行下面的前两个指令。

AT指令

功能

AT+CIPMODE=1

开启透传模式

AT+CIPSEND

开始发送数据

AT+CIPMODE=0

退出透传

AT指令

功能

AT+CIPSEND=n

开始传输,n表示需要传输的字节数

AT+CIPSEND=0,n

向 ID0 发送 n 字节数据包,n的值自己定

作为UDP客户端

AT指令

功能

AT+CIPSTART="UDP","192.168.X.XXX",8080

建立 UDP 连接到“192.168.X.XXX”,端口为8080

AT+CIPCLOSE

断开UDP连接

作为热点

AT+CWMODE=2

AT指令

功能

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

通道:对应的就是不同的射频频率,如果同一空间内存在相同通道的 WIFI 信号, 将会产生干扰,影响上网质量,因此可以设置通道来避免这种干扰,常用的通道有 1、6、11,因为这三个 通道互不产生干扰。

加密方式:1-WEP,2-WPA_PSK,3-WPA2_PSK,4- WPA_WPA2_PSK

热点模式下没有AT指令去断开,切换为STA模式就关闭了AP

作为TCP服务器

AT指令 意义 AT+RESTORE 恢复出厂设置 AT+RST 重启WIFI模块(复位) AT+CWMODE=2 设置成AP模式,相当于路由器 AT+CWSAP_DEF="ESP8266","12345678",5, 4 ① WIFI名称②密码 ③通道号

④ 加密方式(0~4)

AT+CIFSR 查询ESP8266的IP地址(很重要) AT+CIPMUX=1 开启多连接(可以被多个手机连接)(很重要,要不然,下一个指令会报错) AT+CIPSERVER=1,8080 开启服务器 ————————————————

原文链接:https://blog.csdn.net/m0_58832575/article/details/124206387

在AT模式下发送数据

在sta模式下,只能为0

AT+SWMODE=2
AT+CWSAP_DEF="ESP8266","12345678",1,4
AT+CIPMUX=1
AT+CIPSERVER=1,8089        建立连接
AT+CIPSTATUS               查看当前连接状态
AT+CIFSR                   查询模块的IP地址
AT+CIPSEND=客户端连接ID,5
使用串口发送   hello 正好五个字节
AT+CIPSERVER=0       关闭连接

数据透传模式下发送数据

AT+CIPMODE=1
​
​
直接发送的数据
​
​
AT+CIPMODE=0

AT模式:需要使用 AT+CIPSEND 指令指定数据长度后发送数据,适用于控制性较强的应用场景。

透传模式:允许直接发送数据,适用于需要高效数据传输的应用场景。

作为UDP服务端