ESP8266 AT指令入门调试及应用

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 addr> OK,即返回接入模块的设备的IP地址

如果没有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:<id>,<type>,<addr>,<port>,<tetype>  OK

<id>:连接的id号0-4

<type>:字符串参数,类型TCP或UDP

<addr>:字符串参数,IP地址

<port>:端口号

<tetype>: 0-本模块做client的连接,1-本模块做server的连接

发送数据:AT+CIPSEND=1(ID号,通过上一条指令AT+CIPSTATUS得知),6(数据长度,最大长度为2048 )

1)单路连接时(+CIPMUX=0),指令为:AT+CIPSEND=<length>

2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= <id>,<length>

响应:收到此命令后先换行返回”>”,然后开始接收串口数据

当数据长度满length时发送数据。

如果未建立连接或连接被断开,返回ERROR

如果数据发送成功,返回 SEND OK

此时连接已建立,可以进行数据的双向收发。

二、STA模式

模块作为客户端

首先要确保模块不处于服务器模式:AT+CIPSERVER=0

重启模块:AT+RST;响应:OK

设置模式:AT+CWMODE=1;响应:OK   

查看当前无线路由器列表:AT+CWLAP;响应:返回可接入网络列表  OK

+ CWLAP: <ecn>,<ssid>,<rssi>

错误返回:ERROR 此时请重新上电并严格按照AT命令再发送一遍。

说明:< ecn >:0-OPEN,1-WEP,2-WPA_PSK,3-WPA2_PSK,4-WPA_WPA2_PSK

          <ssid>:字符串参数,接入点名称

          <rssi>:信号强度

加入当前无线网络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= <type>,<addr>,<port>

多路连接时(+CIPMUX=1),指令为:AT+CIPSTART=<id>,<type>,<addr>,<port>

如果连接已经存在,返回 ALREAY CONNECT

<id>:0-4,连接的id号

<type>:字符串参数,表明连接类型,”TCP”-建立tcp连接,”UDP”-建立UDP连接

<addr>:字符串参数,远程服务器IP地址

<port>:远程服务器端口号

发数据(向建立TCP/UDP连接的主机发送数据):AT+CIPSEND,这条命令的详情就不再叙述

猜你喜欢

转载自blog.csdn.net/RwinR/article/details/83212544