AT指令学习(WiFi和bt模块上的使用)

博客分类: 技术 阅读次数: 🤔

AT指令学习(WiFi和bt模块上的使用)

AT基础指令

type 格式 描述
Test AT+CMD=? 返回可设置命令,参数范围
Query AT+CMD? 返回参数的当前值
Set AT+CMD=Parameter 预设值,模式
Execute AT+CMD 执行命令

notes:

不是所有指令都有四种方式
字符串情况要用”“双引号 eg:
AT+CWSAP=“ESP756190”,”21030826”,1,4. 设置AP模式账号密码
波特率默认为115200
AT指令ends with “\r\n”

at

AT基础指令

AT !!测试是否安装AT固件
AT+RST !!RESTART MODULE
AT+GMR !!View version info
AT+GSLP !!Enter deep sleep mode AT+GSLP=time 深度睡眠模式 单位MS毫秒
ATE !!AT commands echo 当向模块发送ATE1时,则回显功能生效,ATE0 失效

1、 AT+RST
功能:重启模块

2、AT+CWMODE= 功能:mode=1 :Station模式(接收模式) mode=2:AP模式(发送模式) mode=3:AP+Station模式

3、AT+ CWSAP= ,,, 功能:配置AP参数(指令只有在AP模式开启后有效)                 ssid:接入点名称                pwd:密码               chl:通道号               ecn:加密方式:(0-OPEN, 1-WEP, 2-WPA_PSK, 3-WPA2_PSK, 4-WPA_WPA2_PSK) 注意: 此设置完成后,连接网络会可能出现连接不上的情况,请发送 AT+RST 命令并等待几分钟之后再连接。

4、AT+CWLIF
功能:查看已接入设备的 IP

5、AT+CIFSR
功能:查看本模块的 IP 地址
注意:
AP 模式下无效!会造成死机现象!

6、AT+CWMODE?
功能:查看本机配置模式

7、AT+CIPMUX?
功能:查询本模块是否建立多连接
说明: :0-单路连接模式, 1-多路连接模式

8、AT+CIPMODE?
功能:查询本模块的传输模式
说明: :0-非透传模式, 1-透传模式

9、AT+CIPSTO?
功能:查询本模块的服务器超时时间

10、AT+CIPMUX=1
功能:开启多连接模式

11、AT+CIPSERVER=1,8080
功能:创建服务器

AT+CIPSERVER=0 关闭服务器

说明: mode>:0-关闭 server 模式
1-开启 server 模式

port>:端口号,缺省值为 333

说明:
(1) AT+ CIPMUX=1 时才能开启服务器;关闭 server 模式需要重启
(2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连接。

12、AT+CIPSTO=2880
功能:设置服务器超时时间

13、AT+CIPSTATUS
功能:查看当前连接
说明: id>:连接的 id 号 0-4
type>:字符串参数,类型 TCP 或 UDP
addr>:字符串参数, IP 地址
port>:端口号
tetype>: 0-本模块做 client 的连接, 1-本模块做 server 的连接

14、AT+CIPSEND=1,6
功能:向某个连接发送数据
指令: 1)单路连接时(+CIPMUX=0),指令为: AT+CIPSEND=length>
2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= id>,length>响应:收到此命令后先换行返回”>”,然后开始接收串口数据,当数据长度满 length 时发送数据。如果未建立连接或连接被断开,返回 ERROR 如果数据发送成功,返回 SEND OK
说明: id>:需要用于传输连接的 id 号
length>:数字参数,表明发送数据的长度,最大长度为 2048

15、AT+CIPSERVER=0
功能:关闭 server 服务   指令: AT+CIPSERVER=mode>[,] 说明: mode>:0-关闭 server 模式, 1-开启 server 模式 port>:端口号,缺省值为 333 响应: OK 说明: (1) AT+ CIPMUX=1 时才能开启服务器;关闭 server 模式需要重启 (2)开启 server 后自动建立 server 监听,当有 client 接入会自动按顺序占用一个连接。 16、AT+CIPSTART=2,"TCP","192.168.4.101",8080 功能:建立 TCP 连接

