ESP8266是一个很常用的串口模块,很多学单片机或者是想要DIY WIFI来玩的同学都喜欢玩弄这个,所以说,ESP8266是一个非常通用的串口WIFI模块。但是,首次接触到WIFI模块时,很多人因为不懂WIFI通信的原理,在拿到ESP8266模块的时候,显得一头雾水,所以,这里,ROOMist将介绍如何使用ESP8266模块与本机电脑形成连接并进行数据发送。
ESP8266串口WIFI
ESP8266串口WIFI模块整体LAYOUT主要由ESP8266 WIFI芯片与外部FLASH组成。上图是ESP8266串口模块的实物图,ESP8266串口模块有8个外接引脚,首先,先要确认这8个引出脚的定义。
ESP8266串口WIFI模块PCB
引脚定义一般会在附带资料中给出,在资料图中可以清楚的看到ESP8266上面的8个引脚为GND,GPIO2,GPIO0,URX0,UTX0,H_PD,GPIO16,VCC。学习电子的同学都清楚GND,VCC,URX0和UTX0这几个所代表的意义,所以,接下来要弄清楚剩余的四个引脚是如何使用的。
按理说,想弄清楚引脚功能,首先看ESP8266芯片手册,芯片手册可以得到几乎所有的信息,但是,对于DSP或单片机这种存在可编程芯片,单看芯片手册是完全不行的,ESP8266就是这么一种情况,芯片手册中可以看到有一个“通用I/O”的目录,但是芯片手册仅说明了I/O口的工作方式以及复用功能,并没有介绍上述对应的四个脚是什么作用,因为引脚的作用是由程序进行配置的,这时可以先放弃查看芯片手册了,看模块操作介绍。
在附带资料中,可以在使用简要中看到ESP8266模块的硬件连接方式,其中有这样一段话:若想从FLASH启动进入AT系统,只需中间四个脚接VCC高电平即可,其中GPIO0为高电平代表从FLASH启动,GPIO0为低电平代表进入系统升级状态,此时可以经过串口升级内部固件。GPIO16(RST)可做外部硬件复位使用。到这里,我们就可以得到我们要想要的结果,ESP8266串口WIFI模块进入AT模式的硬件连接方式:GPIO2,GPIO0,H_PD,GPIO16接VCC。
对ESP8266进行串口调试需要使ESP8266进入AT模式,通过AT指令集对ESP8266进行控制操作。对于AT指令,相信对大多数人来说并不陌生,因为对于常用的蓝牙模块HC05也是通过AT指令进行控制操作的,AT指令是应用于终端设备与PC应用之间的连接与通信的指令,每一条指令都以AT开头,回车换行结尾,设备会对每一条指令返回执行信息。ESP8266的AT指令很多,现在,就以与本机电脑建立连接并互发消息为例进行操作说明。
1.确认ESP8266正常上电
所有的电子设备在正常通电时都会有电源指示灯,所以,判断是否正常接电只需看电源指示灯是否亮起即可。
2.使ESP8266进入AT模式
前面说过,ESP8266模块进入AT模式只需要将中间四个脚接VCC即可。与电脑的连接只需要使用一个串口调试器就好了,STC串口烧录器(用于51单片机程序烧录)或者是J-LINK(用于STM32程序烧录)都可以,其中RX0连接调试器TX口,TX0连接RX口。
按照AT模式的接法正确连接电路后,以下将全部使用AT指令进行操作,打开串口调试工具进行AT指令的发送以及执行结果的显示。ROOMist较常使用的为sscom,有时也用XCOM,串口的设置如下:
波特率:115200;数据位8位,1位停止位,无奇偶校正,无数据流控制。
3. AT
作用:AT测试指令,测试是否正常进入AT模式;
当无回复或者回复ERROR时表明模式未正确进入AT模式,
4. AT+RST
重启ESP8266,进行一次复位操作,初始化相关寄存器;
在ESP8266回复OK后,接着还会回复一大堆信息;
5. AT+CWMODE=3
设置wifi模式,设置为AP/STA并存模式,两种模式都能用。
6. AT+RST
使AT+CWMODE=3指令生效,将WIFI设置为AP/STA模式;
7. AT+CWLAP
查找附近所存在的WIFI,也就是路由器,这个过程比较久,大约持续2-3秒,随后将列出所有能够进行连接的路由器信息。
回复信息中只需关注两个,+CWLAP:的括弧内的第一项和第二项,第一项数字为该路由的加密方式,范围0-4,表示如下:
基本有密码的都是4:WPA_WPA2_PSK,第二项为WIFI名称,观察里面是否有你自己使用的路由器名称,如果有,继续下一步,如果没有,不太可能,电脑都连着上网呢,不过隐藏起来那就另当别论了。
8. AT+CWJAP=”路由/WIFI名字”,”路由/WIFI密码”
连接自己所使用的WIFI/路由,名字密码均要用双引号,若密码错误,则反馈连接错误信息“FAIL”;
若名字密码均正确,则会正常连接,并反馈已连接信息。
此时,ESP8266已连接到具备网络功能的路由器,接下来,就是通过该路由与同样连接着该路由的电脑主机进行连接对话了,如何进行对话呢,这就要使用TCP/UDP协议进行对话,TCP为传输控制协议,UDP为用户数据报协议,两者都是一种数据通信协议,这里,ROOMist选择使用TCP,步骤如下:
(1)设置电脑为TCP服务器;
一般调试所使用的方法是通过网络调试助手进行建立,也可以通过命令提示符,此处建议使用网络调试助手。
调试助手有三个选项框,分别为协议类型,IP以及端口号,IP为网络助手自动读取本机IP,无需更改,也一定不要更改,端口号为8080,这是一个神奇的端口号,也不需修改,协议类型选择TCP Sever,另外还有选项为UDP以及TCP Client,UDP不做解释,TCP Server与TCP Client的区别简单说就是如果本机作为服务器,那ESP8266则为TCP Client,反之亦然。
点击网络调试助手中的连接按钮后,电脑就形成了一个TCP服务器。
(2)ESP8266与服务器进行连接;
步骤1已经建立好了TCP服务器,此时ESP8266可以进行连接,以下均为AT指令:
AT+CIPSTART="TCP","192.168.1.125",8080
以TCP方式与TCP Sever的8080端口进行连接。
正确连接会反馈CONNECT已连接信息,同时网络调试助手端会显示连接设备IP以及端口;
其中192.168.1.206则为ESP8266的IP,16244为端口号。
(3)两者建立对话;
AT+CIPSEND=6
6为字符数,当ESP8266检测到>符号之后存在>=6个字符后进行数据发送,若等于6个,则全部发送,若大于6个,则只发送6个,6变成7,8,9也是按照这个规律。
ESP8266发送"HELLO!"
网络助手会显示ESP8266所发送的数据,至此,两者通信成功。当然,也可以用网络助手向ESP8266进行发送数据,操作更加简单,在网络助手输入框中输入想要发送的数据,而且字数不限,连接对象可选ESP8266的IP,也可选择所有连接对象,点击发送。
在ESP8266端可看到接收消息,格式为+IPD,后面接着为接收的数据量以及数据,到这里,两者就进行了互通。
ESP8266是一个非常好用的串口WIFI,能够用于多种智能化产品,如有其它不懂或者需要ESP8266相关资料,欢迎关注电子科技ROOM留言“ESP8266”获取。
领取专属 10元无门槛券
私享最新 技术干货