ESP32-S3-ETH
| ||||||||||||||||||||||
| ||||||||||||||||||||||
产品介绍
产品简介
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 兼容接口,提供丰富的外设扩展,兼容性强
资源简介
1、ESP32-S3R8 2、W25Q128 3、W5500 4、H1102NLT 5、JW5060 6、USB Type-C 接口 7、以太网接口 |
8、PoE 接口 9、摄像头接口 10、IPEX 1 代天线接口 11、陶瓷天线 12、Micro SD 卡槽 |
接口介绍
产品尺寸
使用说明
器件准备
- ESP32-S3-ETH x1
- PoE Module (B) x1
- OV2640摄像头 x1
- 16GB SD卡 x1
- USB线 type A公口 转 Type C公口 x1
Arduino开发
本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。
环境搭建
下载和安装 Arduino IDE
- 点击访问Arduino官网,选择对应的系统和系统位数下载。
- 运行安装程序,全部默认安装即可。
安装 Arduino-ESP32
- ESP32相关主板在Arduino IDE使用,须先安装“Arduino-ESP32板”库。
- 国内部分区域安装,可能会因网络因素无法“在线安装”,一般推荐“离线安装” 。
- 安装 Arduino-ESP32教程,详见:Arduino 板管理教程
安装库
- 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装。
对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。 - 库安装教程,详见:Arduino 库管理教程
库名称 | 说明 | 库安装要求 |
---|---|---|
ESP32-BLE-Keyboard | ESP32蓝牙键盘库 | “在线”或“离线”安装 |
ESP32-BLE-Mouse | ESP32蓝牙鼠标库 | “在线”或“离线”安装 |
ETHClass | ESP32以太网库 | “在线”或“离线”安装 |
ModbusMaster | Modbus主设备库 | “在线”或“离线”安装 |
pubsubclient | MQTT客户端库 | “在线”或“离线”安装 |
StreamDebugger | 流调试库 | “在线”或“离线”安装 |
运行第一个 Arduino 程序
新建工程
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); }
示例程序
示例程序 | 说明 | 依赖库 |
---|---|---|
IO_Test | 基础例程:GPIO引脚高低电平控制 | - |
SD_Card | 基础例程:SD卡加载,读写操作 | - |
WiFi_AP | 基础例程:设置为AP热点,允许其他WiFi设备接入联网 | |
WiFi_STA | 基础例程:设置为STA模式,可接入WiFi路由网络进行联网 | |
BLE_Keyboard | 基础例程:蓝牙键盘功能演示 | ESP32-BLE-Keyboard |
ETH_Web_CAM | 综合例程:通过以太网连接,实现网络摄像头功能 | ETHClass |
- Arduino 工程设置:
IO_Test
【代码分析】
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 }
SD_Card
【代码分析】
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()
逐字节读取内容,并通过串口输出文件的内容,最后关闭文件。
WiFi_AP
WiFi_STA
BLE_Keyboard
资料
原理图
示例程序
数据手册
ESP32-S3
其他器件
软件工具
Arduino
调试工具
其他资料链接
FAQ
可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。
技术支持
联系人:林工
EMAIL:services@waveshare.net
电话:0755-83040712
QQ:3004506335
微信:扫下方二维码添加