ESP8266系列ESP-01S模块的配置使用(51单片机)

目录

  • 1.简介
  • 2.ESP-01S的连线
  • 3.使用串口调试助手测试模块
    • 3.1 配置串口助手选项
    • 3.2 发送AT指令测试模块
    • 3.3 AT指令说明
  • 4.使用ESP-01S进行无线通信
    • 4.1 接入网络
    • 4.2配置通信方式
  • 5.使用服务器模式在已有的局域网中进行通信
    • 5.1向模块发送信息
  • 6.使用51系列单片机配置使用ESP-01S
    • 6.1 发送AT指令
    • 6.2 接受ESP-01S模块的信息
  • 7.资源代码下载

1.简介

ESP8266 系列模组是深圳市安信可科技有限公司开发的一系列基于乐鑫 ESP8266 的超低功耗的 UART-WiFi模块的模组,可以方便地进行二次开发,接入云端服务,实现手机 3/4G 全球随时随地的控制,加速产品原型设计。

2.ESP-01S的连线

ESP-01S USB转TTL 单片机
VCC 3.3V 3.3V
GND GND GND
EN 3.3V 3.3V
TX RX P3.0
RX TX P3.1

Note: ESP-01S使用3.3V供电,尽量不要使用USB转TTL的3.3V引脚供电。

3.使用串口调试助手测试模块

串口调试助手在本博文结尾下载

3.1 配置串口助手选项

  • ESP-01S的默认波特率为115200,所以配置串口调试助手的波特率为115200。
  • 勾选发送新行选项,ESP-01S模块接收的AT指令需要回车换行符(\r\n)为结尾。

3.2 发送AT指令测试模块

使用串口调试助手向ESP-01S发送复位AT指令:

AT+RST - 复位命令
响应内容:
系统进行复位,串口助手会收到一堆乱码,里面包含了ESP-01S的系统日志,模块在上电过程中在波特率74880下,打印系统日志,然后切换到115200完成模块初始化。

如果可以正常响应AT命令,则表示模块连线成功。
如没有响应,检查以下配置是否正确:

  • 根据上面的表格检查模块与USB转TTL的连线情况,确保模块与USB转TTL的RX、TX引脚交叉连接。
  • 确保波特率为115200,ESP-01S的默认通信波特率为115200。
  • 检查模块的供电情况,尽量不要使用USB转TTL上提供的3.3V供电。可以使用5V转3.3V模块连接单片机VCC端进行供电。

3.3 AT指令说明

控制ESP-01S的AT指令可以分为四种类型:

类型 指令格式 作用
测试指令 AT+=? 用于查询设置指令的参数以及取值范围
查询指令 AT+? 用于查询当前指令的值
设置指令 AT+=<…> 用于设置指令的参数值
执行指令 AT+ ⽤于执⾏受模块内部程序控制的变参数不可变的功能

AT指令必须要大写,并且以回车与换行符结尾(\r\n)

4.使用ESP-01S进行无线通信

4.1 接入网络

ESP-01S有三种接入网络的方式,Station模式、SoftAP模式、Station+SoftAP模式。
其中:

  • Station模式的行为类似于手机连接WIFI,连接其它的AP热点(路由器)。
  • SoftAP模式的行为类似于手机创建无线热点或者路由器的无线功能,提供给其它无线设备进行连接

4.2配置通信方式

ESP-01S有两种的通信方式,客户端形式,服务器端形式。
其中:

  • 客户端形式,在确认对方IP地址的情况下,可以使用AT命令直接向对方发起TCP/UDP连接,并进行通信。
  • 服务器端模式,不主动与其它无线设备进行连接,只监听设置好的端口,等待其它无线设备的连接,然后进行回复通信。

5.使用服务器模式在已有的局域网中进行通信

AT+CWMODE=1                                           // 设置模式为Station,连接其它的无线热点
AT+CWJAP_DEF="wifi_name","wifi_password"              // 连接WIFI热点(路由器)
// 以上AT指令只需要配置一次,往后每次模块上电,都会自动进行连接热点(如果热点还存在的话)
// 以下AT指令每次上电都需要重新配置,否则无法工作
AT+CIPMUX=1                                           // 配置为多连接模式
AT+CIPSERVER=1,8080                                   // 监听8080端口(可自定义修改),等待无线设备连接

使用串口调试助手,依次发送上面的AT指令,就可以完成在局域网中建立服务器端。

5.1向模块发送信息

查询ESP-01S模块在局域网中的IP。

如果ESP-01S连接的是路由器设备,则可以使用连接到相同路由器的电脑的浏览器打开192.168.0.1的路由器配置界面,以此查询ESP-01S模块的IP地址。

使用手机端或者PC端的网络调试助手,连接与ESP-01S相同的热点,设置助手软件为客户端模式,配置好IP与端口号,则可以向ESP-01S模块发送信息。

如果模块收到网络信息,则会向模块的TX口发送包含收到的网络信息的描述字符串。

+IPD,0,15:This is message

此字符串通常以+IPD开头,后面的参数格式可能会有所不同。
其中,0为代表当前发送信息到ESP-01S的客户端ID,以0开头,依次增加。
15为代表模块接收到的信息长度,以字节为单位,This is message15字节。

6.使用51系列单片机配置使用ESP-01S

同上,首先使用串口调试助手向ESP-01S模块发送两个接入网络的AT指令。
AT+CWMODE=1
AT+CWJAP_DEF="wifi_name","wifi_password"

由于使用的是51单片机,波特率无法设置ESP-01S相同的115200,所以额外使用AT命令改变ESP-01S模块的串口波特率才能进行与51单片机的通信。使用串口调试助手发送AT+UART_DEF=9600,8,1,0,0命令,参数分别代表:波特率、数据位、停止位、校验位、流控。
此命令保存到Flash,掉电不删除此配置。

剩下的两个AT+CIPMUX=1AT+CIPSERVER=1,8080指令每次上电需要重新配置一次,所以该指令需要使用单片机的串口发送。

6.1 发送AT指令

单片机使用串口发送AT指令的核心代码如下:

/* -------------------
   初始化ESP-01S
------------------- */
void Init_ESP01S(){
     
	Uart_SendStrData("AT+CIPMUX=1\r\n");            // 设置多连接
	delay();                                        // 进行延时,等待模块反应过来
	Uart_SendStrData("AT+CIPSERVER=1,80\r\n");      // 设置监听的端口
	delay();                                        
}

如上代码所述,Uart_SendStrData(unsigned char *msg)函数是向串口发送数据的方法,此初始化函数Init_ESP01S()调用串口发送函数来进行AT指令配置。

指令结尾记得附带回车换行符\r\n

6.2 接受ESP-01S模块的信息

其它在网络中的无线设备发送到ESP-01S的数据会被模块通过串口发送到单片机。数据格式如下:

+IPD,0,15:This is message
+IPD,<客户ID>,<信息长度>:<信息内容>

只需要在串口中断中接收解析以上的数据,就可以得到其它无线设备发送的信息。

7.资源代码下载

串口调试助手:

  • XCOM V2.0(PC板)

网络调试助手:

  • 网络调试助手(Android版)

配置ESP-01S单片机实例代码:

  • 51单片机实例代码 (提取码:9g42)
  • 51单片机实例代码(github)

AT指令大全:

  • ESP8266系列模块AT指令 (提取码:i8mx)

你可能感兴趣的:(单片机,单片机,物联网)