ESP32-S3-ETH

来自Waveshare Wiki
跳转至: 导航搜索
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
主控 ESP32-S3
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C UART USB

产品介绍

产品简介

ESP32-S3-GEEK 是一款基于 ESP32-S3R8 设计的以太网开发板,具备出色的 Wi-Fi 和蓝牙无线连接功能,拥有更可靠且高效的有线以太网连接,且支持 PoE 供电 (仅 PoE 版本)。板载摄像头接口,兼容 OV2640、OV5640 等主流摄像头,方便进行图像和视频采集。开发板还预留了 Pico 兼容接口,支持部分树莓派 Pico 扩展板,并依托其丰富的生态和开源资源,用户可以快速灵活地进行二次开发,可广泛应用于物联网、图像采集、智能家居及人工智能项目。

产品特性

  • 基于 ESP32-S3R8 高性能芯片,配备 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
  • 集成 512KB SRAM 和 384KB ROM,内置 8MB PSRAM 和 16MB Flash
  • 支持 2.4GHz Wi-Fi 和 Bluetooth 5 (LE),内置天线,支持外接天线
  • 板载 W5500 以太网芯片,通过 SPI 接口扩展 10/100Mbps 网络连接
  • 支持外接 PoE 模块实现以太网供电功能 (符合 IEEE 802.3af 标准)
  • 板载摄像头接口,兼容 OV2640 和 OV5640 等主流摄像头,适用于图像和视频采集
  • 板载 USB Type-C 接口,支持供电、调试和固件下载,开发更便捷
  • 板载 Micro SD 卡槽,支持外接 SD 卡存储图片和文件
  • 板载 Pico 兼容接口,提供丰富的外设扩展,兼容性强

资源简介

ESP32-S3-ETH-details-intro.jpg

1、ESP32-S3R8
双核处理器,高达 240MHz 的运行频率

2、W25Q128
16MB Flash,用于储存程序和数据

3、W5500
网口芯片

4、H1102NLT
网络变压器

5、JW5060
稳压芯片

6、USB Type-C 接口
可用于下载程序和供电

7、以太网接口
RJ45 10/100M 自适应网口

8、PoE 接口
可外接 PoE 模块

9、摄像头接口
可兼容 OV2640/OV5640 等摄像头

10、IPEX 1 代天线接口
预留接口,须改焊电阻使能

11、陶瓷天线
默认使能,可改焊设置为 IPEX 外接天线

12、Micro SD 卡槽
13、BOOT 按键
14、ACT 指示灯
15、LINK 指示灯
16、RESET 按键

接口介绍

ESP32-S3-ETH-details-15.jpg

产品尺寸

ESP32-S3-ETH-details-size.jpg

使用说明

器件准备

  • ESP32-S3-ETH x1
  • PoE Module (B) x1
  • OV2640摄像头 x1
  • 16GB SD卡 x1
  • USB线 type A公口 转 Type C公口 x1

ESP32-S3-ETH-Test-prepare.jpg

在操作前,建议先浏览目录,快速了解文档结构。为顺利操作,请仔细阅读FAQ,提前了解可能的问题。文档中所有资料均提供超链接,方便下载。

Arduino开发

本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。

环境搭建

下载和安装 Arduino IDE

  1. 点击访问Arduino官网,选择对应的系统和系统位数下载。
    Arduino-IDE-Download.jpg
  2. 运行安装程序,全部默认安装即可。
更多 Arduino IDE 使用说明,请见:Arduino 官方说明文档

安装 Arduino-ESP32

  • ESP32相关主板在Arduino IDE使用,须先安装“Arduino-ESP32板”库。
  • 国内部分区域安装,可能会因网络因素无法“在线安装”,一般推荐“离线安装” 。
  • 安装 Arduino-ESP32教程,详见:Arduino 板管理教程

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装离线安装
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 库安装教程,详见:Arduino 库管理教程
  • ESP32-S3-ETH 库文件说明
库名称 说明 库安装要求
ESP32-BLE-Keyboard ESP32蓝牙键盘库 “在线”或“离线”安装
ESP32-BLE-Mouse ESP32蓝牙鼠标库 “在线”或“离线”安装
ETHClass ESP32以太网库 “在线”或“离线”安装
ModbusMaster Modbus主设备库 “在线”或“离线”安装
pubsubclient MQTT客户端库 “在线”或“离线”安装
StreamDebugger 流调试库 “在线”或“离线”安装

运行第一个 Arduino 程序

如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!

新建工程

  • 运行Arduino IDE,选择 File -> New Sketch
    Arduino-ESP32-New-demo-01.jpg
  • 输入代码:
void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Hello, World!");
  delay(2000);
}
  • 保存代码工程,选择 File -> Save As...;在弹出的菜单选择保存工程路径,并输入工程名,如 Hello_World,点击保存
    Arduino-ESP32-New-demo-02.jpg

编译和烧录程序

  • 选择对应的开发板,以ESP32S3主板为例: Tools -> Board -> esp32 -> ESP32S3 Dev Module
    Arduino-ESP32-New-demo-03.jpg
  • 选择对应的端口,另外若ESP32S3主板只有USB口,须打开(Enable)USB CDC,如下图所示:
    Arduino-ESP32-New-demo-04.jpg
  • 编译并上传程序:
    Arduino-ESP32-New-demo-05.jpg
  • 打开串口监视窗口,程序每隔2秒会打印“Hello World!”,运行情况如下所示:
    Arduino-ESP32-New-demo-06.jpg

示例程序

  • ESP32-S3-ETH 示例程序
