! ESP8266 AT 指令 使 用示例例 版本 1.3 版权 2017
关于本 手册 本 文档提供 ESP8266_NONOS_SDK 的 AT 指令使 用示例例 文档结构如下 : 章 标题 内容 第 1 章 概述 介绍 AT 固件及使 用配置 第 2 章 单连接 TCP Client 示例例 ESP8266 作为 TCP Client 建 立单连接通信 第 3 章 UDP 传输 示例例如何建 立 UDP 通信 第 4 章 透传 示例例如何进 行行透传通信 第 5 章 多连接 TCP Server 示例例 ESP8266 作为 TCP Server 通信 第 6 章 问题反馈 AT 指令相关问题的反馈途径与 方式 发布说明 日期版本发布说明 2017.08 V1.3 文档格式更更新 文档变更更通知 用户可通过乐鑫官 网订阅技术 文档变更更的电 子邮件通知 证书下载 用户可通过乐鑫官 网下载产品证书
目录 1. 概述... 1 2. 单连接 TCP Client... 2 3. UDP 传输... 4 3.1. 固定远端的 UDP 通信... 4 3.2. 远端可变的 UDP 通信... 6 4. 透传... 8 4.1. TCP Client 单连接透传... 8 4.2. UDP 透传... 10 5. 多连接 TCP Server... 12 6. 问题反馈... 14
1. 概述 1. 概述 本 文档提供 ESP8266_NONOS_SDK 的 AT 指令的 几种常 见使 用示例例, 更更多 AT 指令说明请参考 文档 ESP8266_AT_Instruction_Set 下载 ESP8266 AT Bin:http://www.espressif.com/en/support/download/at - 参考 README.md 进 行行烧录 PC 串串 口 工具, 用于向 ESP8266 发送 AT 指令 - 波特率设置为 115200 - AT 指令要求以新 行行 (CR LF) 结尾, 串串 口 工具应 支持 新 行行模式 AT 指令必须为 大写英 文字 母 Espressif! 1/!
2. 单连接 TCP Client 2. 单连接 TCP Client 1. 配置 WiFi 模式 AT+CWMODE=3 // softap+station mode 2. 连接路路由器器 AT+CWJAP="SSID","password" // SSID and password of router 3. 查询 ESP8266 设备的 IP 地址 AT+CIFSR +CIFSR:APIP,"192.168.4.1" +CIFSR:APMAC,"1a:fe:34:a5:8d:c6" +CIFSR:STAIP,"192.168.3.133" +CIFSR:STAMAC,"18:fe:34:a5:8d:c6" 4. PC 与 ESP8266 设备连接同 一路路由器器, 在 PC 端使 用 网络调试 工具, 建 立 一个 TCP 服务器器 - 假设,PC 创建的服务器器 IP 地址为 192.168.3.116, 端 口为 8080 5. ESP8266 设备作为 TCP client 连接到上述服务器器 AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port 6. ESP8266 设备向服务器器发送数据 AT+CIPSEND=4 >test // set date length which will be sent, such as 4 bytes // enter the data, no CR Recv 4 bytes Espressif! 2/!
2. 单连接 TCP Client SEND 发送数据时, 如果输 入的字节数超过了了设置 长度 (n): - 系统将提示 busy, 并发送数据的前 n 个字节, 发送完成后响应 SEND - 超出 长度的部分数据被认为是 无效数据, 不不被接受 7. 当 ESP8266 设备接收到服务器器发来的数据, 将提示如下信息 : +IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx Espressif! 3/!
3. UDP 传输 3. UDP 传输 UDP 传输不不区分 server 或者 client, 由指令 AT+CIPSTART 建 立传输 1. 配置 WiFi 模式 AT+CWMODE=3 // softap+station mode 2. 连接路路由器器 AT+CWJAP="SSID","password" // SSID and password of router 3. 查询 ESP8266 设备的 IP 地址 AT+CIFSR +CIFSR:APIP,"192.168.4.1" +CIFSR:APMAC,"1a:fe:34:a5:8d:c6" +CIFSR:STAIP,"192.168.101.133" +CIFSR:STAMAC,"18:fe:34:a5:8d:c6" 4. PC 与 ESP8266 设备连接同 一路路由器器, 在 PC 端使 用 网络调试 工具, 建 立 一个 UDP 传输 - 假设,PC 创建的 UDP 自身 IP 地址为 192.168.101.116, 端 口为 8080 5. 后 文将基于前述步骤, 介绍两种 UDP 通信的示例例 3.1. 固定远端的 UDP 通信 UDP 通信的远端固定, 由 AT+CIPSTART 指令的最后 一个参数设置为 0 决定 系统将分配 一个连接号给这个固定连接,UDP 通信双 方不不会被其他设备替代 1. 使能多连接 AT+CIPMUX=1 Espressif! 4/!
3. UDP 传输 2. 创建 UDP 传输 例例如, 分配连接号为 4, 指令如下 : AT+CIPSTART=4,"UDP","192.168.101.110",8080,1112,0 4,CONNNECT 说明 : 示例例指令中的参数说明如下 : "192.168.101.110", 8080 为 UDP 传输的远端 IP 和端 口, 即前 文步骤 4 中 PC 建 立的 UDP 端 口 ; 1112 为 ESP8266 本地的 UDP 端 口, 用户可 自 行行设置, 如不不设置则为随机值 ; 0 表示当前 UDP 传输建 立后,UDP 远端不不会被其他设备更更改 ; 即使有其他设备通过 UDP 协议发数据到 ESP8266 UDP 端 口 1112,ESP8266 的第 4 号 UDP 传输的远端也不不会被替换, 使 用指令 AT+CIPSEND=4, X 发送数据, 仍然是当前固定的 PC 端收到 3. 发送数据 AT+CIPSEND=4,7 >UDPtest // Send 7 bytes to transmission NO.4 // enter the data, no CR Recv 7 bytes SEND 发送数据时, 如果输 入的字节数超过了了设置 长度 (n): - 系统将提示 busy, 并发送数据的前 n 个字节, 发送完成后响应 SEND - 超出 长度的部分数据被认为是 无效数据, 不不被接受 4. 接收数据 当 ESP8266 设备接收到服务器器发来的数据, 将提示如下信息 : +IPD,4,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx 5. 断开 UDP 传输 AT+CIPCLOSE=4 4,CLOSED Espressif! 5/!
3. UDP 传输 3.2. 远端可变的 UDP 通信 当使 用 AT+CIPSTART 指令创建 UDP 通信, 将最后 一个参数设置为 2 时,UDP 通信的远端可改变 1. 创建 UDP 传输 AT+CIPSTART="UDP","192.168.101.110",8080,1112,2 CONNNECT 说明 : 示例例指令中的参数说明如下 : "192.168.101.110", 8080 为 UDP 传输的远端 IP 和端 口, 即前 文 PC 建 立的 UDP 端 口 ; 1112 为 ESP8266 本地的 UDP 端 口, 用户可 自 行行设置, 如不不设置则为随机值 ; 2 表示当前 UDP 传输建 立后,UDP 传输远端仍然会更更改 ;UDP 传输远端会 自动更更改为最近 一个与 ESP8266 UDP 通信的远端 2. 发送数据 AT+CIPSEND=7 >UDPtest // Send 7 bytes // enter the data, no CR Recv 7 bytes SEND 发送数据时, 如果输 入的字节数超过了了设置 长度 (n): - 系统将提示 busy, 并发送数据的前 n 个字节, 发送完成后响应 SEND - 超出 长度的部分数据被认为是 无效数据, 不不被接受 3. 发送数据到其他指定远端 例例如, 发数据到 192.168.101.111, 端 口 1000 AT+CIPSEND=7,"192.168.101.111",1000 >UDPtest // Send 7 bytes // enter the data, no CR Recv 7 bytes SEND Espressif! 6/!
3. UDP 传输 4. 接收数据 当 ESP8266 设备接收到服务器器发来的数据, 将提示如下信息 : +IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx 5. 断开 UDP 传输 AT+CIPCLOSE CLOSED Espressif! 7/!
4. 透传 4. 透传 ESP8266 AT 默认仅在 TCP client 单连接或 UDP 传输模式时, 支持透传 4.1. TCP Client 单连接透传 以下为 ESP8266 作为 station 实现 TCP client 单连接透传的举例例,ESP8266 作为 softap 可同理理实现透传 1. 配置 WiFi 模式 AT+CWMODE=3 // softap+station mode 2. 连接路路由器器 AT+CWJAP="SSID","password" // SSID and password of router 3. 查询 ESP8266 设备的 IP 地址 AT+CIFSR +CIFSR:APIP,"192.168.4.1" +CIFSR:APMAC,"1a:fe:34:a5:8d:c6" +CIFSR:STAIP,"192.168.3.133" +CIFSR:STAMAC,"18:fe:34:a5:8d:c6" 4. PC 与 ESP8266 设备连接同 一路路由器器, 在 PC 端使 用 网络调试 工具, 建 立 一个 TCP 服务器器 - 假设,PC 创建的服务器器 IP 地址为 192.168.3.116, 端 口为 8080 5. ESP8266 设备作为 TCP client 连接到上述服务器器 AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port Espressif! 8/!
4. 透传 6. 使能透传模式 AT+CIPMODE=1 7. ESP8266 设备向服务器器发送数据 AT+CIPSEND > //From now on, data received from UART will be transmitted to server automatically. 发送数据时, 如果输 入的字节数超过了了设置 长度 (n): - 系统将提示 busy, 并发送数据的前 n 个字节, 发送完成后响应 SEND - 超出 长度的部分数据被认为是 无效数据, 不不被接受 8. 退出发送数据 : 在透传发送数据过程中, 若识别到单独的 一包数据 +++, 则退出透传发送 - 如果使 用键盘打字输 入 +++, 可能耗时太 长, 不不被认为是连续的三个 +, 建议使 用串串 口 工具 一次性发送 +++, 并请注意不不要携带空格或换 行行符等不不可 见字符 - 之后, 请 至少间隔 1 秒, 再发下 一条 AT 指令 +++ 退出透传发送数据, 回到正常 AT 指令模式 此时,TCP 连接仍然是保持的, 可以再发 AT+CIPSEND 指令, 重新开始透传 9. 退出透传模式 AT+CIPMODE=0 10. 断开 TCP 连接 AT+CIPCLOSE CLOSED Espressif! 9/!
4. 透传 4.2. UDP 透传 以下为 ESP8266 作为 softap 实现 UDP 透传的举例例,ESP8266 作为 station 可同理理实现透传 1. 配置 WiFi 模式 AT+CWMODE=3 // softap+station mode 2. PC 连 入 ESP8266 softap 3. 在 PC 端使 用 网络调试 工具, 建 立 一个 UDP 传输 - 假设,PC 创建的 UDP 自身 IP 地址为 192.168.4.2, 端 口为 1001 4. ESP8266 与 PC 对应端 口建 立固定对端的 UDP 传输 AT+CIPSTART="UDP","192.168.4.2",1001,2233,0 5. 使能透传模式 AT+CIPMODE=1 6. ESP8266 设备向服务器器发送数据 AT+CIPSEND > //From now on, data received from UART will be transmitted to server automatically. Espressif! 10/!
4. 透传 发送数据时, 如果输 入的字节数超过了了设置 长度 (n): - 系统将提示 busy, 并发送数据的前 n 个字节, 发送完成后响应 SEND - 超出 长度的部分数据被认为是 无效数据, 不不被接受 7. 退出发送数据 : 在透传发送数据过程中, 若识别到单独的 一包数据 +++, 则退出透传发送 - 如果使 用键盘打字输 入 +++, 可能耗时太 长, 不不被认为是连续的三个 +, 建议使 用串串 口 工具 一次性发送 +++, 并请注意不不要携带空格或换 行行符等不不可 见字符 - 之后, 请 至少间隔 1 秒, 再发下 一条 AT 指令 +++ 退出透传发送数据, 回到正常 AT 指令模式 此时,TCP 连接仍然是保持的, 可以再发 AT+CIPSEND 指令, 重新开始透传 8. 退出透传模式 AT+CIPMODE=0 9. 断开 TCP 连接 AT+CIPCLOSE CLOSED Espressif! 11/!
5. 多连接 TCP Server 5. 多连接 TCP Server ESP8266 AT 仅 支持建 立 一个 TCP 服务器器, 且必须使能多连接, 即允许连接多个 TCP client 以下为 ESP8266 作为 softap, 建 立 TCP 服务器器的举例例 ; 如果是 ESP8266 作为 station, 可在连接路路由后, 同理理建 立服务器器 1. 配置 WiFi 模式 AT+CWMODE=3 // softap+station mode 2. 使能多连接 AT+CIPMUX=1 3. 建 立 TCP server AT+CIPSERVER=1 // default port = 333 4. PC 连 入 ESP8266 softap 5. 在 PC 端使 用 网络调试 工具, 建 立 一个 TCP client, 连接 ESP8266 的 TCP server Espressif! 12/!
5. 多连接 TCP Server ESP8266 作为 TCP server 有超时机制, 如果连接建 立后, 一段时间内 无数据来往,ESP8266 TCP server 会将 TCP client 踢掉 因此, 请在 PC TCP client 连上 ESP8266 TCP server 后建 立 一个 2s 的循环数据发送, 用于保持连接 6. 发送数据 // ID number of connection is defaulted to be 0. AT+CIPSEND=0, 4 // send 4 bytes to connection NO.0 >test // enter the data, no CR Recv 4 bytes SEND 发送数据时, 如果输 入的字节数超过了了设置 长度 (n): - 系统将提示 busy, 并发送数据的前 n 个字节, 发送完成后响应 SEND - 超出 长度的部分数据被认为是 无效数据, 不不被接受 7. 接收数据 当 ESP8266 设备接收到服务器器发来的数据, 将提示如下信息 : +IPD,0,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx 8. 断开 UDP 传输 AT+CIPCLOSE=0 0,CLOSED Espressif! 13/!
6. 问题反馈 6. 问题反馈 如遇到 AT 使 用异常, 请发邮件 至乐鑫技术 支持, 附上如下信息 : AT 软件的版本号, 指令 AT+GMR 可获取版本信息 ; 硬件模块的信息, 例例如 :ESP-WROOM-02; 详细的测试步骤说明, 例例如 : AT+CWMODE_CUR=1 AT+GMR AT version:0.23.0.0(apr 24 2015 21:11:01) SDK version:1.0.1 compile time:apr 24 2015 21:19:31 AT+CIPSTAMAC_DEF="14:CF:11:22:33:05" 如能提供 log 打印信息, 请附上异常 log 信息, 例例如以下截屏 : ets Jan 8 2013,rst cause: 1, boot mode: (3,3) load 0x40100000, len 26336, room 16 tail 0 chksum 0xde load 0x3ffe8000, len 5672, room 8 tail 0 chksum 0x69 load 0x3ffe9630, len 8348, room 8 tail 4 chksum 0xcb csum 0xcb SDK version: 0.9.1 addr not ack when tx write cmd mode : sta(18: fe: 34: 97: d5: 7b) + softap(1a: fe: 34: 97: d5: 7b) Espressif! 14/!
免责申明和版权公告本 文中的信息, 包括供参考的 URL 地址, 如有变更更, 恕不不另 行行通知 文档 按现状 提供, 不不负任何担保责任, 包括对适销性 适 用于特定 用途或 非侵权性的任何担保, 和任何提案 规格或样品在他处提到的任何担保 本 文档不不负任何责任, 包括使 用本 文档内信息产 生的侵犯任何专利利权 行行为的责任 本 文档在此未以禁 止反 言或其他 方式授予任何知识产权使 用许可, 不不管是明示许可还是暗示许可 Wi-Fi 联盟成员标志归 Wi-Fi 联盟所有 蓝 牙标志是 Bluetooth SIG 的注册商标 乐鑫 IoT 团队 www.espressif.com 文中提到的所有商标名称 商标和注册商标均属其各 自所有者的财产, 特此声 明 版权归 2017 乐鑫所有 保留留所有权利利 Espressif! 15/!