遥控挖掘机之ESP8266调试心得(1)

news2025/1/12 18:28:10

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/IPAT指令

指令描述
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)的设置步骤

顺序指令描述
1AT测试AT启动
2AT+CWMODE=1设置ESP8266模块为Station模式(客户机)
3AT+RST重启模块
4(可跳过)AT+CWMODE?查询模块模式(验证是否模式已经变更)
5(可跳过)AT+CWLAP查询附近网络
6AT+CWJAP=“你的路由器wifi名称”,“你的路由器wifi密码”连接WIFI
7(可跳过)AT+CIFSR查询ESP模块8266的地址(验证是否连接上wifi)
普通模式透传模式普通模式
8AT+CIPMUX=1打开多连接模式
9AT+CIPSTART=“TCP”,“你电脑的地址”,电脑设置的端口号建立TCP链接
9’AT+CIPSTART=0,“TCP”,“你电脑的地址”,电脑设置的端口号有的模块AT指令不太一样多试试
10AT+CIPSEND=0,5可以发送5字节信息
透传模式透传模式透传模式
8AT+CIPMUX=0关闭多连接模式
9AT+CIPSTART=“TCP”,“你电脑的地址”,电脑设置的端口号建立TCP链接
9’AT+CIPSTART=0,“TCP”,“你电脑的地址”,电脑设置的端口号有的模块AT指令不太一样多试试
10AT+CIPMODE=1打开透传模式
11AT+CIPSEND开始透传发消息,只能客户机发服务器
12+++(不能有回车换行符)退出透传发消息,但是还在透传模式

3.2 模块与模块连接

3.2.1ESP8266模块作为服务器(TCP Server)的设置步骤

顺序指令描述
1AT测试AT启动
2AT+CWMODE=2设置ESP8266模块为AP模式(作为服务器)
3AT+RST重启模块
4AT+CWSAP=“ESP8266”,“123456789”,6,4设置作为服务器的名称和密码
5AT+CIPSERVER=1,8080设置自己的端口号
6AT+CIFSR查询自己的地址

3.2.2ESP8266模块作为客户机(TCP Cilent)的设置步骤

顺序指令描述
1AT测试AT启动
2AT+CWMODE=1设置ESP8266模块为Station模式(客户机)
3AT+RST重启模块
4(可跳过)AT+CWMODE?查询模块模式(验证是否模式已经变更)
5(可跳过)AT+CWLAP查询附近网络
6AT+CWJAP=“ESP8266”,“123456789”连接WIFI
7(可跳过)AT+CIFSR查询ESP模块8266的地址(验证是否连接上wifi)
普通模式透传模式普通模式
8AT+CIPMUX=1打开多连接模式
9AT+CIPSTART=“TCP”,“ESP01S”,“123456789”建立TCP链接
9’AT+CIPSTART=0,“TCP”,“ESP01S”,“123456789”有的模块AT指令不太一样多试试
10AT+CIPSEND=0,5可以发送5字节信息
透传模式透传模式透传模式
8AT+CIPMUX=0关闭多连接模式
9AT+CIPSTART=“TCP”,“ESP01S”,“123456789”建立TCP链接
9’AT+CIPSTART=0,“TCP”,“ESP01S”,“123456789”有的模块AT指令不太一样多试试
10AT+CIPMODE=1打开透传模式
11AT+CIPSEND开始透传发消息,只能客户机发服务器
12+++(不能有回车换行符)退出透传发消息,但是还在透传模式

3.3 模块与手机连接

3.3.1.1 手机上的设置(网络调试精灵)

1、打开TCP服务端
在这里插入图片描述
2、点“+”好设置手机的TCP服务
在这里插入图片描述
3、设置服务器名称(随意)、主机(前三位和你路由器一致)、端口号,保存设置
在这里插入图片描述
4、回到上一步可以看见已完成TCP服务器建立
在这里插入图片描述
5、此时点击进入开始侦听
在这里插入图片描述

3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤

