通过ESP8266连接WIFI,启动TCP,接受TCP客户端指令

  • **记录**
    • `2025年9月8日11:20:37`
    • `2025年9月9日08:45:34`
    • `2025年9月11日21:40:22`
  • **代码**

记录

2025年9月8日11:20:37

【测试情况】

代码可以跑到正确连接WIFI,也能获得IP,但是启动TCP服务失败了。

【当前问题】

  1. 启动TCP服务必现失败
  2. 为什么后期连AT都测试不了?

【怀疑待测】

  1. 怀疑当前ESP有问题,又买一个新的来做对比

2025年9月9日08:45:34

【我的发现】

  1. 接入3.3V的ESP8266 RST引脚,插入拔下会触发重启,但是重启有几率成功和失败,失败时会一直打印乱码。
  2. 如果要启动TCP服务,需要设置AT+CIPMUX=1

【测试情况】

  1. 插入拔下接入3.3V的ESP8266 RST引脚,触发重启,同时重启ARDUINO
  2. 等一段时间后,重启TCP服务有几率成功

【当前问题】

  1. 在ESP8266断电再上电情况下,看资料说临时设置会消失,但是为什么我断电上电后,还会打印WIFI CONNECTED?
  2. ESP8266重启所需要花费的时间是多久?
  3. 为什么启动TCP服务是有几率成功?这个和什么有关系?
  4. ESP8266重启后为什么有时候一直打印乱码?

【怀疑测试】

  1. 怀疑是RST使用不当,尝试使用代码重启,arudino在串口发送命令控制ESP8266的重启。

接线图

ESP-01 Arduino/Uno
EN ─────────── D4(GPIO输出)
RST ─────────── D5(GPIO输出)
GND ─────────── GND(共地)
TX ─────────── D3(软件串口RX)
RX ─────────── D2(软件串口TX)

代码

#include <SoftwareSerial.h>
SoftwareSerial espSerial(2, 3);  // D2=RX, D3=TX(连接ESP-01的TX/RX)#define ESP_EN 4   // EN引脚接D4
#define ESP_RST 5  // RST引脚接D5void setup() {Serial.begin(115200);espSerial.begin(115200);// 初始化EN和RST引脚为输出,默认高电平(模块正常工作)pinMode(ESP_EN, OUTPUT);pinMode(ESP_RST, OUTPUT);digitalWrite(ESP_EN, HIGH);digitalWrite(ESP_RST, HIGH);Serial.println("模块初始化完成");
}void loop() {// 示例1:按下串口输入'R'触发复位if (Serial.available() && Serial.read() == 'R') {Serial.println("触发模块复位...");digitalWrite(ESP_RST, LOW);  // RST拉低复位delay(100);digitalWrite(ESP_RST, HIGH);delay(1000);  // 等待重启}// 示例2:按下串口输入'S'触发休眠(关闭模块)if (Serial.available() && Serial.read() == 'S') {Serial.println("模块进入休眠...");digitalWrite(ESP_EN, LOW);  // EN拉低关闭模块}// 串口透传逻辑(省略,参考之前的软件串口代码)
}
  1. 设置esp8266的命令使用永久命令

2025年9月11日21:40:22

【我的发现】

  1. ESP-01S到货,经过测试确实比01稳定得多,01S虽然价格多几块,这里推荐01S,稳定而且还不用自己在EN和RST上加上拉电阻。
  2. 根据自己的场景需要,可以永久设置ESP8266的某些参数,比如模式和wifi密码等参数,这样在重启或者断点esp8266后,就直接设置临时参数就可以了,比如需要启动TCP服务的场景中,可以参考如下设置永久和临时参数:
    先后设置永久参数:AT+CWMODE_DEF、AT+CWJAP_DEF
    然后临时设置参数:AT+CIPMUX、AT+CIPSERVER
    这样,即使断点或者重启了ESP8266,也可以自动连接WIFI,等连接后只需要临时设定连接模式和启动TCP。

【测试情况】
3. 测试了01S,在接线上,EN和RST直接接的公共3.3V
4. 与01S不通,在使用了透传代码后,可以直接看到ESP8266打印的信息,并且最后一行字是ready,才表示启动成功。
5. 又同样方法测试了01,无反应,估计是坏了。
6. 手动测试了AT指令都成功
7. 使用之前的代码执行AT指令失败,经过研究,最后修改sendCommand函数后成功了。
8. 在ES01上测试了上次的重启ESP的代码,感觉没什么用,也有可能没有测对,下次再测。

