前言

人生如逆旅,我亦是行人。


名词解释

缩写 意思
AT(automatic transmission) 自动变速器
WiFi 无线网
AP(Access Point) 无线访问接入点,无线路由器等类设备的统称
AP 模式 无线接入点模式
RST(TCP协议的 6 个标志之一) 表示重置连接、复位连接
TCP 传输控制协议
UDP 用户数据报协议
SSL 安全套接字协议
RF(Radio Frequency) 射频,射频电流
Serve 服务
DHCP 动态主机配置协议

ESP8266本身就是一个MCU(微型控制单元,可以进行编程),具有两种功能:
  • 做为一个普通的 WIFI 模块,连接 STM32单片机,通过使用官方集成的 AT 指令进行开发;
  • 作为一个集成了 WIFI 功能的 MCU(单片机),用平台提供的 SDK 进行深度的开发;

下面记录一下作为 WIFI 模块去使用所需要了解的 AT 指令。大致主要分为:

  • 基础 AT 指令
  • WIFI 功能 AT 指令
  • Top/IP 工具箱 AT 命令

一、基础 AT 命令


主要需要掌握的有:

命令 功能
AT 测试 AT 启动 ,返回 OK
AT + RST 重启模块,返回 OK
AT + GMR 查看版本信息,返回 OK,为8位版本号

基础 AT 命令很多,但大部分的使用都不是很多,大多使用的就一个 AT 命令,用于测试 AT 启动。


二、Wi-Fi AT 命令集


1)AT + CWMODE:查询/设置 Wi-Fi 模式

Wi-Fi 的三种模式:

模式 功能 <mode>
Station 模式(客户模式) ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制 1
SoftAP 模式 ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制 2
SoftAP+Station 模式 两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作 3
无 WIFI 模式 关闭 Wi-Fi RF 0

1、查询命令:查询 ESP 设备的 Wi-Fi 模式

命令:

AT+CWMODE?

响应:

+CWMODE:<mode>
OK

2、设置命令:设置 ESP 设备的 Wi-Fi 模式

命令:

AT+CWMODE=<mode>[,<auto_connect>]

响应:

OK

示例:

 printf("2. CWMODE\r\n");        //查询/设置 Wi-Fi 模式:设置WiFi模式为Station模式while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK"))

例1:Station 模式下 TCP serve

ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制
AT+CWMODE=1                                    设置模组为STA模式(串口助手)
AT+CWJAP                                   查询附近 WiFi(串口助手)
AT+CWJAP="WIFI名称(最好使用英文)","WIFI密码"  连接WiFi(串口助手)当外面需要再用引号将其括起来时,里面则需要在每个引号的前面加上 / 作为转义字符
AT+CIFSR                                   查看路由器分配给模组的IP地址,例如:192.168.43.103(串口助手)
AT+CIPMUX=1                                   打开多连接(串口助手)
AT+CIPSERVER=1,8080                           设置模块服务器端口(串口助手)打开网络调试助手进行设置:
请打开电脑连接路由器的WIFI热点,并且打开网络调试助手,在网络调试助手上输入连接模块的 IP和设置的端口。
路由器给模块分配的 IP 为 192.168.43.103,端口为自己设定的 8899(默认的为 333)(网络调试助手)AT+CIPSEND=0,11                               进入数据发送模式:11个字节

例2:SoftAP 模式下 TCP serve

ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制
AT+CWMODE=2                            开启 AP 模式(串口助手)
AT+CWJAP="ESP8266","密码",11,0      设置模块的 wifi 名和 wifi 密码(串口助手)当外面需要再用引号将其括起来时,里面则需要在每个引号的前面加上 / 作为转义字符
AT+CIPSERVER=1,8080                   设置模块服务器端口(串口助手)打开电脑去连接模块建立的AP热点
打开网络调试助手,输入连接模块的 ip 和设置的端口。AT+CIPSEND=0,11                             进入数据发送模式:11个字节

例3:SoftAP+Station 模式下 TCP serve

两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作

2)AT+CWDHCP:启用/禁用 DHCP

查询命令

命令:

AT+CWDHCP?

响应:

<state>:状态

设置命令

功能: 启用/禁用 DHCP

命令:

AT+CWDHCP=<operate>,<mode>
 printf("3. AT+CWDHCP\r\n");     //启用/禁用 DHCPwhile(ESP8266_SendCmd("AT+CWDHCP=1,1\r\n", "OK"))

响应:

OK

参数:

  • <operate>:0表示禁用;1表示启用;
  • <mode>:Bit0 表示 Station 的 DHCP;Bit1 表示 SoftAP 的 DHCP;
  • <state>:DHCP 的状态
    • Bit0:

      • 0:禁用 Station 的 DHCP
      • 1:启用 Station 的 DHCP
    • Bit1:
      • 0:禁用 SoftAP 的 DHCP
      • 1:启用 SoftAP 的 DHCP
    • Bit2(ESP32 only)
      • 0: 禁用 Ethernet 的 DHCP
      • 1: 启用 Ethernet 的 DHCP