指令: 1)单路连接时(+CIPMUX=0),指令为: AT+CIPSTART= type>,addr>,port>
2)多路连接时(+CIPMUX=1),指令为: AT+CIPSTART=id>,type>,addr>,port>
响应:如果格式正确且连接成功,返回 OK,否则返回 ERROR
如果连接已经存在,返回 ALREAY CONNECT
说明: id>:0-4,连接的 id 号
type>:字符串参数,表明连接类型, ”TCP”-建立 tcp 连接, ”UDP”-建立 UDP 连接
addr>:字符串参数,远程服务器 IP 地址
port>:远程服务器端口号

17、AT+CIPSEND=2,8

指令: 1)单路连接时(+CIPMUX=0),指令为: AT+CIPSEND=length>
2)多路连接时(+CIPMUX=1) ,指令为: AT+CIPSEND= id>,length>
响应:收到此命令后先换行返回”>”,然后开始接收串口数据
当数据长度满 length 时发送数据。
如果未建立连接或连接被断开,返回 ERROR
如果数据发送成功,返回 SEND OK
说明: id>:需要用于传输连接的 id 号
length>:数字参数,表明发送数据的长度,最大长度为 2048

18、AT+CWLAP
功能:查看当前无线路由器列表
响应:正确: (终端返回AP列表)

19、AT+CWJAP=”MERSAIN”,”XXXXXXXX”
 功能:加入当前无线网络
指令: AT+CWJAP=ssid>, pwd >
说明: ssid>:字符串参数,接入点名称
pwd>:字符串参数,密码,最长64字节ASCII
响应:正确: OK
错误: ERROR
20、AT+CWJAP?
功能:检测是否真的连上该路线网络
指令: AT+CWJAP?
响应:返回当前选择的AP

WIFI 8266实例

at
三种模式:

  1. STA(连接到外网,通过外网收发数据)
  2. AP(模块作为热点,其他设备连接模块的热点后进行收发数据)
  3. AP+STA

    AP模式

    首先上电,设置串口波特率115200,(按下res键)
    在串口工具输入:AT ,返回OK说明模块启动成功
    重启模块: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;响应: 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

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

esp8266

STA模式

模块作为客户端

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

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

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

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

错误返回: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= < 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,这条命令的详情就不再叙述

蓝牙AT指令

