跳到主要内容

Arduino 开发

本章节包含以下部分,请按需阅读:

Arduino 入门教程

初次接触 Arduino ESP32 开发,想要快速上手?我们为您准备了一套通用的 入门教程

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置开发环境

1. 安装和配置 Arduino IDE

请参考 安装和配置 Arduino IDE 教程 下载安装 Arduino IDE 并添加 ESP32 支持。

ESP32-S3-ETH 需要使用 2.0.12 或更高版本的 Arduino ESP32 开发板支持包。在开发板管理器中选择 "ESP32S3 Dev Module"。

2. 安装依赖库

示例程序包的 Arduino/libraries 目录包含所需的离线库。也可通过 Arduino IDE 的库管理器安装已收录的库。

库名称用途安装方式
Adafruit_NeoPixel控制 WS2812 RGB LED在线或离线安装
ESP32-BLE-Keyboard蓝牙键盘功能在线或离线安装
EthernetW5500 DHCP 和静态 IP 示例离线安装
Ethernet_GenericW5500 DHCP 失败后使用静态 IP离线安装
ETHClass2Arduino ESP32 2.x 下的以太网摄像头示例离线安装

3. Arduino 工程参数

在"工具"菜单中选择以下参数:

  • Board:ESP32S3 Dev Module
  • USB CDC On Boot:Enabled
  • CPU Frequency:240MHz (WiFi)
  • Flash Size:16MB (128Mb)
  • Partition Scheme:Huge APP (3MB No OTA/1MB SPIFFS)
  • PSRAM:OPI PSRAM
  • Upload Mode:UART0 / Hardware CDC
  • Upload Speed:921600
  • USB Mode:Hardware CDC and JTAG

Arduino 工程参数设置

示例程序

Arduino 示例程序位于示例程序包的 Arduino/examples 目录中。

示例程序基础例程说明依赖库
01_IO_TestGPIO 引脚高低电平控制-
02_RGB_LEDGPIO 引脚控制 WS2812 彩灯Adafruit NeoPixel
03_SD_CardSD 卡挂载和文件读写-
04_BLE_Keyboard蓝牙键盘功能演示ESP32-BLE-Keyboard
05_WiFi_AP设置 AP 热点并显示接入设备信息-
06_WiFi_STA连接 Wi-Fi 网络并通过网页控制 GPIO18-
07_WiFi_DHCP通过 Wi-Fi 使用 DHCP 获取 IP 地址-
08_WIFI_StaticIP通过 Wi-Fi 使用静态 IP 地址-
09_WIFI_Web_CAM通过 Wi-Fi 传输摄像头图像-
10_ETH_DHCP通过以太网使用 DHCP 获取 IP 地址Ethernet
11_ETH_StaticIP通过以太网使用静态 IP 地址Ethernet
12_ETH_MAC_DHCP_StaticIP自定义 MAC 地址,DHCP 失败后使用静态 IP 地址Ethernet_Generic
13_ETH_Web_CAM通过以太网传输摄像头图像ETHClass2(Arduino ESP32 2.x)

01_IO_Test

本示例将 19 个可作为输出的 GPIO 依次设置为高电平和低电平,每次状态变化间隔 300 ms。串口监视器会同步显示当前 GPIO 编号和电平状态。

硬件连接

使用 USB 线连接开发板和计算机。可使用万用表测量引脚电压,也可串联 LED 与限流电阻观察电平变化。

GPIO 测试硬件连接

关键配置

示例依次控制以下 GPIO:

const int gpio_pin[] = {
21, 17, 16, 18, 15, 3, 2, 1, 0, 44,
43, 38, 39, 40, 41, 42, 45, 47, 48
};

ESP32-S3-ETH 引脚定义

复用引脚

GPIO33 至 GPIO37 由板载功能占用,GPIO46 仅支持输入,因此不包含在输出测试序列中。其余部分 GPIO 与板载外设复用。测试 GPIO 输出前,请断开相关外设,避免总线冲突。

运行效果

串口监视器依次显示各 GPIO 的 HIGHLOW 状态。ESP32-S3 的高电平约为 3.3 V,低电平约为 0 V。

GPIO 测试串口输出

02_RGB_LED

本示例通过 GPIO21 控制 WS2812 RGB LED,依次演示单色填充、彩虹渐变和剧院追逐效果。

硬件连接

使用 USB 线连接开发板和计算机。RGB LED 已连接至 GPIO21,无需外接线路。

运行效果

  • 单色填充:依次显示红色、绿色和蓝色。
  • 剧院追逐:显示白色、红色和蓝色的动态追逐效果。

RGB LED 运行效果

03_SD_Card

本示例挂载 Micro SD 卡,在根目录创建 waveshare.txt,写入 Hello world from Waveshare,列出根目录文件并读取文件内容。

提示

本示例默认仅支持 FAT32 文件系统,不支持 exFAT 或 NTFS。64 GB 及以上的 SDXC 存储卡通常默认采用 exFAT 格式,需要备份数据后重新格式化为 FAT32 才能使用。格式化会清除存储卡中的全部数据。

硬件连接

SPI 信号ESP32-S3-ETH
CS (SS)GPIO4
DI (MOSI)GPIO6
DO (MISO)GPIO5
SCK (SCLK)GPIO7

将 Micro SD 卡插入板载卡槽,再使用 USB 线连接开发板和计算机。

Micro SD 卡硬件连接

运行效果

串口监视器依次显示 SD 卡挂载结果、文件写入结果、根目录文件列表以及 waveshare.txt 的内容。

