XIAO ePaper Display EE04 入门指南
XIAO ePaper Display Board EE04 |
---|
![]() |
介绍
由 XIAO ESP32-S3 Plus 驱动,显示板 EE04 支持 24 针和 50 针电子纸显示屏。它配备 JST 2.0 mm 电池连接器和电源开关、内置充电 IC,并配有一个复位按钮和三个用户按钮。非常适合低功耗电子纸项目,如数字标牌、电子标签和便携式信息板。
特性
- 由 XIAO ESP32-S3 Plus 驱动: 连接兼容的电子纸显示屏后即可立即工作。
- 多功能显示支持: 兼容多种电子纸屏幕,支持 24 针和 50 针接口,通过跳线帽轻松切换。
- 带开关的电池连接器: 提供简单的电池连接并集成开关,实现高效的电源管理和节能。
- 用户友好的按钮: 包括 1 个复位按钮和 3 个用户可编程按钮,为项目加速和可定制功能提供灵活性。
规格参数
参数 | 描述 |
---|---|
处理器 | XIAO ESP32-S3 Plus |
电子纸连接器 | FPC 24 针 0.5mm FPC 50 针 0.5mm |
电池连接器 | JST 2.0mm |
开关 | 电池电源开/关 |
电源供应 | - 3.7V 锂电池 - USB Type-C |
按钮 | - 1x 复位按钮 - 3x 用户按钮 |
电子纸板选择指南
产品 | ePaper Display Board EE04 | ePaper Breakout | ePaper Driver Board |
---|---|---|---|
处理器 | XIAO ESP32-S3 Plus | XIAO 系列 | XIAO 系列 |
兼容的电子纸显示屏 | 24 针电子纸 50 针电子纸 | 24 针电子纸 | 24 针电子纸 |
电子纸连接器 | FPC 24 针,0.5mm FPC 50 针,0.5mm | FPC 24 针 0.5mm | FPC 24 针 0.5mm |
电池连接器 | JST 2.0mm | / | JST 2.0mm |
开关 | 电池电源开/关 | / | 电池电源开/关 |
按钮 | 1x 复位按钮 3x 用户按钮 | / | / |
扩展 IO 端口 | / | 连接其他控制器 | 连接额外传感器 |
应用场景
- 智能家居仪表板:显示实时信息,如天气更新、日历事件和来自各种智能家居设备的通知。
- 能耗监控:显示智能电表的能耗数据,帮助房主更有效地跟踪和管理能源使用。
- 安全警报:显示安全事件的警报和通知,如运动检测或门窗传感器激活。
- 智能恒温器显示:显示温度和湿度水平,以及智能恒温器的控制设置。
- 数字相框:创建支持 WiFi 的数字相框,可以显示来自智能家居网络的图像。
硬件概述

支持的电子墨水屏
24 针连接器
- 1.54 英寸电子纸 - 点阵 200x200
- 2.13 英寸电子纸 - 柔性单色 212x104
- 2.13 英寸电子纸 - 四色 212x104
- 2.9 英寸电子纸 - 单色 128x296
- 2.9 英寸电子纸 - 四色 128x296
- 4.2 英寸电子纸 - 单色 400x300
- 4.26 英寸电子纸 - 单色 800x480
- 5.65 英寸电子纸 - 七色 600x480
- 5.83 英寸电子纸 - 单色 648x480
- 7.5 英寸电子纸 - 单色 800x480
- 7.5 英寸电子纸 - 三色 800x480

使用 XIAO ePaper Display Board 时,请确保根据电子纸显示屏类型设置跳线:
- 对于 24 针电子纸显示屏 → 将跳线设置为 24 针
⚠️ 使用错误的跳线设置可能导致电子纸无法显示或显示异常内容。在通电前请务必仔细检查跳线位置。
50 针连接器

使用 XIAO ePaper Display Board 时,请确保根据电子纸显示屏类型设置跳线:
- 对于 50 针电子纸显示屏 → 将跳线设置为 50 针
⚠️ 使用错误的跳线设置可能导致电子纸无法显示或显示异常内容。在通电前请务必仔细检查跳线位置。
软件概述
安装 Seeed Arduino GFX 库
步骤 3. 安装 Seeed Arduino LCD 库
此库与 TFT 库具有相同功能但不兼容。如果您已安装 TFT 库或其他类似的显示库,请先卸载它们。
从 GitHub 下载并安装 Seeed GFX 库。

向下滚动并打开此链接。