【等待测试】
9. 发送命令到ESP8266中的函数需要优化,因为在执行获取IP的时候,只能读取到MAC地址,读取不了IP
10. 使用JAVA连接TCP服务器发送命令后,获取ESP8266的返回打印。

待测代码 https://gitee.com/likexiang/like-code/blob/master/Arduino/ESP-TCP.ino

代码

通过ESP8266连接WIFI,启动TCP,接受TCP客户端指令的代码:

https://gitee.com/likexiang/like-code/blob/master/Arduino/ESP-TCP.ino

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(网络原理)核心知识回顾 网络核心原理 get和post的理解 解析http 加密+请求和响应的一些关键字 Cookie和session 对密钥的理解

目录 核心知识回顾 网络核心原理 get和post的理解 解析http 加密请求和响应的一些关键字 Cookie和session 对密钥的理解 核心知识回顾 网络编程---socket api UDP DatagramSocket DatagramPacket TCP ServerSocket Socket 1.读写数据通过Socket,通过Socket内置的 lnpu…

前端框架对比分析:离线PWA + Cloudflare Workers部署

目录 概述 框架对比表格 详细分析 1. Astro ⭐⭐⭐⭐⭐ **强烈推荐** 2. Next.js ⭐⭐⭐⭐ **推荐** 3. Remix (现React Router) ⭐⭐⭐⭐⭐ **强烈推荐** 4. SvelteKit ⭐⭐⭐⭐ **推荐** 5. Nuxt.js ⭐⭐⭐ **一般推荐** 6. Vite + React ⭐⭐⭐ **基础选择** 推荐方案 🏆 …

9-10关于JS初学产生的问题

1.页面添加加载完成事件监听&#xff0c;页面加载完成后&#xff0c;执行页面初始化方法/函数; 这是什么意思 这句话描述的是前端开发中一种常见的操作&#xff1a;等待页面完全加载完成后&#xff0c;再执行特定的初始化代码。 简单来说&#xff0c;就是要确保页面上的所有元素…

项目中遇到pom文件里使用systemPath的例子记录

项目中遇到pom文件里使用systemPath&#xff0c;很少见&#xff0c;问了下豆包&#xff0c;记录下结果。在 Maven 的 pom.xml 中&#xff0c;<systemPath> 是 <dependency> 标签内的一个可选配置&#xff0c;用于手动指定本地系统中某个依赖包&#xff08;通常是 J…

10、向量与矩阵基础 - 深度学习的数学语言

学习目标:建立向量和矩阵的几何直观理解,掌握线性代数的核心概念,培养空间思维能力,为手搓大模型奠定扎实的数学基础 想象一下,当你使用GPT进行对话时,每个词汇都被转换成高维向量,整个对话历史变成一个巨大的矩阵。模型的"理解"过程,本质上就是在这个高维空…

【Python Tkinter】图形用户界面(GUI)开发及打包EXE指南

【Python Tkinter】图形用户界面&#xff08;GUI&#xff09;开发及打包EXE指南一、关于 Python Tkinter二、密码生成器示例2.1 使用Python添加图形用户界面&#xff08;GUI&#xff09;2.2 使用工具PyInstaller将应用打包成exe文件三、总结一、关于 Python Tkinter Python Tk…

【设计模式】【观察者模式】实例

一对多的统一监听 —— 这就是 观察者模式&#xff08;Observer Pattern&#xff09; 的经典应用场景。也就是说&#xff1a;一个事件源&#xff08;Subject&#xff09; → 可以注册多个监听器&#xff08;Observers&#xff09;&#xff1b;当事件发生时&#xff0c;一次性通…

C#测试调用OpenXml操作word文档的基本用法

OpenXML SDK是微软为高效处理Office文档&#xff08;如Word、Excel&#xff09;而开发的开源.NET库,它直接操作文档内部的XML结构&#xff0c;无需安装Office软件即可实现文档的创建、读取和编辑,常用于服务器端批量生成报表、自动化文档处理等场景&#xff0c;轻量且跨平台。本…

照度传感器考虑笔记

您好&#xff01;很高兴为您解答关于照度计传感器和设计的问题。这是一个非常专业且实际的话题。 一、照度计常用的照度传感器类型 照度计的核心是光电探测器&#xff0c;其工作原理是将光信号转换为电信号。目前主流的照度传感器都属于硅光电二极管&#xff08;Si Photodiode&…