SD 卡示例串口输出

04_BLE_Keyboard

本示例将 ESP32-S3-ETH 模拟为 BLE 键盘。程序基于 ESP32-BLE-Keyboard 开源库。

运行效果

烧录程序后,在计算机或移动设备的蓝牙设置中搜索并连接开发板。连接完成后,开发板可发送示例按键或文本。

05_WiFi_AP

本示例将 ESP32-S3-ETH 配置为 Wi-Fi 接入点。接入点名称为 ESP32-S3-ETH,密码为 88888888。设备接入或断开时,串口监视器会显示设备的 MAC 地址和 DHCP 分配的 IP 地址。

运行效果

  1. 烧录程序并打开串口监视器。
  2. 使用计算机或移动设备连接 ESP32-S3-ETH 热点。
  3. 检查串口监视器输出的设备 MAC 地址和 IP 地址。

连接 ESP32-S3-ETH Wi-Fi 热点

Wi-Fi AP 串口输出

06_WiFi_STA

本示例将开发板配置为 Wi-Fi 工作站,并启动 HTTP 服务器。浏览器页面可查看和切换 GPIO18 的输出状态。

关键配置

烧录前,将程序中的 SSID 和密码修改为当前网络的参数。

运行效果

  1. 开发板接入 Wi-Fi 后,串口监视器显示 IP 地址。
  2. 在浏览器中访问该 IP 地址。
  3. 通过页面中的链接切换 GPIO18 的高低电平;串口监视器同步显示 /H/L
提示

如有条件,可参考下图串联一个 LED,实测查看 GPIO18 的电平状态,或者用万用表测量。

GPIO18 接线图

Wi-Fi STA 连接和服务器地址

GPIO18 高电平网页状态

GPIO18 高电平串口输出

GPIO18 低电平网页状态

GPIO18 低电平串口输出

07_WiFi_DHCP

本示例连接指定的 Wi-Fi 网络,并通过 DHCP 自动获取 IP 地址。

关键配置

将以下参数修改为当前网络的 SSID 和密码:

const char *ssid = "Waveshare-AP";
const char *password = "88888888";

运行效果

串口监视器显示 Wi-Fi 连接状态和 DHCP 分配的 IP 地址。

Wi-Fi DHCP 串口输出

08_WIFI_StaticIP

本示例使用静态 IP 地址连接指定的 Wi-Fi 网络。

关键配置

根据当前网络修改 SSID、密码、IP 地址、网关、子网掩码和 DNS:

IPAddress local_ip(192, 168, 196, 100);
IPAddress gateway(192, 168, 196, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 196, 1);

运行效果

串口监视器显示 Wi-Fi 连接状态和配置的静态 IP 地址。

Wi-Fi 静态 IP 串口输出

09_WIFI_Web_CAM

本示例通过 Wi-Fi 建立摄像头服务器,在局域网中提供实时图像。

摄像头接口

摄像头信号ESP32-S3-ETH
ENABLEGPIO8
VSYNCGPIO1
HREFGPIO2
XCLKGPIO3
PCLKGPIO39
SIOD (SDA)GPIO48
SIOC (SCL)GPIO47
D7GPIO18
D6GPIO15
D5GPIO38
D4GPIO40
D3GPIO42
D2GPIO46
D1GPIO45
D0GPIO41

关键配置

将程序中的 SSID 和密码修改为当前网络的参数。摄像头初始化成功后,程序会启动 HTTP 视频流服务器。

运行效果

串口监视器显示摄像头服务器地址。在同一局域网的浏览器中访问该地址,可查看实时图像。

Wi-Fi 摄像头硬件连接

Wi-Fi 摄像头服务器地址

Wi-Fi 摄像头网页效果

10_ETH_DHCP

本示例初始化板载 W5500,以太网连接建立后通过 DHCP 获取 IP 地址。

以太网接口

W5500 信号ESP32-S3-ETH
MISOGPIO12
MOSIGPIO11
SCLKGPIO13
CSGPIO14
RSTGPIO9
INTGPIO10

运行效果

连接网线并烧录程序。串口监视器显示以太网初始化状态和 DHCP 分配的 IP 地址。

以太网硬件连接

以太网 DHCP 串口输出

11_ETH_StaticIP

本示例初始化板载 W5500,并使用程序中配置的静态 IP 地址接入以太网。

运行效果

连接网线并烧录程序。串口监视器显示以太网初始化状态和静态 IP 地址。

以太网静态 IP 串口输出

12_ETH_MAC_DHCP_StaticIP

本示例允许自定义 W5500 的 MAC 地址。程序优先通过 DHCP 获取 IP 地址;如果 DHCP 获取失败,则使用预设的静态 IP 地址,例如 192.168.1.177

运行效果

连接网线并烧录程序。串口监视器显示最终采用的 IP 地址。

DHCP 失败后使用静态 IP 的串口输出

13_ETH_Web_CAM

本示例通过板载 W5500 建立摄像头服务器,在以太网中提供实时图像。摄像头和 W5500 的接口定义分别参见 09_WIFI_Web_CAM10_ETH_DHCP

如果不使用 PoE 供电,无需连接外置 PoE 模块,可通过 USB Type-C 接口供电。

运行效果

串口监视器显示以太网连接状态、MAC 地址、IP 地址、链路速度和摄像头服务器地址。在同一网络的浏览器中访问服务器地址,可查看实时图像。

以太网摄像头和 PoE 模块连接

以太网摄像头网页效果

文档反馈

如在使用过程中遇到问题,欢迎留言反馈。