常用的AT指令集
ESP8266封装方式多样,天线可支持板载PCB天线,IPEX接口和邮票孔接口三种形式;
ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。
其实,这些都是浮云,最大的优点是它是一款非常廉价的WIFI串口解决方案模块,适合种学生开发者~
AT指令调试(初步开发)
ESP8266本身就是一个mcu,所以它可以有两种用途:
1.当成一个普通的wifi模块,用官方集成的AT指令集进行开发;
2.当成一个集成了wifi功能的mcu,用安信可或其他平台提供的sdk进行深度开发。
由于由浅入深,今天先总结下常用AT指令的开发过程。
先连接好电路,注意将GPIO0脚悬空,用串口调试助手发送AT指令,默认波特率为115200,设置好之后才可以进行正常通讯。
下面我将列出常用的AT指令集:
AT+GMR ----------- ------- 查看版本信息
AT+CWMODE=? ---------- ---响应返回当前可支持哪些模式
AT+CWMODE=《mode》 --- ---参数说明
《mode》
1 Station 模式; 2 AP 模式; 3 AP 兼 Station 模式;
AT+ CWJAP =《ssid》,《 pwd 》 ----参数说明
《ssid》字符串参数,接入点名称
《pwd》字符串参数,密码最长 64 字节 ASCII
AT+CIPSTART=? ----------设置 AT+CIPMUX=0
+CIPSTART:
(《type》取值列表), (《IP address》范围), (《port》范围)
AT+ CIPSERVER=《mode》,《port》--参数说明
《mode》 0 --关闭 server 模式 ; 1 --开启 server 模式
《port》 端口号,缺省值为 333
AT+CIPSTO=《time》-------------参数说明
《 time》 0~28800 服务器超时时间,单位为 s
AT+CIPMODE=《mode》----------参数说明
《mode》 0-- 非透传模式 ; 1 --透传模式
ESP8266指令集主要分为:基础AT命令、Wife功能AT命令、Top/IP工具箱AT命令
一、基础AT指令
1. AT:测试AT启动,返回OK
2. AT+RST:重启模块,返回OK
3. AT+GMR:查看版本信息,返回 OK ,为8位版本号
二、wifi功能AT指令
1. AT+CWMODE?:查询WIFI应用模式,返回+CWMODE:OK
2. AT+CUMODE=:设置wifi应用模式,返回OK;指令重启后生效,mode:1.Station模式,2.AP模式,3.AP+Station兼容模式,备注,station:客户端,AP:服务器;
Station模式下:
3. AT+CWJAP?:查询当前选择的AP,返回+CWJAP:OK
4. AT+CWJAP=”ssid”,”pwd”:加入AP,返回OK或ERROR;ssid:接入点名称,pwd:密码最长64字节ASCII
5. AT+CWLAP:列出当前可用AP,返回+CWLAP:,,OK/ERROR;ecn:0.OPEN,1.WEP,2.WPA_PSK,3.WPA2_PSK,4.WPA_WPA2_PSK;ssid:接入点名称;rssi:信号强度
6. AT+CWQAP:退出与AP的连接,返回OK
AP模式下:
7. AT+CWSAP?:查询当前AP模式下的参数,返回+CWSAP:,,,;
8. AT+CWSAP=”ssid”,”pwd”,”chl”,”ecn”:设置AP参数,返回OK/ERROR;ssid:接入点名称;pwd:密码最长64字节ASCII;chl:通道号;ecn:0.OPEN,1.WEP,2.WPA_PSK,3.WPA2_PSK,
4.WPA_WPA2_PSK;
9. AT+CWLIF:查看已接入设备的IP,返回 OK
三、TCP/IP工具箱AT指令
1. AT+CIPSTATUS:获得连接状态和连接参数,返回STATUS:+CIPSTATUS:,”type”,”addr”,, OK;id:连接的id号0-4;type:TCP或UDP;addr:IP地址;port:端口号;tetype:0.本模块做client的连接,1.本模块做server的连接
2. 单路连接:AT+CIPSTART=”type”,”addr”,:建立TCP连接或注册UDP端口号,返回OK/ERROR/ALREAY CONNECT;id:连接的id号0-4;type:TCP/UDP;addr:远程服务器ip地址;port:远程服务器端口号
3. 多路连接:AT+CIPSTART=”type”,”addr”,,返回,同上
4. 单路连接:AT+CIPSEND=:发送数据,返回,换行返回》,ERROR/SENDOK;
5. 多路连接:AT+CIPSEND=,:id:用于传输连接的id号
6. 透传模式:AT+CIPSEND:发送数据,返回收到次命令后先换行返回》,然后进入透传模式,每包数据以20ms间隔区分,每包最大2048字节,当输入单独一包”+++”返回指令模式,该指令必须在开启透传模式以及单连接模式下使用
7. 多路连接:AT+CIPCLOSE=:关闭TCP/UDP,返回,OK/Link is not;id:需要关闭的连接id,id=5时关闭所有连接(开启server后id=5无效)
8. 单路连接:AT+CIPCLOSE:关闭TCP/UDP,返回,OK/ERROR/unlink
9. AT+CIFSR:获取本地IP地址,返回+CIFSR: OK/ERROR,IP addr:本机ip地址(station),AP模式无效
10. AT+CIPMUX=:启动多连接,返回OK/Link isbuilded;mode:0.单路连接模式,1.多路连接模式;备注,只有当连接都断开后才能更改,如果开启过server需要重启模块
11. AT+CIPSERVER=[,]:配置为服务器,返回OK,关闭server需重启,mode:0.关闭server模式,1.开启server模式;port:端口号,缺省值为333;备注:开启server后自动建立server监听,当有client接入会自动按顺序占用一个连接,多连接模式才能开启服务器;
12. AT+CIPMODE:设置模块传输模式,返回OK/Link isbuilded;mode:0.非透传模式,1.透传模式
13. AT+CIPSTO=:设置服务器超时时间,返回OK,0~28800服务器超时时间,单位为s
14. 单连接模式:+IPD,::接收到网络数据,返回 网络数据向模块串口发送的+IPD和数据,收到连接的id号,数据长度,收到的数据
15. 多连接模式:+IPD,,:
ESP8266是块很有开发价值的芯片,值得我们深入学习和改造~当然,AT指令开发还需要一定的单片机基础,对此我就不多赘述了。
ESP8266使用AT指令开发示例
一。 智能配网(Smartconfig)示例
说明:使用两种方式进行配网,乐鑫ESP-Touch和微信Airkiss。
方式1:ESP-Touch
1,AT+CWMODE_DEF=1 !!配置WiFi模组工作模式为单STA模式,并把配置保存在flash
2,AT+CWAUTOCONN=1 !!使能上电自动连接AP
3,AT+CWSTARTSMART=3 !!支持ESP-Touch和Airkiss智能配网
4,手机连上需要配网的AP,打开手机APP ESP-Touch 输入密码,点击确定,等待配网成功,见图1
5,AT+CWSTOPSMART !!无论配网是否成功,都需要释放快连所占的内存,见图2
6,AT+CIPSTATUS !!查询网络连接状态
方式2:Airkiss
1,AT+CWMODE_DEF=1 !!配置WiFi模组工作模式为单STA模式,并把配置保存在flash
2,AT+CWAUTOCONN=1 !!使能上电自动连接AP
3,AT+CWSTARTSMART=3 !!支持ESP-Touch和Airkiss智能配网
4,打开微信,关注微信公众号“安信可科技”,点击wifi配置,点击开始配置,输入密码,点击连接, 见图3
5,AT+CWSTOPSMART !!无论配网是否成功,都需要释放快连所占的内存
6,AT+CIPSTATUS !!查询网络连接状态,如图4
二。 HTTP通信示例
1,AT+GMR !!启动查询版本信息
AT version:1.2.0.0(Jul 1 2016 20:04:45)
SDK version:1.5.4.1(39cb9a32)
Ai-Thinker Technology Co., Ltd.
Integrated AiCloud 2.0 v0.0.0.5
Build:1.5.4.1 Mar 24 2017 11:06:56
OK
2,AT+CWMODE_DEF=1 !!配置WiFi模组工作模式为单STA模式,并把配置保存在flash
OK
3,AT+CWJAP_DEF=“newifi_F8A0”,“anxinke123” !!连接网络
WIFI CONNECTED
WIFI GOT IP
OK
4,AT+CWAUTOCONN=1 !!使能上电自动连接AP
OK
5,AT+CIPSTART=“TCP”,“183.230.40.33”,80 !!连接服务器
CONNECT
OK
6,AT+CIPMODE=1 !!设置透传
OK
7,AT+CIPSEND !!启动发送
OK
8,》 GET请求
GET /devices/5835707 HTTP/1.1
api-key: xUrvOCDB=iRuS5noq9FsKrvoW=s=
Host:api.heclouds.com
\r\n\r\n(结束)
回应:
HTTP/1.1 200 OK
Date: Tue, 09 May 2017 01:21:06 GMT
Content-Type: application/json
Content-Length: 213
Connection: keep-alive
Server: Apache-Coyote/1.1
Pragma: no-cache
{“errno”:0,“data”:{“private”:false,“protocol”:“EDP”,“create_time”:“2017-05-06 12:51:52”,“online”:false,“location”:{“lon”:0,“lat”:0},“id”:“5835707”,“auth_info”:“Light001”,“title”:“SLight”,“tags”:[]},“error”:“succ”}
9,》POST请求
POST /devices/5835707/datapoints HTTP/1.1
api-key: xUrvOCDB=iRuS5noq9FsKrvoW=s=
Host:api.heclouds.com
Content-Length:60
\r\n
{“datastreams”:[{“id”:“switch”,“datapoints”:[{“value”:1}]}]}|(结束)
回应:
HTTP/1.1 200 OK
Date: Tue, 09 May 2017 01:28:42 GMT
Content-Type: application/json
Content-Length: 26
Connection: keep-alive
Server: Apache-Coyote/1.1
Pragma: no-cache
{“errno”:0,“error”:“succ”}
10, +++ !!退出透传,不要勾选新行(\r\n)
三.STA+连接TCP Server
1,AT+CWMODE_DEF=1 !!工作在单station模组,设置参数保存到flash
2,AT+CWJAP_DEF=“newifi_F8A0”,“anxinke123” !!连接路由器,保存到flash
3,AT+CIPSTART=“TCP”,“192.168.99.217”,6001 !!连接TCP服务器,本实验用网络调试助手进行测试
4,AT+CIPSEND=5 !!方式一:发送指定数据长度的数据(Data:test1),见图1
5,AT+CIPMODE=1 !!方式二:使用透传模式发送数据
6,AT+CIPSEND !!发送数据(Data:Test2),见上图1:
7,发送:+++ !!退出透传发送三个连续的+++,不要勾选新行(\r\n),见下图:
8,退出成功,即可发送AT指令
评论
查看更多