C# Web API Mapster基本使用

安装包&#xff1a;Mapster1.注册MyRegister.Scan(); // 全局配置 //builder.Services.AddMapster(); // 需要安装Mapster.DependencyInjection包 builder.Services.AddScoped<IMapper,Mapper>();2.配置&#xff08;可不进行配置直接使用也行&#xff09;public class My…

<数据集>无人机航拍人员搜救识别数据集<目标检测>

数据集下载链接https://download.csdn.net/download/qq_53332949/91899456数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;5755张 标注数量(xml文件个数)&#xff1a;5755 标注数量(txt文件个数)&#xff1a;5755 标注类别数&#xff1a;1 标注类别名称&#xff…

STM32 开发(三十三)STM32F103 片内资源 —— 直接存储 DMA 实战 编码详解

👈《上一篇》  🏡《主目录》  👉《下一篇》 文章目录 一、基础知识点 二、开发环境 三、STM32CubeMX相关配置 四、Vscode 代码讲解 ADC -DMA 采集温度值 代码解析 DAC -DMA 输出 1KHZ 正弦波 代码解析 五、结果演示 ADC -DMA 采集温度值 结果演示 DAC -DMA 输出 1KHZ 正…

Ip 地址,子网掩码

1. 什么是 IP 地址&#xff1f;IP 地址是互联网上设备的唯一标识&#xff0c;类似于现实中的“门牌号”&#xff0c;用于设备之间的通信。ABC类IP内网地址的范围如下&#xff1a;A类地址&#xff1a;范围是 10.0.0.0 到 10.255.255.255&#xff0c;用于大型网络&#xff0c;网络…

软件工程领域内容运营的翻译策略:打破语言边界

软件工程领域内容运营的翻译策略:打破语言边界 关键词:软件工程、内容运营、翻译策略、技术本地化、术语管理、跨文化沟通、机器翻译 摘要:在全球化协作日益紧密的今天,软件工程领域的内容(如技术文档、API手册、开发者博客、开源社区指南等)早已突破单一语言限制,成为连…

元宇宙与金融创新:虚实融合下的金融服务新形态

1 元宇宙重构金融核心服务场景1.1 零售金融场景&#xff1a;从 “线下网点 线上 APP” 到 “沉浸式虚拟金融空间”传统零售金融服务受限于物理网点或二维 APP&#xff0c;交互性与体验感不足&#xff0c;元宇宙通过 “3D 虚拟金融空间 数字分身交互”&#xff0c;打造 “身临…

信奥赛csp初赛高频考点真题分类解析之:基本运算

信奥赛csp初赛高频考点真题分类解析之:基本运算 题目1: 答案:C 题解:R进制转换为十进制:按权展开 3 \times 8 1 ^1

PyTorch深度学习实战【10】之神经网络的损失函数

文章目录零 回顾&#xff1a;机器学习中的模型训练流程一 神经网络的损失函数1.1 机器学习中的优化思想1.2 回归&#xff1a;误差平方和SSE1.3 二分类交叉熵损失的原理与实现1.3.1 极大似然估计求解二分类交叉熵损失1.3.2 实现二类交叉熵损失1.4 多分类交叉熵损失的原理与实现1…

人机协同中的层次映射关系研究:从自然语言处理到智能系统设计

一、引言&#xff1a;人机协同的层次化认知基础人机协同作为人工智能领域的核心研究方向&#xff0c;正经历从简单工具使用到深度智能协作的范式转变。在这一演进过程中&#xff0c;如何建立人类意图与机器执行之间的有效映射关系成为关键挑战。自然语言处理(NLP)领域中&#x…

2025主流大模型核心信息

2025主流大模型核心信息国际主流大模型1. GPT-5 (OpenAI)版本特性&#xff1a;多模态能力支持图像、视频、音频的复杂理解与生成&#xff1b;超长上下文处理能力达1M tokens&#xff1b;推理能力接近专家水平优势&#xff1a;综合性能领先&#xff0c;编程能力强(SWE-bench Ver…

将容器连接到默认桥接网络

1.列出当前已有的网络[roothost1 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE db2f3a6af212 bridge bridge local 4251d9be020b host host local ba96ad98e029 none null local2.启动两个 ash &#xff08; Alpine 操作系…