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

ESP32开发-通过ENC28J60模块实现以太网设备

要实现ESP32与ENC28J60模块连接并使电脑能够Ping通,需完成以下步骤:


​1. 硬件连接​

确保ESP32与ENC28J60正确连接(SPI接口):

ENC28J60引脚ESP32引脚
SCKGPIO18
MISOGPIO19
MOSIGPIO23
CSGPIO5
INT无需连接
VCC3.3V
GNDGND

​注意​​:ENC28J60需3.3V供电,避免使用5V。


​2. 软件配置​

​步骤1:安装库​
  • ​ENC28J60驱动库​​:推荐使用EthernetENC(兼容ESP32)。
    • Arduino库管理中搜索并安装EthernetENC
​步骤2:示例代码​

以下是完整的ESP32与ENC28J60通信代码,包含静态IP配置和网络状态监控,确保电脑可以Ping通:​

#include <SPI.h>
#include <EthernetENC.h> // 或使用 UIPEthernet.h// 网络配置(DHCP或静态IP二选一)
#define USE_DHCP        true  // 启用DHCP自动获取IP
//#define USE_DHCP      false // 启用静态IPbyte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC地址(需唯一)// 静态IP配置(仅在USE_DHCP=false时生效)
IPAddress staticIP(192, 168, 1, 100);    // ESP32的IP
IPAddress subnet(255, 255, 255, 0);      // 子网掩码
IPAddress gateway(192, 168, 1, 1);       // 网关
IPAddress dnsServer(8, 8, 8, 8);         // DNS服务器EthernetClient client;void setup() {Serial.begin(115200);delay(1000); // 等待串口稳定Serial.println("Initializing ENC28J60...");// 初始化SPI(ESP32默认SPI引脚)SPI.begin(18, 19, 23, 5); // SCK=18, MISO=19, MOSI=23, CS=5// 启动以太网#if USE_DHCPif (Ethernet.begin(mac) == 0) {Serial.println("DHCP Failed! Check cable or restart.");while (1);}#elseEthernet.begin(mac, staticIP, dnsServer, gateway, subnet);#endif// 打印网络信息printNetworkDetails();
}void loop() {Ethernet.maintain(); // 维持DHCP租约(如果使用DHCP)// 示例:每5秒打印一次连接状态static unsigned long lastPrint = 0;if (millis() - lastPrint >= 5000) {lastPrint = millis();Serial.print("Link Status: ");Serial.println(Ethernet.linkStatus() == LinkON ? "Connected" : "Disconnected");}
}// 打印网络详细信息
void printNetworkDetails() {Serial.println("\nNetwork Configuration:");Serial.println("----------------------");Serial.print("MAC Address: ");for (byte i = 0; i < 6; i++) {Serial.print(mac[i], HEX);if (i < 5) Serial.print(":");}Serial.println();Serial.print("IP Address: ");Serial.println(Ethernet.localIP());Serial.print("Subnet Mask: ");Serial.println(Ethernet.subnetMask());Serial.print("Gateway: ");Serial.println(Ethernet.gatewayIP());Serial.print("DNS Server: ");Serial.println(Ethernet.dnsServerIP());Serial.println("----------------------");Serial.println("Try pinging this IP from your computer!");
}

​3. 网络调试​

  1. ​查看串口输出​​:确保ESP32获取到IP(如192.168.1.100)。
  2. ​电脑Ping测试​​:
    • 确保电脑与ESP32在同一局域网。
    • 打开命令提示符,执行:
      ping 192.168.1.100
    • 若超时,检查防火墙或路由器设置。
    • 效果

相关文章:

  • K8S - GitOps 入门实战 - 自动发布与秒级回滚
  • Go 写一个简单的Get和Post请求服务
  • k8s平台:手动部署Grafana
  • Linux基础 -- Generic Netlink 框架详解与开发实践
  • 数据资产管理与AI融合:物联网时代的新征程
  • Wireshark使用教程
  • 进程、线程、进程间通信Unix Domain Sockets (UDS)
  • 【自然语言处理与大模型】大模型意图识别实操
  • 一文详解 Linux下的开源打印系统CUPS(Common UNIX Printing System)
  • 回收铼树脂RCX-5143
  • 航电系统之网络控制运动技术篇
  • 2025年4月通信科技领域周报(4.21-4.27):6G标准加速推进 空天地一体化网络进入实测阶段
  • 极光PDF编辑器:高效编辑,轻松管理PDF文档
  • (Go Gin)Gin学习笔记(五)会话控制与参数验证:Cookie使用、Sessions使用、结构体验证参数、自定义验证参数
  • 合并多个Excel文件到一个文件,并保留格式
  • 区块链+医疗:破解数据共享困局,筑牢隐私安全防线
  • Copilot 祝你走在AI前沿:2025 年 4 月动态
  • HTML5好看的水果蔬菜在线商城网站源码系列模板8
  • Copilot总结Word长文档功能更新升级
  • PCB设计工艺规范(一)概述
  • 女冰队长于柏巍,拒绝被年龄定义
  • 看见“看得见的手”,看见住房与土地——读《央地之间》
  • 浦发银行一季度净利175.98亿增1.02%,不良率微降
  • 癌症来临前,可能伪装成这几种常见病,千万别大意
  • 纪念|海上金石学的兴盛与王昶《金石萃编》
  • 全球前瞻|王毅赴巴西出席金砖外长会,加拿大迎来“几十年来最重要大选”