三、TCP/IP AT 命令



1)AT+CIPSTATUS:查询 TCP/UDP/SSL 连接状态和信息

命令:

AT+CIPSTATUS

响应:

STATUS:<stat>
+CIPSTATUS:<link ID>,<"type">,<"remote IP">,<remote port>,<local port>,<tetype>
OK

参数:

2)AT+CIPSTART:建立 TCP 连接、UDP 传输或 SSL 连接

1、建立 TCP 连接

  • 命令:
// 单连接 (AT+CIPMUX=0):
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<keep alive>][,<"local IP">]// 多连接 (AT+CIPMUX=1):
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<keep alive>][,<"local IP">]
  • 响应:
CONNECTOK
  • 参数:

  • 连接OneNet 的 MQTT 的实际应用:

//连接上OneNet的 MQTT
#define ESP8266_ONENET_INFO     "AT+CIPSTART=\"TCP\",\"183.230.40.39\",6002\r\n"
  • 示例:
AT+CIPSTART="TCP","iot.espressif.cn",8000
AT+CIPSTART="TCP","192.168.101.110",1000
AT+CIPSTART="TCP","192.168.101.110",1000,,"192.168.101.100"
AT+CIPSTART="TCPv6","test-ipv6.com",80
AT+CIPSTART="TCPv6","fe80::860d:8eff:fe9d:cd90",1000,,"fe80::411c:1fdb:22a6:4d24"// esp-at 已通过 AT+CWJAP 获取到 IPv6 全局地址
AT+CIPSTART="TCPv6","2404:6800:4005:80b::2004",80,,"240e:3a1:2070:11c0:32ae:a4ff:fe80:65ac"

2、建立 UDP 传输

  • 命令:
// 单连接:(AT+CIPMUX=0)
AT+CIPSTART=<"type">,<"remote host">,<remote port>[,<local port>,<mode>,<"local IP">]// 多连接:(AT+CIPMUX=1)
AT+CIPSTART=<link ID>,<"type">,<"remote host">,<remote port>[,<local port>,<mode>,<"local IP">]
  • 响应:
CONNECTOK
  • 参数:

  • 示例:
// UDPv4 单播
AT+CIPSTART="UDP","192.168.101.110",1000,1002,2
AT+CIPSTART="UDP","192.168.101.110",1000,,,"192.168.101.100"// 基于 IPv6 网络的 UDP 单播
AT+CIPSTART="UDPv6","fe80::32ae:a4ff:fe80:65ac",1000,,,"fe80::5512:f37f:bb03:5d9b"// 基于 IPv6 网络的 UDP 多播
AT+CIPSTART="UDPv6","FF02::FC",1000,1002,0

3、建立 SSL 连接

  • 命令:
AT+CIPSTART=[<link ID>,]<"type">,<"remote host">,<remote port>[,<keep alive>,<"local IP">]
  • 响应:
OK
  • 参数:

  • 示例:
AT+CIPSTART="SSL","iot.espressif.cn",8443
AT+CIPSTART="SSL","192.168.101.110",1000,,"192.168.101.100"// esp-at 已通过 AT+CWJAP 获取到 IPv6 全局地址
AT+CIPSTART="SSLv6","240e:3a1:2070:11c0:6972:6f96:9147:d66d",1000,,"240e:3a1:2070:11c0:55ce:4e19:9649:b75"

ESP8266 初始化示例:

