ESP8266调试心得
- 1. 前言
- 2.遇到的问题
- 2.1 ESP8266模块建立TCP连接时候报错
- 2.2 指令异常问题
- 3. 更新ESP8266固件
- 3. ESP8266的部分AT指令
- 3. 连接步骤
- 3.1 模块与电脑连接
- 3.2.1 电脑上的设置
- 3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤
- 3.2 模块与模块连接
- 3.2.1ESP8266模块作为服务器(TCP Server)的设置步骤
- 3.2.2ESP8266模块作为客户机(TCP Cilent)的设置步骤
- 3.3 模块与手机连接
- 3.3.1.1 手机上的设置(网络调试精灵)
- 3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤
1. 前言
最近准备用ESP8266模块做一个遥控挖掘机玩,此次新开一个专题记录软件、硬件、结构开发中其中遇到的一些问题并做出如下分享。
首先是ESP8266模块开发的资料:
百度网盘链接:https://pan.baidu.com/s/1JKbNXF8-ttCKH8vXTcpYaw?pwd=WSSG
提取码:WSSG
2.遇到的问题
2.1 ESP8266模块建立TCP连接时候报错
当ESP8266模块作为客户机建立TCP链接时候可能会出现以下几种情况的报错:1、ERROR UNLINK;2、Link typ ERROR;3、ERROR 0,CLOSE。出现这些诉报错有以下几种解决方式:
1、确认客户机IP与作为服务器设备的IP是否在同一网段,具体操作可以参考如下连接:
ESP8266 TCP ERROR CLOSED的部分解决办法汇总
2、连接电脑时候出现报错可能是被防火墙拦截,以下有两种解决方式,对于新手比较推荐第二种。
第一种方式为设置入站规则:
Windows系统下防火墙开启下设置入站规则
第二种方式为关闭电脑防火墙:
ESP8266无法连接电脑网络调试助手
3、该报错也有可能是固件问题导致,有些模块输入指令AT+CIPMUX=0,关闭多连接模式会引起建立TCP连接异常,本文将在第三章给出解决方案(给你的ESP8266安装新的固件)
2.2 指令异常问题
由于现在市场上有许多家做的ESP8266,比如泽杰、安信可、正点原子等,这里面可能存在固件不统一的情况,本人在调试过程中遇到两个问题:
1、建立TCP连接异常AT+CIPSTART=“TCP”,“xxx.xxx.xx.x”,xxxx
2、打开透传功能异常AT+CIPSEND
对于第一个问题可以将指令改为AT+CIPSTART=0,“TCP",“xxx.xxx.xx.x”,xxxx;第二个问题目前的解决办法只有更新固件,该方法将在第三章讲述
3. 更新ESP8266固件
1、本次实验使用如下所示模块
2、本次用到的固件如下
https://download.espressif.com/esp_at/firmware/ESP8266/ESP8266-IDF-AT_V2.2.1.0.zip
3、打开flash下载工具开始下载固件
4、ESP8266官方固件的下载口与调试口不是复用关系具体如下
对应关系模块的D7,D8脚。
3. ESP8266的部分AT指令
基础指令 基础指令 基础指令
指令 | 描述 |
---|---|
AT | 测试AT启动 |
AT+RST | 重启模块 |
AT+GMR | 查看版本信息 |
AT+GSLP | 进入Deep-sleep模式 |
ATE | 关闭或开启回显功能 |
AT+RESTORE | 恢复出厂设置 |
T C P / I P 的 A T 指令 TCP/IP的AT指令 TCP/IP的AT指令
指令 | 描述 |
---|---|
AT+CIPV6 | 启用/禁用IPv6网络 |
AT+CWMODE | 选择 WIFI 应用模式 |
AT+CWJAP | 加入 AP |
AT+CWLAP | 列出当前可用 AP |
AT+CWQAP | 退出与 AP 的连接 |
AT+CWSAP | 设置 AP 模式下的参数 |
AT+CWLIF | 查看已接入设备的 IP |
AT+CWDHCP | 设置 DHCP 开关 |
AT+CWAUTOCONN | 设置 STA 开机自动连接到 wifi |
AT+CIPSTAMAC | 设置 STA 的 MAC 地址 |
AT+CIPAPMAC | 设置 AP 的 MAC 地址 |
AT+CIPSTA | 设置 STA 的 IP 地址 |
AT+CIPAP | 设置 AP 的 IP 地址 |
AT+CWSMARTSTART | 启动智能连接 |
AT+CWSMARTSTOP | 停止智能连接 |
指令 | 描述 |
---|---|
AT+ CIPSTATUS | 获得连接状态 |
AT+CIPSTART | 建立 TCP 连接或注册 UDP 端口号 |
AT+CIPSEND | 发送数据 |
AT+CIPCLOSE | 关闭 TCP 或 UDP |
AT+CIFSR | 获取本地 IP 地址 |
AT+CIPMUX | 启动多连接 |
AT+CIPSERVER | 配置为服务器 |
AT+CIPMODE | 设置模块传输模式 |
AT+CIPSTO | 设置服务器超时时间 |
AT+CIUPDATE | 网络升级固件 |
AT+PING PING | 命令 |
3. 连接步骤
3.1 模块与电脑连接
3.2.1 电脑上的设置
此处打开之后软件会自动设置本地IP,之后在设置客户机的时候注意客户机IP的前三位要与本地IP一致说明连接成功(xxx.xxx.xx.x),并且要注意打开监听功能,不然建立TCP链接时候会失败
3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤
顺序 | 指令 | 描述 |
---|---|---|
1 | AT | 测试AT启动 |
2 | AT+CWMODE=1 | 设置ESP8266模块为Station模式(客户机) |
3 | AT+RST | 重启模块 |
4(可跳过) | AT+CWMODE? | 查询模块模式(验证是否模式已经变更) |
5(可跳过) | AT+CWLAP | 查询附近网络 |
6 | AT+CWJAP=“你的路由器wifi名称”,“你的路由器wifi密码” | 连接WIFI |
7(可跳过) | AT+CIFSR | 查询ESP模块8266的地址(验证是否连接上wifi) |
普通模式 | 透传模式 | 普通模式 |
8 | AT+CIPMUX=1 | 打开多连接模式 |
9 | AT+CIPSTART=“TCP”,“你电脑的地址”,电脑设置的端口号 | 建立TCP链接 |
9’ | AT+CIPSTART=0,“TCP”,“你电脑的地址”,电脑设置的端口号 | 有的模块AT指令不太一样多试试 |
10 | AT+CIPSEND=0,5 | 可以发送5字节信息 |
透传模式 | 透传模式 | 透传模式 |
8 | AT+CIPMUX=0 | 关闭多连接模式 |
9 | AT+CIPSTART=“TCP”,“你电脑的地址”,电脑设置的端口号 | 建立TCP链接 |
9’ | AT+CIPSTART=0,“TCP”,“你电脑的地址”,电脑设置的端口号 | 有的模块AT指令不太一样多试试 |
10 | AT+CIPMODE=1 | 打开透传模式 |
11 | AT+CIPSEND | 开始透传发消息,只能客户机发服务器 |
12 | +++(不能有回车换行符) | 退出透传发消息,但是还在透传模式 |
3.2 模块与模块连接
3.2.1ESP8266模块作为服务器(TCP Server)的设置步骤
顺序 | 指令 | 描述 |
---|---|---|
1 | AT | 测试AT启动 |
2 | AT+CWMODE=2 | 设置ESP8266模块为AP模式(作为服务器) |
3 | AT+RST | 重启模块 |
4 | AT+CWSAP=“ESP8266”,“123456789”,6,4 | 设置作为服务器的名称和密码 |
5 | AT+CIPSERVER=1,8080 | 设置自己的端口号 |
6 | AT+CIFSR | 查询自己的地址 |
3.2.2ESP8266模块作为客户机(TCP Cilent)的设置步骤
顺序 | 指令 | 描述 |
---|---|---|
1 | AT | 测试AT启动 |
2 | AT+CWMODE=1 | 设置ESP8266模块为Station模式(客户机) |
3 | AT+RST | 重启模块 |
4(可跳过) | AT+CWMODE? | 查询模块模式(验证是否模式已经变更) |
5(可跳过) | AT+CWLAP | 查询附近网络 |
6 | AT+CWJAP=“ESP8266”,“123456789” | 连接WIFI |
7(可跳过) | AT+CIFSR | 查询ESP模块8266的地址(验证是否连接上wifi) |
普通模式 | 透传模式 | 普通模式 |
8 | AT+CIPMUX=1 | 打开多连接模式 |
9 | AT+CIPSTART=“TCP”,“ESP01S”,“123456789” | 建立TCP链接 |
9’ | AT+CIPSTART=0,“TCP”,“ESP01S”,“123456789” | 有的模块AT指令不太一样多试试 |
10 | AT+CIPSEND=0,5 | 可以发送5字节信息 |
透传模式 | 透传模式 | 透传模式 |
8 | AT+CIPMUX=0 | 关闭多连接模式 |
9 | AT+CIPSTART=“TCP”,“ESP01S”,“123456789” | 建立TCP链接 |
9’ | AT+CIPSTART=0,“TCP”,“ESP01S”,“123456789” | 有的模块AT指令不太一样多试试 |
10 | AT+CIPMODE=1 | 打开透传模式 |
11 | AT+CIPSEND | 开始透传发消息,只能客户机发服务器 |
12 | +++(不能有回车换行符) | 退出透传发消息,但是还在透传模式 |
3.3 模块与手机连接
3.3.1.1 手机上的设置(网络调试精灵)
1、打开TCP服务端
2、点“+”好设置手机的TCP服务
3、设置服务器名称(随意)、主机(前三位和你路由器一致)、端口号,保存设置
4、回到上一步可以看见已完成TCP服务器建立
5、此时点击进入开始侦听
3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤
顺序 | 指令 | 描述 |
---|---|---|
1 | AT | 测试AT启动 |
2 | AT+CWMODE=1 | 设置ESP8266模块为Station模式(客户机) |
3 | AT+RST | 重启模块 |
4(可跳过) | AT+CWMODE? | 查询模块模式(验证是否模式已经变更) |
5(可跳过) | AT+CWLAP | 查询附近网络 |
6 | AT+CWJAP=“你的路由器wifi名称”,“你的路由器wifi密码” | 连接WIFI |
7(可跳过) | AT+CIFSR | 查询ESP模块8266的地址(验证是否连接上wifi) |
普通模式 | 透传模式 | 普通模式 |
8 | AT+CIPMUX=1 | 打开多连接模式 |
9 | AT+CIPSTART=“TCP”,“手机的地址”,手机设置的端口号 | 建立TCP链接 |
9’ | AT+CIPSTART=0,“TCP”,手机的地址",手机设置的端口号 | 有的模块AT指令不太一样多试试 |
10 | AT+CIPSEND=0,5 | 可以发送5字节信息 |
透传模式 | 透传模式 | 透传模式 |
8 | AT+CIPMUX=0 | 关闭多连接模式 |
9 | AT+CIPSTART=“TCP”,“手机的地址”,手机设置的端口号 | 建立TCP链接 |
9’ | AT+CIPSTART=0,“TCP”,“手机的地址”,手机设置的端口号 | 有的模块AT指令不太一样多试试 |
10 | AT+CIPMODE=1 | 打开透传模式 |
11 | AT+CIPSEND | 开始透传发消息,只能客户机发服务器 |
12 | +++(不能有回车换行符) | 退出透传发消息,但是还在透传模式 |