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

ESP32开发-作为TCP客户端发送数据到网络调试助手

​简化版代码(仅作为TCP客户端)​

#include <SPI.h>
#include <EthernetENC.h>  // 使用EthernetENC库// 网络配置
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};  // MAC地址
IPAddress ip(192, 168, 1, 100);      // ESP32的IP
IPAddress serverIP(192, 168, 1, 150); // 电脑IP(网络调试助手)
const int serverPort = 8080;         // 电脑端口EthernetClient client;  // TCP客户端void setup() {Serial.begin(115200);delay(1000);// 初始化ENC28J60SPI.begin(18, 19, 23, 5);  // SCK=18, MISO=19, MOSI=23, CS=5Ethernet.begin(mac, ip);Serial.println("ESP32 TCP Client Ready");Serial.print("Local IP: ");Serial.println(Ethernet.localIP());
}void loop() {// 如果未连接,尝试连接服务器if (!client.connected()) {Serial.println("Connecting to server...");if (client.connect(serverIP, serverPort)) {Serial.println("Connected to server!");client.print("Hello from ESP32!");  // 连接后立即发送一条消息} else {Serial.println("Connection failed!");}delay(2000);  // 重试间隔}// 如果已连接,检查是否有数据可读if (client.available()) {char c = client.read();Serial.write(c);  // 打印接收到的数据}// 示例:每5秒发送一次数据(可选)static unsigned long lastSend = 0;if (client.connected() && millis() - lastSend >= 5000) {lastSend = millis();client.print("ESP32 heartbeat");  // 定时发送心跳数据Serial.println("Sent heartbeat");}
}

​功能说明​

  1. ​作为TCP客户端​​:

    • 自动连接电脑(192.168.1.150:8080)。
    • 连接成功后发送"Hello from ESP32!"
    • 每5秒发送一次心跳数据("ESP32 heartbeat")。
  2. ​接收数据​​:

    • 实时打印从服务器(网络调试助手)接收的数据。
  3. ​自动重连​​:

    • 如果断开连接,每2秒尝试重连一次。

​使用步骤​

  1. ​硬件接线​​:

    • 确保ENC28J60与ESP32正确连接(SCK=18, MISO=19, MOSI=23, CS=5)。
    • ENC28J60使用​​3.3V供电​​。
  2. ​电脑端准备​​:

    • 打开网络调试助手,选择​​TCP服务器模式​​,监听端口8080
    • 确保电脑IP为192.168.1.150(或修改代码中的serverIP)。
  3. ​ESP32操作​​:

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

效果:

http://www.xdnf.cn/news/3243.html

相关文章:

  • 记录idea可以运行但是maven install打包却找不到问题
  • 【网络原理】从零开始深入理解HTTP的报文格式(二)
  • 第四节:权限管理
  • Vue3 Echarts 3D圆柱体柱状图实现教程以及封装一个可复用的组件
  • 仿腾信会议——密码MD5
  • 软件设计师-软考知识复习(1)
  • Deepseek应用技巧-批量生成读书金句
  • SAP 归档 自定义字段目录及归档信息结构
  • 〇 开篇序言
  • 写一个 Java 程序,用于将字符串中的指定子串替换为另一个子串
  • 倒排索引(Inverted Index)详解
  • Git常用指令速查
  • MySQL数据库全面详解:从基础到高级应用
  • 如何设计一个会员码表!唯一索引的使用,字段区分度不高如何处理
  • 第十五章:预训练大语言模型
  • 血管造影正常≠心脏没事!无创技术破解心肌缺血漏诊困局
  • FlexNoC-Latency
  • 【爬虫】案例-获取cbh电影
  • centos7 安装python3
  • Vue2+Vue3学习笔记
  • 线程同步与互斥核心要点整理
  • 即时设计笔记
  • C++搞定周岁.虚岁计算
  • 【网络】HTTP报文首部字段
  • 使用 ECharts 在 Vue3 中柱状图的完整配置解析
  • 大数据测试集群环境部署
  • linux 内核 debugfs 使用介绍
  • Python 打包兼容Win7 的Qt 程序
  • 【题解-Acwing】869. 试除法求约数
  • 解决react-native下背景图渲染,统一处理组件BackgroundImage