顺序指令描述
1AT测试AT启动
2AT+CWMODE=1设置ESP8266模块为Station模式(客户机)
3AT+RST重启模块
4(可跳过)AT+CWMODE?查询模块模式(验证是否模式已经变更)
5(可跳过)AT+CWLAP查询附近网络
6AT+CWJAP=“你的路由器wifi名称”,“你的路由器wifi密码”连接WIFI
7(可跳过)AT+CIFSR查询ESP模块8266的地址(验证是否连接上wifi)
普通模式透传模式普通模式
8AT+CIPMUX=1打开多连接模式
9AT+CIPSTART=“TCP”,“手机的地址”,手机设置的端口号建立TCP链接
9’AT+CIPSTART=0,“TCP”,手机的地址",手机设置的端口号有的模块AT指令不太一样多试试
10AT+CIPSEND=0,5可以发送5字节信息
透传模式透传模式透传模式
8AT+CIPMUX=0关闭多连接模式
9AT+CIPSTART=“TCP”,“手机的地址”,手机设置的端口号建立TCP链接
9’AT+CIPSTART=0,“TCP”,“手机的地址”,手机设置的端口号有的模块AT指令不太一样多试试
10AT+CIPMODE=1打开透传模式
11AT+CIPSEND开始透传发消息,只能客户机发服务器
12+++(不能有回车换行符)退出透传发消息,但是还在透传模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1659487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云计算:数据时代的魔法城堡

云端初探:定义与起源 想象一下,有一个巨大的、无形的仓库,里面存放着全世界的信息与计算能力,你可以随时随地按需提取,无需关心它的物理位置或维护细节。这就是云计算——一种基于互联网的计算方式,它通过…

Hive UDTF之explode函数、Lateral View侧视图

Hive UDTF之explode函数 Hive 中的 explode() 函数是一种用于处理数组类型数据的 User-Defined Table-Generating Function (UDTF)。它将数组拆分成多行,每个数组元素对应生成的一行数据。这在处理嵌套数据结构时非常有用,例如处理 JSON 格式的数据。 …

CentOS 自建gitlab仓库:安装相关工具

所需环境 Node 安装项目依赖、项目打包运行Nginx 前端项目部署(正向代理、反向代理、负载均衡等)Git 自动化部署时 拉取代码使用GitLab 代码仓库GitLab-Runner GitLab的CI/CD执行器 一、安装Node 检测是否已安装 常用node -v 命令检测。 如果已安装&a…

web前端学习笔记9

9. HTML5新增元素及属性 9.1 HTML5新增结构元素 HTML5引入了几个新的结构元素,极大地改善了网页的组织和结构方式。以下是HTML5中的一些关键新结构元素: 标签说明<header>页面或页面中某一个区块的页眉,通常是一些引导和导航信息<nav>可以作为页面导航的链接组&…

C# WinForm —— 12 ListBox绑定数据

ListBox加载大量数据时&#xff0c;避免窗体闪烁的方法&#xff1a; 在加载语句的前后分别加上 BeginUpdate()方法 和 EndUpdate()方法 指定一个集合为绑定的数据源 1. 首先&#xff0c;右键项目&#xff0c;添加类 2. 在新建的类文件中添加属性值信息 3. 构建初始化的对象…

算法设计课第五周(贪心法实现活动选择问题)

目录 一、【实验目的】 二、【实验内容】 三、实验源代码 一、【实验目的】 &#xff08;1&#xff09;熟悉贪心法的设计思想 &#xff08;2&#xff09;理解贪心法的最优解与正确性证明之间的关系 &#xff08;3&#xff09;比较活动选择的各种“贪心”策略&#xff0c;…

CSP-j 2022csp-j完善程序易错题

易错题 答案23&#xff1a; 对 解析23&#xff1a; 函数 g 就是把函数 f 改成递推的形式 答案24&#xff1a; 对 解析23&#xff1a; 无。 答案25&#xff1a; C 解析25&#xff1a; m n ( m - 1 ) * ( 1 2 3 4 ... n ) O(mn^2) 答案26&#xff1a; C 解析26&#x…

软件设计师笔记(二)-零碎要点

本文内容来自笔者学习zst 留下的笔记&#xff0c;都是零碎的要点&#xff0c;查缺补漏&#xff0c;若有错误请大家提出&#xff0c;希望大家都能通过&#xff0c;记得加上免费的关注&#xff01;谢谢&#xff01; 目录 1. 算法 [广度和深度优先] 2. 遍历方式 3. 四大算法 …

RuoYi-Vue-Plus (Echarts 图表)

一、echarts 图表介绍和使用 官网地址:目前echarts以及贡献给Apache Apache EChartshttps://echarts.apache.org/zh/index.htmlecharts配置项手册 Documentation - Apache EChartshttps://echarts.apache.org/z

