1.WiFi模块ESP8266模块的使用(针对初学者)

时间:2024-04-10 09:36:32

 

1.WiFi模块ESP8266模块的使用(针对初学者)1.WiFi模块ESP8266模块的使用(针对初学者)

虽然esp8266有很多种,但是对于我们初学者来说,只需要有RXD,TXD,VCC,GND四个引脚,简单入门足够了

1. 引脚说明:

VCC连接正极(有些是3.3V,有些是5V,我的这个是5V),GND连接负极

RXD:数据的接收端 (连接单片机或者USBTTL模块的TXD)

TXD:数据的发送端 (连接单片机或者USBTTL模块的RXD)

RST: 复位,低电平有效

IO_0:用于进入固件烧写模式,低电平->烧写,高电平->运行模式(默认)

2. 模块简介

2.1功能介绍

ESP8266支持3种工作模式”STA”AP”、“STA+AP”模式:

STA模式:该模块通过路由器连接网络,手机或者电脑实现该设备的远程控制.

AP模式:该模块作为热点,手机或者电脑连接wifi与该模块通信,实现局域网的无线控制

STA+AP模式:两种模式共存,既可以通过路由器连接到互联网,也可以作为WiFi热点,使其他设备连接到这个模块,实现广域网与局域网的无缝切换.

2.2 AT指令结构

1.什么是AT指令?

我们将终端(如手机等)PC通信的指令叫做AT指令,ATattention前两个字母的。我们要与终端适配器(这里是WiFi模块)通信就要用AT指令。简单来说,我们想要配置这个模 ,就必须发送相应的AT指令!

2.每条指令可以细分为下面四种指令,但不是每个模块都具有下面四种指令

①测试指令:用于查询设置命令以及设置的参数及其范围

AT+<CMD>=?

②查询指令:返回参数的当前值

AT+<CMD>?

③设置指令:设置用户的自定义参数

AT+<CMD>=<.......>

④设置指令:执行模块内部的变参数不可变的功能

AT+<CMD>

我们通过串口发送指令

3. 具体开发步骤

需要:USBTTL模块,esp8266模块,正常电脑就可以了

3.1验证上电模块是否工作正常

①将线连接好,特别是VCCGNDTXDRXD要连接好,其他线可以悬空。

1.1通电之后:如果是红灯蓝灯闪烁一下后全部熄灭,说明电流过大,考虑换一个供电能力更强的USBTTL模块

如果是通过串口接收到的数据一直不断的是乱码这说明是电压过小,3.3V换成5V

②利用串口助手(总之可以接收到串口发送的数据的软件就可以),出厂默认的波特率一般是115200,设置软件的波特率为115200,如果接受到的是乱码也可以试一下其他的波特率

③串口助手的软件上勾选上”发送新行”,打开串口,现在发送指令”AT+RST”,如果没有勾选”发送新行”,就要发送”AT+RST\r\n”,串口返回的结果是,出现下列结果.主要是出现先出现”OK”,再出现一堆乱码,再出现”ready”,就表明该模块可以正常使用.

1.WiFi模块ESP8266模块的使用(针对初学者)

3.2 AP模式

AP模式:该模块作为热点,手机或者电脑连接wifi与该模块通信,实现局域网的无线控制!

(1)建立AP

3.2.1.1建立模块,发送指令AT+RST ,响应:OK

3.2.1.2设置模块

1.WiFi模块ESP8266模块的使用(针对初学者)

 

3.2.1.3设置AP参数

发送AT+CWSAP=”fulei”,”1234567890”,1,3

指令说明:AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>  

ssid表示接入点的名称,也就是WiFi的名称,pwd就是密码,最长64,chl表示通道号,ecn就是表示加密的方式:0~OPEN(开放不加密),1~WEP,2~WPA_PSK,3~WPA2_PSK,4~WPA_WPA2_PSK

 1.WiFi模块ESP8266模块的使用(针对初学者)

  此时再用手机搜索热点就可以连接

1.WiFi模块ESP8266模块的使用(针对初学者) 

3.2.1.4这里可以查看已经连接设备的IP

 发送:AT+CWLIF ,查看已经连接的设备的IP地址,响应<IP addr>  OK,这里的IP addr表示就是已连接设备的IP地址,不同的esp8266不同,我的显示了MAC地址

 

 1.WiFi模块ESP8266模块的使用(针对初学者)


(2) Server方法接收(也就是该模块做服务器!)

3.2.2.1 查询该模块现在的状态:(可以跳过)

AT+CWMODE? 该指令将返回当前模式

1~STA模式,2~AP模式,3~STA+AP模式

AT+CIPMUX?  查询此模块是不是建立多连接

0~单路连接模式 1~多路连接模式

AT+CIPMODE? 查询该模块的传输方式

0~非透传模式 1~透传模式

所谓透传模式,就是用户不需要知道底层协议等复杂的东西,只需要知道我这个串口发送,那个串口接受到数据,对使用者就是透明的,就像不存在内部复杂的协议一样

AT+CIPSTO? 查询该模块的超时时间:0~2880 ,单位秒

AT+CIFSR 查看该模块的IP地址,也可能会加上MAC地址

3.2.2.2开启多连接模式

发送指令AT+CIPMUX=1

说明:AT+CIPMUX=<mode>,mode:0表示单路连接模式,1表示多路连接模式

3.2.2.3创建服务器

发送指令:AT+CIPSERVER=1,8080

指令说明: AT+CIPSERVER=<mode>[,<port>]

mode:0~关闭server模式,1~开启server模式,port:用中括号的表示可以不填,可缺省,当不填的时候默认是333

说明:AT+CIPMUX=1时才开启服务器,关闭服务器需要重启。即(开启:AT+CIPMUX=1关闭:AT+CIPMUX=0,响应后再发AT+RST)。开启服务器之后会自动建立server监听,当有client接入的时候,会按顺序占用一个连接。

3.2.2.4设立超时的时间

AT+CIPSTO=2880 指令说明AT+CIPSTO=<time>,设置服务器的超时时间,单位为秒,time的范围为0~2880

3.2.2.5查看当前的连接状态

AT+CIPSTATUS

3.2.2.6向某个连接发送数据

AT+CIPSEND=0,6

指令说明: 这里是多路连接AT+CIPSEND=<id>,<length>   

id可以用AT+CIPSTATUS查询到,每个连接都有一个id,这是给不同连接发数据的依据,每个连接按连接时间顺序获得从0开始的id

length:表示数据发送的长度,当发送的数据到了length时发送数据,才开始发送数据超过的部分不发,最大2048

单路连接 AT+CIPSEND=<length>

 

把上面的步骤全部做完就可以实现手机与电脑通过这个WiFi模块的通信。这里需要网络调试的软件。当我们用网络调试的软件的时候,软件上有些IP地址不会填的可以通过串口发送AT指令可以看到,指令不知道可以在找一些相应的指令表查看