ESP8266是一款低功耗,便于开发的WIFI模块,据说其内嵌了32位处理器,并且有自己的操作系统和wi-fi协议栈。
ESP8266具有两种开发方式,即基于协议栈给出的API接口进行开发和基于AT指令进行简单开发。
对于新手而言,AT指令开发无疑是最佳选项。
这里主要讲解我使用8266时用到AT指令,详细的指令解释可以在网上或者在我博客的资源中下载。开发中用到的工具也可在我的资源中下载
实验时最好使用USB转串口模块先对模块进行调试,调试后确定没问题再连接其他微控制器进行开发
本模块可以工作在三种模式:1. STA(连接到外网,通过外网收发数据) 2 .AP(模块作为热点,其他设备连接模块的热点后进行收发数据) 3 .AP+STA
在sscom42.exe中实验过程:模块初始波特率好像是115200,可以修改,记得勾选发送新行
首先上电,上电后,蓝色灯微弱闪烁后熄灭,红灯长亮。
在串口工具输入:AT ,返回OK说明模块启动成功
输入AT指令后一定要有回车作为结束,否则模块识别不出命令
一、AP模式
模块作为服务器
重启模块:AT+RST;响应:OK
设置模式:AT+CWMODE=2;响应:OK
设置后可输入AT+CWMODE?查询是否设置成功,不成功就重启模块即可
配置热点参数:AT+CWSAP="名字","密码",1(通道号),3(加密方式:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK)响应:OK
这时用手机打开WIFI就可以看到模块的热点,然后连接热点
查看接入设备:AT+CWLIF;响应:
如果没有ip地址,说明目前无设备连入。如果无线网络实际已连接上,请等待几分钟后再发送AT+CWLIF命令进行查询。
查询本机IP:AT+CIFSR;响应:本机IP OK
开启多连接模式:AT+CIPMUX=1(0:单路连接;1:多路连接);响应:OK
开启服务器模式:AT+CIPSERVER=1(0:关闭server模式,1:开启server模式),8080(端口号,缺省值为333);响应:OK
AT+ CIPMUX=1时才能开启服务器;关闭server模式需要重启。开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接。
这时就可以用TCP调试助手连接模块进行通信了(这里IP地址和端口号选对就能正常通信,模式要选Server)
查看当前连接:AT+CIPSTATUS;响应:+ CIPSTATUS:
发送数据:AT+CIPSEND=1(ID号,通过上一条指令AT+CIPSTATUS得知),6(数据长度,最大长度为2048 )
1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=
2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND=
响应:收到此命令后先换行返回”>”,然后开始接收串口数据
当数据长度满length时发送数据。
如果未建立连接或连接被断开,返回ERROR
如果数据发送成功,返回 SEND OK
此时连接已建立,可以进行数据的双向收发。
二、STA模式
模块作为客户端
首先要确保模块不处于服务器模式:AT+CIPSERVER=0
重启模块:AT+RST;响应:OK
设置模式:AT+CWMODE=1;响应:OK
查看当前无线路由器列表:AT+CWLAP;响应:返回可接入网络列表 OK
+ CWLAP:
错误返回:ERROR 此时请重新上电并严格按照AT命令再发送一遍。
说明:< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK
加入当前无线网络:AT+CWJAP="ssid","密码";响应:OK,错误:ERROR
加入网络后可以检测下是否加入成功:AT+CWJAP?,返回已加入的网络的ssid,模块对已加入的网络具有记忆功能,即断电重连后仍默认连接上次加入的网络(这一点需要特别注意)
连接模式:AT+CIPMUX=(这时0,1都可以)响应:OK
建立TCP连接:AT+CIPSTART=id,"连接方式TCP/UDP","IP地址",8080(端口号)响应:如果格式正确且连接成功,返回 OK,否则返回 ERROR
单路连接时(+CIPMUX=0),指令为:AT+CIPSTART=
多路连接时(+CIPMUX=1),指令为:AT+CIPSTART=
如果连接已经存在,返回 ALREAY CONNECT
发数据(向建立TCP/UDP连接的主机发送数据):AT+CIPSEND,这条命令的详情就不再叙述