ESP8266 AT指令集学习笔记

玩转ESP8266——AT指令集

ESP8266WiFi模块AT指令入门指南

ESP8266之AT指令

ESP8266详细步骤及指令(客户端模式、服务器模式)

ESP8266教程——采用AT指令

1.AT指令集简介:

AT指令集是从终端设备数据终端设备向终端适配器或数据电路终端设备发送的。

其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。

每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。

  AT指令是一种不需要具体编程的开发方式,直接使用电脑给模块发送相应的指令就可以实现对它的控制。一般买来的模块都有烧录好的固件,假如没有可以自己烧录一个。

ESP8266封装方式多样,天线可支持板载PCB天线,IPEX接口和邮票孔接口三种形式;

ESP8266可广泛应用于智能电网、智能交通、智能家具、手持设备、工业控制等领域。

最大的优点是它是一款非常廉价的WIFI串口解决方案模块,适合种学生开发者。

2.AT指令调试(初步开发)

  ESP8266本身就是一个mcu,所以它可以有两种用途:

  1.当成一个普通的wifi模块,用官方集成的AT指令集进行开发;

  2.当成一个集成了wifi功能的mcu,用安信可或其他平台提供的sdk进行深度开发。

  先连接好电路,注意将GPIO0脚悬空,用串口调试助手发送AT指令,默认波特率为115200,设置好之后才可以进行正常通讯。

3.常用的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命令

  1、基础AT指令

  1. AT:测试AT启动,返回OK

  2. AT+RST:重启模块,返回OK

  3. AT+GMR:查看版本信息,返回 OK ,为8位版本号

  2、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。

  3、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指令开发还需要一定的单片机基础,对此我就不多赘述了。

 

4.ESP8266使用AT指令开发示例

  1. 智能配网(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

  

esp8266 at指令集详解

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

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

esp8266 at指令集详解

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

esp8266 at指令集详解

 

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

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

esp8266 at指令集详解

 

  2. 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)

  3.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

  

esp8266 at指令集详解

  5,AT+CIPMODE=1                  !!方式二:使用透传模式发送数据

  6,AT+CIPSEND                   !!发送数据(Data:Test2),见上图1:

  7,发送:+++                   !!退出透传发送三个连续的+++,不要勾选新行(\r\n),见下图:

esp8266 at指令集详解

  8,退出成功,即可发送AT指令

  

esp8266 at指令集详解

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ESP8266是一个低成本、易于使用的Wi-Fi模块,具有强大的处理能力和丰富的通信接口。ESP8266AT指令集是一组与ESP8266通信模块进行交互的指令集合。 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,采用发布/订阅模式,广泛应用于物联网、传感器和嵌入式系统等领域。它非常适合低带宽和不稳定网络环境下的数据传输。 通过ESP8266AT指令集,我们可以使用ESP8266模块连接到MQTT服务器,并实现与服务器之间的通信。 首先,我们需要设置ESP8266模块的无线局域网连接参数,包括Wi-Fi网络名称和密码等。使用AT+CWMODE指令设置模块为STA模式,AT+CWJAP指令连接到指定的Wi-Fi网络。 接下来,我们需要通过AT+CIPSTART指令建立与MQTT服务器的TCP连接。在建立连接后,使用AT+CIPSEND指令发送MQTT协议格式的数据,包括连接请求、发布消息、订阅主题等。通过AT+CIPSEND指令发送的数据必须符合MQTT协议规定的格式。 如果需要接收来自MQTT服务器的数据,我们可以使用AT+CIPRECV指令接收服务器发送过来的消息。 除了基本的连接和通信功能,ESP8266AT指令集还支持设置心跳包、断开连接、保持持久连接等高级功能。例如,使用AT+CIPSTATUS指令可以查询当前连接状态,使用AT+CIPCLOSE指令可以断开与MQTT服务器的连接。 总之,通过ESP8266AT指令集,我们可以方便地与MQTT服务器进行通信,实现物联网和嵌入式系统中的数据传输和远程控制等功能。 ### 回答2: ESP8266是一款集成了Wi-Fi模块的芯片,AT指令集是用于控制ESP8266芯片的一套指令。而MQTT是一种轻量级的消息协议,适用于物联网设备之间的通信。 ESP8266芯片通过AT指令集来与外部设备通信。AT指令集包括一系列的指令,可以用于设置Wi-Fi连接、接收和发送数据等功能。而MQTT协议可以通过ESP8266芯片来实现设备与设备之间的通信。通过使用MQTT协议,设备可以发布和订阅主题,实现消息的传输。 mqtt指令是ESP8266芯片配合MQTT协议使用的一些指令。在使用ESP8266芯片进行MQTT通信时,可以使用相应的mqtt指令来连接MQTT服务器,发布消息和订阅消息。通过发送特定的mqtt指令,可以实现设备与设备之间的即时通信,以及与云平台的实时数据交换。 总而言之,ESP8266AT指令集与MQTT协议结合使用,可以帮助实现设备之间的通信。通过使用ESP8266芯片,可以轻松地实现MQTT协议的功能,从而实现物联网设备之间的数据传输和交互。 ### 回答3: ESP8266是一款流行的Wi-Fi模块,可以通过AT指令集控制。MQTT是一种轻量级的消息传输协议,适用于物联网应用。ESP8266AT指令集MQTT是通过ESP8266的AT指令集实现MQTT通信。 在使用ESP8266AT指令集MQTT时,首先需要将ESP8266模块连接到Wi-Fi网络。通过AT指令,我们可以设置ESP8266的Wi-Fi连接参数,包括SSID和密码。一旦连接成功,可以通过AT指令控制ESP8266与MQTT服务器进行通信。 在ESP8266AT指令集中,有一些特定的指令用于MQTT通信。例如,AT+CIPSTART指令可以用来建立与MQTT服务器之间的TCP连接。通过指定MQTT服务器的IP地址和端口号,ESP8266可以与服务器建立连接。 建立连接后,我们可以使用AT指令来订阅和发布MQTT主题。AT+CIPSEND指令可以用来发送MQTT消息,包括订阅和发布主题以及相应的消息内容。AT+CIPRECV指令则可以用来接收来自MQTT服务器的消息。 除了基本的MQTT通信功能,ESP8266AT指令集还提供了一些其他的功能。例如,可以使用AT指令来查询ESP8266模块的状态,包括Wi-Fi连接状态和MQTT连接状态。通过这些状态查询指令,我们可以及时了解到模块的工作状态,以便进行相应的处理。 总之,ESP8266AT指令集MQTT为开发者提供了非常方便的方式来控制ESP8266模块与MQTT服务器之间的通信。无论是在物联网应用还是其他相关的项目中,这个组合都可以帮助我们实现稳定可靠的无线通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值