蓝牙与USB转串口模块连接方式,RXD-TX TXD-RX VCC-VCC GND-GND
要设置蓝牙AT指令,必须让AT引脚置高,然后接上蓝牙模块,当蓝牙模块state灯变为慢闪,则表明已经进入AT模式。(j将蓝牙模块与转串口模块对插,用跳线将AT对应的引脚接VCC)这时候将转串口模块接入电脑,打开超级终端或者串口调试助手便可以开始设置AT模式。
打开串口调试助手,测试AT指令,找到相应串口号后,注意两点,1、设置AT模式的波特率为38400 2、输入指令后加上回车后换行,发送后返回OK。(串口调试助手下载地址:http://www.arduino.cn/forum.php?mod=viewthread&tid=1183 )
bt 下面来设置模块为从机模式,依次输入指令
AT+NAME=Bluetooth-Slave 蓝牙名称为Bluetooth-Slave
AT+ROLE=0 蓝牙模式为从模式
AT+CMODE=0 蓝牙连接模式为任意地址连接模式
AT+PSWD=1234 蓝牙配对密码为1234
AT+UART=9600,0,0 蓝牙通信串口波特率为9600,停止位1位,无校验位
AT+RMAAD 清空配对列表
相应返回OK表示设置成功。这个时候的蓝牙就可以与电脑主机或者手机配对通信。需要注意的是设置指令里的符号不要在中文状态下输入,否则不会返回相应指令。

用Arduino配置蓝牙AT指令

步骤一 给Arduino下载程序

#define AT 2
#define LED 13
void setup()
{
       pinMode(LED,OUTPUT);
       pinMode(AT,OUTPUT);
       digitalWrite(AT,HIGH);
       Serial.begin(38400);//这里应该和你的模块通信波特率一致
       delay(100);
       Serial.println("AT");
       delay(100);
       Serial.println("AT+NAME=OPENJUMPER-Bluetooth");//命名模块名
       delay(100);
       Serial.println("AT+ROLE=0");//设置主从模式:0从机,1主机
       delay(100);
       Serial.println("AT+PSWD=1234");//设置配对密码,如1234
       delay(100);
       Serial.println("AT+UART=9600,0,0");//设置波特率9600,停止位1,校验位无
       delay(100);
       Serial.println("AT+RMAAD");//清空配对列表
}
void loop()
{
       digitalWrite(LED, HIGH);
       delay(500);
       digitalWrite(LED, LOW);
       delay(500);
}  

步骤二 蓝牙与Ardino连线 RXD-TX TXD-RX VCC-VCC GND-GND AT-2 (当很多传感器扩展板带有蓝牙模块接口,则可以直接将蓝牙插在扩展板上接口,不用麻烦接线)。
步骤三 按下Arduino的复位按键,让程序开始运行一次,当发现板载L灯500ms闪烁时则表明已设置成功。

两个蓝牙模块配对连接教程:

简单说 一个蓝牙设置为主机,一个蓝牙设置为从机,设置对应密码波特率AT指令后,自动连接配对。

第一步:准备好做主机的蓝牙模块,用cp2102转串口模块连接蓝牙并进入AT设置模式(指示灯慢闪) 分别输入下面AT指令 (注意输入指令后加上回车后换行,发送后返回OK表示设置成功,如下指令是一条一条输入,切勿所有一起输入再点发送。设置完成后可以通过AT指令类似AT+NAME?这样的指令查询刚刚设置是否成功,具体参考HC05AT指令集)

AT+NAME=Bluetooth-Master 蓝牙主机名称为Bluetooth-Master
AT+ROLE=1 蓝牙模式为主模式
AT+CMODE=1 蓝牙连接模式为任意地址连接模式
AT+PSWD=1234 蓝牙配对密码为1234
AT+UART=9600,0,0 蓝牙通信串口波特率为9600,停止位1位,无校验位
AT+RMAAD 清空配对列表

第二步:准备好做从机的蓝牙模块用cp2102转串口模块连接蓝牙并进入AT设置模式(指示灯慢闪) 分别输入下面AT指令 (注意输入指令后加上回车后换行,发送后返回OK表示设置成功) (如果设置没有效果可以先恢复出厂设置AT+ORGL)
AT+NAME=Bluetooth-Slave 蓝牙名称为Bluetooth-Slave
AT+ROLE=0 蓝牙模式为从模式
AT+CMODE=1 蓝牙连接模式为任意地址连接模式
AT+PSWD=1234 蓝牙配对密码为1234
AT+UART=9600,0,0 蓝牙通信串口波特率为9600,停止位1位,无校验位
AT+RMAAD 清空配对列表

第三步:分别给主模块和从模块选择进入工作模式,并重新上电。两个模块会自动连接然后配对,这样后,状态灯会出现慢闪烁指示。

智能配网(Smartconfig)示例

方式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

TOUCH
5,AT+CWSTOPSMART     !!无论配网是否成功,都需要释放快连所占的内存,见图2

6,AT+CIPSTATUS      !!查询网络连接状态 

test

方式2:Airkiss

1,AT+CWMODE_DEF=1     !!配置WiFi模组工作模式为单STA模式,并把配置保存在flash

2,AT+CWAUTOCONN=1     !!使能上电自动连接AP

3,AT+CWSTARTSMART=3    !!支持ESP-Touch和Airkiss智能配网

4,打开微信,关注微信公众号“安信可科技”,点击wifi配置,点击开始配置,输入密码,点击连接, 见图

WECHAT
5,AT+CWSTOPSMART     !!无论配网是否成功,都需要释放快连所占的内存

6,AT+CIPSTATUS       !!查询网络连接状态

参考

ESP8266_AT命令
HC05蓝牙模块_AT命令
配网_AT命令

联系方式

Any question connect me.
ccwanyuan2014@163.com
提issue

转载请注明

转载自chanjeff123.github.io