第19讲:Ceph集群CrushMap规则定制与调优:从基础到高级应用

文章目录 1.CrushMap规则拓扑结构1.1.集群默认的CrushMap规则拓补图1.2.自定义的CrushMap规则拓补图 2.定制CrushMap规则的方法以及注意事项3.通过二进制文件编写一套CrushMap规则3.1.将系统默认的CrushMap规则导出3.2.根据需求编写CrushMap规则3.3.将编写好的规则导入到集群中…

简单粗暴的翻译英文pdf

背景&#xff1a;看书的时候经常遇到英文pdf&#xff0c;没有合适的翻译软件可以快速翻译全书。这里提供一个解决方案。 Step 1 打开英文pdfCTRLA全选文字CTRLC复制打开记事本CTRLV复制保存为data.txt Step 2 写一个C脚本 // ToolPdf2Html.cpp : 此文件包含 "main&quo…

AJAX家政系统源码部署/售后更新/搭建/上线维护

基于FastAdmin和原生微信小程序开发的一款同城预约、上门服务、到店核销家政系统&#xff0c;用户端、服务端(高级授权)、门店端(高级授权)各端相互依赖又相互独立&#xff0c;支持选择项目、选择服务人员、选择门店多种下单方式&#xff0c;支持上门服务和到店核销两种服务方式…

如何安装ElasticSearch及相关件

一、简介 ElasticSearch是什么&#xff1f; elasticsearch简写es&#xff0c;es是一个高扩展、开源的全文检索和分析引擎&#xff0c;它可以准实时地快速存储、搜索、分析海量的数据。 ElasticSearch 插件 elasticsearch-head是一款专门针对于elasticsearch的客户端工具&am…

Gitee 码云与Git 交互

优质博文&#xff1a;IT-BLOG-CN 一、进入码云官方网站&#xff0c;注册用户 码云(Gitee.com)是一个类似于GitHub的在线代码托管平台。 码云提供了包括版本控制、代码托管、协作开发和代码分享等功能&#xff0c;基于Git开发&#xff0c;支持代码在线查看、历史版本查看、Fo…

什么是分库分表?代表性框架有哪些?

在互联网系统开发过程中&#xff0c;所谓的分库分表并不是一个新概念。或者说&#xff0c;对于很多开发人员而言&#xff0c;说起分库分表&#xff0c;大家都或多或少有所了解&#xff0c;也都知道数据量大了就需要进行分库分表。但是究竟如何实现分库分表呢&#xff1f; 要想…

去哪个网站找视频素材?哪里有视频素材不侵权?

在这个视觉内容日益丰富的时代&#xff0c;掌握优质的视频素材资源成了每位创作者的必备技能。高清、4K视频素材在制作中扮演着至关重要的角色&#xff0c;它们不仅提升了视觉效果&#xff0c;更增强了观众的沉浸感。下面将为您介绍几个全球知名的视频素材网站。 1. 蛙学府 提…

企业内外网隔离后的文件传输解决方案

一、企业为什么要进行内外网隔离 在当今信息化快速发展的时代&#xff0c;企业内部网络的构建和管理显得尤为重要。为了更好地保护企业信息安全和提高工作效率&#xff0c;许多企业选择将网络划分为内网和外网。那么&#xff0c;企业划分内外网的作用具体体现在哪些方面呢&…

从古代故事中领悟高情商回话

页面 页面代码 <% layout(/layouts/default.html, {title: 故事管理, libs: [dataGrid]}){ %> <div class"main-content"><div class"box box-main"><div class"box-header"><div class"box-title">&l…

【Django项目】 通过AI实现视频转文字

使用Django构建一个视频—>文字 转换器&#xff1a; 输入视频地址&#xff0c;通过OpenAI的接口分析视频&#xff0c;返回视频内容的文字。 视频 代码 运行此程序&#xff0c;需要OpenAI-key和设置Postgres数据库。 &#xff08;吐槽一下&#xff0c;作者把这些信息都直接写…

vue路由知识补充(updating···)

1路由守卫中的next() next()方法表示放行&#xff0c;如果不执行此方法路由不会跳转&#xff0c;此方法可以接收一个参数 字符串路径&#xff1a;如果传递一个字符串路径&#xff0c;那么路由会重定向到该路径。 next(/home); 路由对象&#xff1a;如果传递一个路由对象&…