示例程序 说明 依赖库
IO_Test 基础例程:GPIO引脚高低电平控制 -
SD_Card 基础例程:SD卡加载,读写操作 -
WiFi_AP 基础例程:设置为AP热点,允许其他WiFi设备接入联网
WiFi_STA 基础例程:设置为STA模式,可接入WiFi路由网络进行联网
BLE_Keyboard 基础例程:蓝牙键盘功能演示 ESP32-BLE-Keyboard
ETH_Web_CAM 综合例程:通过以太网连接,实现网络摄像头功能 ETHClass
  • Arduino 工程设置:

ESP32-S3-ETH-Arduino-Demo-Setting3.jpg


IO_Test

【硬件连接】


  • 使用USB线把板子接入电脑

ESP32-S3-ETH-HW-Connection-IO-TEST.jpg

【代码分析】


1.GPIO 引脚设置:程序首先定义了 25 个 GPIO 引脚,并在 setup() 函数中将它们初始化为输出模式。所有引脚在开始时都被设置为低电平(关闭状态)。

#define NUM_GPIO 25

// Define GPIO pins
const int gpio_pin[NUM_GPIO] = {21, 17, 16, 18, 15, 3, 2, 1, 0, 44, 43, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 48};

2. GPIO 控制循环

  • loop() 函数中,程序会依次将每个 GPIO 引脚打开(设置为高电平),延时300毫秒,然后再关断引脚(设置为低电平)。
  • 这个过程会不断重复。

3. 打印输出:程序通过 USB 口输出每个 GPIO 引脚的状态信息,提示该引脚是处于高电平(开启)还是低电平(关闭)状态。

void loop() {
  // Turn on each GPIO one by one
  for (current_gpio = 0; current_gpio < NUM_GPIO; current_gpio++) {
      digitalWrite(gpio_pin[current_gpio], HIGH); // Set GPIO pin to HIGH (turn on)
      printf("GPIO %d set to HIGH.\n", gpio_pin[current_gpio]); // Print GPIO state
      delay(300); // Delay for 300ms
  }

  // Turn off each GPIO one by one
  for (current_gpio = 0; current_gpio < NUM_GPIO; current_gpio++) {
      digitalWrite(gpio_pin[current_gpio], LOW); // Set GPIO pin to LOW (turn off)
      printf("GPIO %d set to LOW.\n", gpio_pin[current_gpio]); // Print GPIO state
      delay(300); // Delay for 300ms
  }
想了解更多关于Arduino ESP32库关于GPIO相关的使用?可访问:Arduino ESP32 库 GPIO 使用

【运行效果】


程序烧录完成后,设备的运行效果如下:

  • ESP32-S3-ETH 将依次控制 25 个 GPIO 引脚。程序会在每个 GPIO 引脚上切换高电平(HIGH)和低电平(LOW)状态,并将状态变化通过 USB 输出至监视窗口。
    输出的低电平为 0V,高电平为当前板子的工作电压。由于 ESP32-S3 的工作电压为 3.3V,因此高电平为 3.3V。
  • 打开 Arduino IDE 的串口监视窗口,可以观察到各个 GPIO 引脚的状态切换,如下图所示:
    GPIO流水灯实验参考例图

    ESP32-S3-ETH-IO-TEST.jpg
用户可以使用万用表检测各个 GPIO 引脚的电压高低,或者通过连接 LED 和电阻,进行简单的流水灯测试。

SD_Card

【硬件连接】


  • 板子装上SD卡(推荐用16GB以下的闪迪SD卡),使用USB线把板子接入电脑

ESP32-S3-ETH-HW-SD Card.jpg

【代码分析】


1. setup()

  • 初始化串口通信和SD卡。
  • 通过 SPI.begin() 初始化ESP32的SPI总线,指定用于SD卡通信的引脚。
  • 调用 SD.begin() 尝试挂载SD卡,成功时输出卡的大小。
  • 调用三个核心功能:
    • writeFileToSD():创建并写入文件。
    • listFilesOnSD():扫描并打印SD卡根目录下的所有文件。
    • readFileFromSD():打开并读取 waveshare.txt 文件的内容。

2. writeFileToSD()

  • 主要功能是创建或打开 waveshare.txt 文件,并写入文本 "Hello world from Waveshare"
  • 在完成文件写入后,文件被关闭以确保写入操作正确完成。

3. listFilesOnSD()

  • 扫描SD卡根目录中的所有文件,并将文件名通过串口输出。
  • 使用 openNextFile() 函数依次打开目录中的每个文件并打印它们的名称,最后关闭根目录文件。

4. readFileFromSD(const char *filePath)

  • 打开并读取指定路径的文件,这里是 waveshare.txt
  • 如果文件存在,使用 file.read() 逐字节读取内容,并通过串口输出文件的内容,最后关闭文件。
想了解更多关于Arduino ESP32库关于SD卡相关的使用?可访问:Arduino ESP32 库 SD 使用

【运行效果】


程序烧录完成后,设备的运行效果如下:

  • 首先挂载SD卡,然后创建和写入文件,再扫描并列出SD卡的根目录文件,最后打开并读取一个特定文件的内容。
    ESP32-S3-ETH-SD Card-Running.jpg

WiFi_AP

WiFi_STA

BLE_Keyboard

ETH_Web_CAM

【硬件连接】


  • 参考下图连接好硬件,(如果不需要PoE供电,则无须接PoE模块)

ESP32-S3-ETH-details-12.jpg

【运行效果】


ESP32-S3-ETH-Demo-ETH WEB CAM-running.jpg

资料

原理图

示例程序

数据手册

ESP32-S3

其他器件

软件工具

Arduino

调试工具

其他资料链接

FAQ

可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。


技术支持


联系人:林工
EMAIL:services@waveshare.net
电话:0755-83040712
QQ:3004506335
微信:扫下方二维码添加
Lxw.jpg

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证