<ESP8266>WIFI模块AT指令浅学
前言
人生如逆旅,我亦是行人。
名词解释
缩写 | 意思 |
---|---|
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
- Bit0:
三、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指令浅学相关推荐
- ESP8266 wifi模块连接上了热点之后 与服务器建立了tcp连接并进入了透传模式,如果关掉热点wifi模块的tcp连接没有切断,为什么
ESP8266 wifi模块连接上了热点之后 与服务器建立了tcp连接并进入了透传模式,如果关掉热点wifi模块的tcp连接没有切断,为什么? 这个是很多开发者在第一次使用ESP8266模块是会出现的 ...
- ESP8266 WIFI 模块串口调试过程-实现通过互联网实现数据远程传输(结尾含驱动代码链接)
一. ESP8266 WIFI模块调试(串口发送AT指令调试). ESP8266 WIFI模块的调试算是最复杂的了,虽然通信是简单的串口通信,但是要设置ESP8266连接服务器并稳定无误的将数据上传, ...
- STM32 驱动 ESP8266 WIFI 模块
目录 1. 模块引脚 2. 测试模块是否正常 3. AT指令 4. ESP8266三种工作模式 5. 配置WIFI模块 6. STM32驱动WIFI模块 拿到一个野火的esp8266模块,驱一下试试 ...
- ESP8266 WIFI模块获取天气信息
ESP8266 WIFI模块获取天气信息 基本步骤 获取天气时间 基本步骤 (1)确认模块在 STA 模式. 如果不在需要输入AT指令: AT+CWMODE=1 响应OK后输入: AT+RST或者重新 ...
- STM32之 ESP8266 WIFI 模块驱动代码-可以通过互联网实现数据远程传输(程序稳定,清晰明了非常容易移植到51单片机上)
成品展示部分 :(ESP8266只是其中一个小部分而已) 实物图: 基于互联网的农业大棚环境监控系统设计 电路图: 农业大棚环境监控设计电路图(彩色) 调试部分:ESP8266 WIFI 模块串口调 ...
- STM32玩转物联网实战篇:2.ESP8266 WIFI模块TCP通信示例详解
1.准备开发板 开发板功能区分布图 开发板俯视图 2.ESP8266简介 ESP8266 WIFI模块内置TCP/IP网络协议,模块支持三种网络模式,AP.STA和AP+STA模式,AP模式: ...
- ESP8266 WiFi模块如何联网?
一.ESP8266系列模块是什么? ESP8266系列无线模块是一个经济高效的WIFI SOC模块,支持标准IEEE802.11b/g/n协议,内置完整的TCP/IP协议栈. 用户可以使用此系列模块向 ...
- 【STM32】ESP8266 WiFi模块实时上报温湿度及控制LED灯项目笔记
ESP8266 WiFi模块实时上报温湿度及控制LED灯项目笔记 一.ESP8266模块 1.模块介绍 2.AT指令介绍 2.硬件连接 二.串口转发及调试 1.串口转发流程 2.串口转发程序实现 ST ...
- ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统
ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统 1.关于ESP8266 安信可科技推出的ESP8266 WiFi 模块可以以极低的成本把传统单片机系统接入物联网.内置WiFi前端和 ...
最新文章
- 基础数据类型之集合和深浅copy,还有一些数据类型补充
- python银行系统-菲菲用python模拟银行系统
- maven项目的pom.xml 标签的含义
- Storage Options
- 5815. 扣分后的最大得分
- Codeforces数据结构(水题)小结
- 剑指Offer之和为S的连续正数序列
- OSPFv3中LSA详解(二)——Router LSA详解
- VTK(三)---在Linux系统上配置NDI Aurora磁导航API(用于手术导航系统的开发)
- ATTiny85 Arduino开发环境搭建及使用
- Excel中换行的问题
- vba根据列名获取列号 获取总列数 求和
- 非线性方程(组):一维非线性方程(一)二分法、不动点迭代、牛顿法 [MATLAB]...
- 扶蕾wlt~学习计划——MATLATB
- 2.命名空间实现机制
- 一文读懂闪电网络工作原理
- 远景html制造机模板,短视频拍摄脚本设计及文案方案模板
- ChatGPT 镜像网站,无需账号,无地区限制!
- 学习英语的历史性转折
- Unity---枚举类