选择您的设备类型,它将生成一些代码。复制这些代码,我们稍后会使用它们。
如果您选择错误,屏幕将不显示任何内容。
所以请确保您的设备或组件类型正确。

下载库后,转到 Sketch -> Include Library -> Add .ZIP Library 并选择下载的库。

有 4 个基本示例,打开您喜欢的基本示例:
- Bitmap:显示位图图像。
- Clock:显示时钟。
- Clock_digital:显示数字时钟。
- Shape:随机显示不同大小的文字和形状。

入门指南
这里,我们以 5.83 英寸显示屏为例。所有 24 针屏幕的步骤都相同;唯一的区别是在驱动程序中选择适当的屏幕尺寸。
创建一个新的 "driver.h" 文件并将这些代码粘贴到其中。代码应该如下所示:

#define BOARD_SCREEN_COMBO 503 // 5.86 inch monochrome ePaper Screen (UC8179)
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04
之后,转到 工具 -> 开发板 -> XIAO ESP32S3 和 工具 -> 端口 -> 选择您的开发板连接的端口。然后点击 上传 来上传代码。

现在您将在电子纸屏幕上看到反馈!以下是 Helloworld 示例的结果。
⚠️ 注意:电子纸电缆方向 将电子纸显示屏连接到 XIAO 电子纸显示板时,请确保 FPC 电缆插入方向正确。
⚠️ 不要反向连接!倒置插入电缆可能导致电子纸无法显示,甚至损坏屏幕/开发板。 下图显示了正确的连接方式:

XIAO 电子纸显示板上的用户按钮
EE04 具有三个用户可编程按钮,可用于各种控制目的。本节演示如何使用 Arduino 读取按钮状态并响应按钮按下。
在 EE04 上,三个按钮连接到 ESP32-S3:
- KEY1 (GPIO2_D1/A1)
- KEY2 (GPIO3_D2/A2)
- KEY3 (GPIO5_D4/A4)
所有按钮都是低电平有效,这意味着按下时读取为 LOW,释放时读取为 HIGH。
基本按钮读取示例
此示例演示如何检测按钮按下并向串行监视器打印消息。

// reTerminal E Series - Button Test
// Based on hardware schematic
// Define button pins according to schematic
const int BUTTON_KEY0 = 2; // KEY0 - GPIO2
const int BUTTON_KEY1 = 3; // KEY1 - GPIO3
const int BUTTON_KEY2 = 5; // KEY2 - GPIO5
// Button state variables
bool lastKey0State = HIGH;
bool lastKey1State = HIGH;
bool lastKey2State = HIGH;
void setup() {
// Initialize serial communication
Serial.begin(115200);
while (!Serial) {
delay(10); // Wait for serial port to connect
}
Serial.println("=================================");
Serial.println("Press any button to see output");
Serial.println();
// Configure button pins as inputs
// Hardware already has pull-up resistors, so use INPUT mode
pinMode(BUTTON_KEY0, INPUT_PULLUP);
pinMode(BUTTON_KEY1, INPUT_PULLUP);
pinMode(BUTTON_KEY2, INPUT_PULLUP);
// Read initial states
lastKey0State = digitalRead(BUTTON_KEY0);
lastKey1State = digitalRead(BUTTON_KEY1);
lastKey2State = digitalRead(BUTTON_KEY2);
Serial.println("Setup complete. Ready to detect button presses...");
}
void loop() {
// Read current button states
bool key0State = digitalRead(BUTTON_KEY0);
bool key1State = digitalRead(BUTTON_KEY1);
bool key2State = digitalRead(BUTTON_KEY2);
// Check KEY1
if (key0State != lastKey0State) {
if (key0State == LOW) {
Serial.println("KEY0 (GPIO2) pressed!");
} else {
Serial.println("KEY0 (GPIO2) released!");
}
lastKey0State = key0State;
delay(50); // Debounce delay
}
// Check KEY2
if (key1State != lastKey1State) {
if (key1State == LOW) {
Serial.println("KEY1 (GPIO3) pressed!");
} else {
Serial.println("KEY1 (GPIO3) released!");
}
lastKey1State = key1State;
delay(50); // Debounce delay
}
// Check KEY3
if (key2State != lastKey2State) {
if (key2State == LOW) {
Serial.println("KEY2 (GPIO5) pressed!");
} else {
Serial.println("KEY2 (GPIO5) released!");
}
lastKey2State = key2State;
delay(50); // Debounce delay
}
delay(10); // Small delay to prevent excessive CPU usage
}
资源
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。