当前位置: 首页 > news >正文

ESP32开发-作为TCP服务端接收数据

​ESP32 + ENC28J60 仅作为TCP服务端​

(电脑通过 ​​网络调试助手​​ 连接ESP32,实现双向通信)


​完整代码​
#include <SPI.h>
#include <EthernetENC.h>  // 或 UIPEthernet.h// 网络配置
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC地址
IPAddress ip(192, 168, 1, 100);      // ESP32静态IP
const int serverPort = 8080;         // 监听端口EthernetServer server(serverPort);    // TCP服务器
EthernetClient client;                // 客户端对象void setup() {Serial.begin(115200);delay(1000);// 初始化ENC28J60SPI.begin(18, 19, 23, 5);  // SCK=18, MISO=19, MOSI=23, CS=5Ethernet.begin(mac, ip);// 启动TCP服务器server.begin();Serial.println("TCP Server Started");Serial.print("ESP32 IP: ");Serial.println(Ethernet.localIP());Serial.println("Waiting for client...");
}void loop() {// 检查是否有新客户端连接client = server.available();if (client) {Serial.println("\n[Client Connected]");// 持续处理客户端数据while (client.connected()) {// 接收数据并打印到串口if (client.available()) {char c = client.read();Serial.write(c);  // 打印收到的数据}// 示例:若收到"ping",回复"pong"if (Serial.available()) {String cmd = Serial.readStringUntil('\n');client.print("ESP32 Reply: " + cmd); // 发送到客户端}}client.stop();Serial.println("[Client Disconnected]");}
}

​功能说明​

  1. ​作为TCP服务端​​:

    • 监听端口 8080,等待电脑连接。
    • 实时打印客户端(网络调试助手)发送的数据。
    • 可通过串口监视器输入内容,主动回复客户端。
  2. ​通信流程​​:

    • 电脑连接ESP32的IP 192.168.1.100:8080
    • 电脑发送任意数据 → ESP32串口显示。
    • ESP32串口输入内容 → 发送到电脑。

​使用步骤​

  1. ​硬件接线​​:

    • ENC28J60与ESP32连接:
      SCK=18, MISO=19, MOSI=23, CS=5, VCC=3.3V, GND=GND
  2. ​电脑端操作​​:

    • 打开网络调试助手,选择 ​​TCP客户端模式​​。
    • 连接ESP32的IP 192.168.1.100,端口 8080
  3. ​ESP32调试​​:

    • 上传代码后,打开串口监视器(波特率115200)。
    • 观察客户端连接状态和接收的数据。

  

 

相关文章:

  • Oracle Bigfile 与 Smallfile 表空间对比分析
  • 如何在Windows上实现MacOS中的open命令
  • 第 11 届蓝桥杯 C++ 青少组中 / 高级组省赛 2020 年真题答和案解析
  • 【机器学习】使用VGG16与K-Means对大量图片进行自动分类
  • 海思3559a_怎么开启SHUB_UART1功能
  • kbuild system学习
  • AI Agent(1):概念与定义
  • ​​深度学习在智能制造中的缺陷检测应用​​
  • 通过API网关防御重放攻击:技术方案与实战验证
  • C# 事件与委托
  • DIT(Diffusion In Transformer)学习笔记
  • PID控制中,一阶低通滤波算法
  • c#TCPsever
  • 配置 Odoo 的 PostgreSQL 数据库以允许远程访问的步骤
  • 高级java每日一道面试题-2025年4月30日-基础篇[反射篇]-在反射中,`setAccessible(true)`的作用是什么?
  • LVGL -按键介绍 上
  • Spring AI如何调用本地部署的大模型
  • Learning vtkjs之ImplicitBoolean
  • 脏读、不可重复读、幻读示例
  • Clang-Tidy协助C++编译期检查
  • 长三角铁路今日预计发送旅客420万人次,有望创单日客发量新高
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 美国第一季度经济环比萎缩0.3%
  • 国铁集团去年收入12830亿元增3%,全年铁路运输利润总额创新高
  • 人物|德国新外长关键词:总理忠实盟友、外交防务专家、大西洋主义者
  • 市场监管总局:2024年查办商标、专利等领域违法案件4.4万件