void ESP8266_Init(void)
{ESP8266_Clear();printf("1. AT\r\n");            //AT:测试AT启动while(ESP8266_SendCmd("AT\r\n", "OK"))HAL_Delay(500);printf("2. CWMODE\r\n");        //查询/设置 Wi-Fi 模式:设置WiFi模式为Station模式while(ESP8266_SendCmd("AT+CWMODE=1\r\n", "OK"))HAL_Delay(500);printf("3. AT+CWDHCP\r\n");     //启用/禁用 DHCPwhile(ESP8266_SendCmd("AT+CWDHCP=1,1\r\n", "OK"))HAL_Delay(500);printf("4. CWJAP\r\n");         //连接wifiwhile(ESP8266_SendCmd(ESP8266_WIFI_INFO, "GOT IP"))HAL_Delay(500);printf("5. CIPSTART\r\n");       //连接ONENET的TCP协议while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT"))HAL_Delay(500);printf("6. ESP8266 Init OK\r\n");}

<ESP8266>WIFI模块AT指令浅学相关推荐

  1. ESP8266 wifi模块连接上了热点之后 与服务器建立了tcp连接并进入了透传模式,如果关掉热点wifi模块的tcp连接没有切断,为什么

    ESP8266 wifi模块连接上了热点之后 与服务器建立了tcp连接并进入了透传模式,如果关掉热点wifi模块的tcp连接没有切断,为什么? 这个是很多开发者在第一次使用ESP8266模块是会出现的 ...

  2. ESP8266 WIFI 模块串口调试过程-实现通过互联网实现数据远程传输(结尾含驱动代码链接)

    一. ESP8266 WIFI模块调试(串口发送AT指令调试). ESP8266 WIFI模块的调试算是最复杂的了,虽然通信是简单的串口通信,但是要设置ESP8266连接服务器并稳定无误的将数据上传, ...

  3. STM32 驱动 ESP8266 WIFI 模块

    目录 1. 模块引脚 2. 测试模块是否正常 3. AT指令 ​4. ESP8266三种工作模式 5. 配置WIFI模块 6. STM32驱动WIFI模块 拿到一个野火的esp8266模块,驱一下试试 ...

  4. ESP8266 WIFI模块获取天气信息

    ESP8266 WIFI模块获取天气信息 基本步骤 获取天气时间 基本步骤 (1)确认模块在 STA 模式. 如果不在需要输入AT指令: AT+CWMODE=1 响应OK后输入: AT+RST或者重新 ...

  5. STM32之 ESP8266 WIFI 模块驱动代码-可以通过互联网实现数据远程传输(程序稳定,清晰明了非常容易移植到51单片机上)

    成品展示部分 :(ESP8266只是其中一个小部分而已) 实物图: 基于互联网的农业大棚环境监控系统设计 电路图: 农业大棚环境监控设计电路图(彩色)  调试部分:ESP8266 WIFI 模块串口调 ...

  6. STM32玩转物联网实战篇:2.ESP8266 WIFI模块TCP通信示例详解

    1.准备开发板 开发板功能区分布图 开发板俯视图 2.ESP8266简介     ESP8266 WIFI模块内置TCP/IP网络协议,模块支持三种网络模式,AP.STA和AP+STA模式,AP模式: ...

  7. ESP8266 WiFi模块如何联网?

    一.ESP8266系列模块是什么? ESP8266系列无线模块是一个经济高效的WIFI SOC模块,支持标准IEEE802.11b/g/n协议,内置完整的TCP/IP协议栈. 用户可以使用此系列模块向 ...

  8. 【STM32】ESP8266 WiFi模块实时上报温湿度及控制LED灯项目笔记

    ESP8266 WiFi模块实时上报温湿度及控制LED灯项目笔记 一.ESP8266模块 1.模块介绍 2.AT指令介绍 2.硬件连接 二.串口转发及调试 1.串口转发流程 2.串口转发程序实现 ST ...

  9. ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统

    ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统 1.关于ESP8266 安信可科技推出的ESP8266 WiFi 模块可以以极低的成本把传统单片机系统接入物联网.内置WiFi前端和 ...

最新文章

  1. 基础数据类型之集合和深浅copy,还有一些数据类型补充
  2. python银行系统-菲菲用python模拟银行系统
  3. maven项目的pom.xml 标签的含义
  4. Storage Options
  5. 5815. 扣分后的最大得分
  6. Codeforces数据结构(水题)小结
  7. 剑指Offer之和为S的连续正数序列
  8. OSPFv3中LSA详解(二)——Router LSA详解
  9. VTK(三)---在Linux系统上配置NDI Aurora磁导航API(用于手术导航系统的开发)
  10. ATTiny85 Arduino开发环境搭建及使用
  11. Excel中换行的问题
  12. vba根据列名获取列号 获取总列数 求和
  13. 非线性方程(组):一维非线性方程(一)二分法、不动点迭代、牛顿法 [MATLAB]...
  14. 扶蕾wlt~学习计划——MATLATB
  15. 2.命名空间实现机制
  16. 一文读懂闪电网络工作原理
  17. 远景html制造机模板,短视频拍摄脚本设计及文案方案模板
  18. ChatGPT 镜像网站,无需账号,无地区限制!
  19. 学习英语的历史性转折
  20. Unity---枚举类

热门文章

  1. ALEXA中国网站排名真相调查[内幕调查:出卖Alexa]
  2. docker问题系列汇总
  3. Elasticsearch ILM
  4. Elastic: ILM与rollover的关系
  5. 今日芯声 | 四大运营商之一居然不支持华为?假的!
  6. Pr:导出设置之多路复用器与常规
  7. 最凄美的爱情故事,让每对爱人更长久的文章!!
  8. 软件的安全性应从哪几个方面去测试?
  9. 基于51单片机的智能窗帘设计
  10. UG NX 12 草图曲线