虽然esp8266有很多种,但是对于我们初学者来说,只需要有RXD,TXD,VCC,GND四个引脚,简单入门足够了
1. 引脚说明:
VCC连接正极(有些是3.3V,有些是5V,我的这个是5V),GND连接负极
RXD:数据的接收端 (连接单片机或者USB转TTL模块的TXD)
TXD:数据的发送端 (连接单片机或者USB转TTL模块的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指令,AT即attention前两个字母的。我们要与终端适配器(这里是WiFi模块)通信就要用AT指令。简单来说,我们想要配置这个模 块,就必须发送相应的AT指令!
2.每条指令可以细分为下面四种指令,但不是每个模块都具有下面四种指令
①测试指令:用于查询设置命令以及设置的参数及其范围
AT+<CMD>=?
②查询指令:返回参数的当前值
AT+<CMD>?
③设置指令:设置用户的自定义参数
AT+<CMD>=<.......>
④设置指令:执行模块内部的变参数不可变的功能
AT+<CMD>
我们通过串口发送指令
3. 具体开发步骤
需要:USB转TTL模块,esp8266模块,正常电脑就可以了
3.1验证上电模块是否工作正常
①将线连接好,特别是VCC、GND、TXD、RXD要连接好,其他线可以悬空。
1.1通电之后:如果是红灯蓝灯闪烁一下后全部熄灭,说明电流过大,考虑换一个供电能力更强的USB转TTL模块
如果是通过串口接收到的数据一直不断的是乱码这说明是电压过小,将3.3V换成5V
②利用串口助手(总之可以接收到串口发送的数据的软件就可以),出厂默认的波特率一般是115200,设置软件的波特率为115200,如果接受到的是乱码也可以试一下其他的波特率
③串口助手的软件上勾选上”发送新行”,打开串口,现在发送指令”AT+RST”,如果没有勾选”发送新行”,就要发送”AT+RST\r\n”,串口返回的结果是,出现下列结果.主要是出现先出现”OK”,再出现一堆乱码,再出现”ready”,就表明该模块可以正常使用.
式
3.2 AP模式
AP模式:该模块作为热点,手机或者电脑连接wifi与该模块通信,实现局域网的无线控制!
(1)建立AP
3.2.1.1建立模块,发送指令AT+RST ,响应:OK
3.2.1.2设置模块
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
此时再用手机搜索热点就可以连接
3.2.1.4这里可以查看已经连接设备的IP
发送:AT+CWLIF ,查看已经连接的设备的IP地址,响应<IP addr> OK,这里的IP addr表示就是已连接设备的IP地址,不同的esp8266不同,我的显示了MAC地址
(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指令可以看到,指令不知道可以在找一些相应的指令表查看