Skip to main content

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 EE04ePaper BreakoutePaper Driver Board
处理器XIAO ESP32-S3 PlusXIAO 系列XIAO 系列
兼容的电子纸显示屏24 针电子纸
50 针电子纸
24 针电子纸24 针电子纸
电子纸连接器FPC 24 针,0.5mm
FPC 50 针,0.5mm
FPC 24 针 0.5mmFPC 24 针 0.5mm
电池连接器JST 2.0mm/JST 2.0mm
开关电池电源开/关/电池电源开/关
按钮1x 复位按钮
3x 用户按钮
//
扩展 IO 端口/连接其他控制器连接额外传感器

应用场景

  • 智能家居仪表板:显示实时信息,如天气更新、日历事件和来自各种智能家居设备的通知。
  • 能耗监控:显示智能电表的能耗数据,帮助房主更有效地跟踪和管理能源使用。
  • 安全警报:显示安全事件的警报和通知,如运动检测或门窗传感器激活。
  • 智能恒温器显示:显示温度和湿度水平,以及智能恒温器的控制设置。
  • 数字相框:创建支持 WiFi 的数字相框,可以显示来自智能家居网络的图像。

硬件概述

支持的电子墨水屏

24 针连接器

tip

使用 XIAO ePaper Display Board 时,请确保根据电子纸显示屏类型设置跳线:

  • 对于 24 针电子纸显示屏 → 将跳线设置为 24 针

⚠️ 使用错误的跳线设置可能导致电子纸无法显示或显示异常内容。在通电前请务必仔细检查跳线位置。

50 针连接器

tip

使用 XIAO ePaper Display Board 时,请确保根据电子纸显示屏类型设置跳线:

  • 对于 50 针电子纸显示屏 → 将跳线设置为 50 针

⚠️ 使用错误的跳线设置可能导致电子纸无法显示或显示异常内容。在通电前请务必仔细检查跳线位置。

软件概述

安装 Seeed Arduino GFX 库

步骤 3. 安装 Seeed Arduino LCD 库

tip

此库与 TFT 库具有相同功能但不兼容。如果您已安装 TFT 库或其他类似的显示库,请先卸载它们。

从 GitHub 下载并安装 Seeed GFX 库。

向下滚动并打开此链接。

选择您的设备类型,它将生成一些代码。复制这些代码,我们稍后会使用它们。

tip

如果您选择错误,屏幕将不显示任何内容。

所以请确保您的设备或组件类型正确。

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

有 4 个基本示例,打开您喜欢的基本示例:

  1. Bitmap:显示位图图像。
  2. Clock:显示时钟。
  3. Clock_digital:显示数字时钟。
  4. 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 示例的结果。

tip

⚠️ 注意:电子纸电缆方向 将电子纸显示屏连接到 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
}

资源

技术支持与产品讨论

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...