Skip to main content

XIAO ePaper 显示板 EE04 入门指南

XIAO ePaper 显示板 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 用户按钮

电子纸板选择指南

产品电子纸显示板 EE04电子纸分线板电子纸驱动板
处理器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 的数字相框,可以显示来自智能家居网络的图像。

硬件概述

tip

此版本的 XIAO ePaper 显示板(ESP32-S3)- EE04 不支持 NFC 功能。

支持的电子纸

24 针连接器

tip

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

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

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

50 针连接器

tip

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

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

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

软件概述

安装 Seeed GFX 库

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

之后,转到 Tools -> Board -> XIAO ESP32S3Tools -> Port -> 选择您的开发板连接的端口。然后点击 Upload 上传代码。

现在您将在电子纸屏幕上看到反馈!以下是 Helloworld 示例的结果。

tip

⚠️ 注意:电子纸电缆方向 将电子纸显示屏连接到 XIAO 电子纸显示板时,请确保 FPC 电缆插入方向正确。

⚠️ 不要反向连接器!倒置插入电缆可能导致电子纸无法显示甚至损坏屏幕/开发板。 下图显示了正确的连接:

XIAO 电子纸显示板(ESP32-S3) - EE04 上的用户按钮

EE04 具有三个用户可编程按钮,可用于各种控制目的。本节演示如何使用 Arduino 读取按钮状态并响应按钮按下。

在 EE04 上,三个按钮连接到 XIAO ESP32-S3 Plus:

KEY1KEY2KEY3
GPIO2_D1/A1GPIO3_D2/A2GPIO5_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
}

XIAO 电子纸显示板(ESP32-S3) - EE04 上的用户电池

使用电池供电时:

  • 设备将在刷新之间自动进入低功耗模式

  • 电池寿命取决于刷新频率(在默认设置下,满电通常可使用 3 个月)

  • 当电池电量低于 20% 时,设备将在右上角显示低电量图标

tip

如果您想自己编写代码来读取电池电压,在 analogRead() 函数之前添加 10ms 延迟会更精确。

#define VOLTAGE_PIN A0 //GPIO1
#define ADC_ENABLE_PIN A5 //GPIO6

void setup() {
Serial.begin(115200);
delay(10);

pinMode(VOLTAGE_PIN, INPUT);
pinMode(ADC_ENABLE_PIN, OUTPUT);
digitalWrite(ADC_ENABLE_PIN , HIGH);
}


void loop() {
analogReadResolution(12);
int adcValue = analogRead(VOLTAGE_PIN);
float voltage = (adcValue / 4096.0) *7.16;
Serial.print("ADC Value: ");
Serial.print(adcValue);
Serial.print(" Voltage: ");
Serial.print(voltage, 3);
Serial.println(" V");
delay(10);
}

在 XIAO 电子纸显示板 (ESP32-S3) - EE04 上显示自定义图像

在 GFX 库中找到 Bitmap 示例并选择它。

请注意,您需要在项目目录中创建一个 driver.h 文件。详细信息,点击了解更多。

接下来,导航到 SenseCraft HMI 工具 https://sensecraft.seeed.cc/hmi/tools/dither 并上传您希望显示的图像。

上传图像后,生成 C 数组(图像数据)。

复制数组内容。注意只复制十六进制数据,不要包含任何无关字符。

tip

如果您的显示屏上的颜色与原始设计相比出现反转,请在生成代码之前在 HMI 工具中选择 Invert Colors 选项。

覆盖 Arduino 草图中 image.c 或 image.h 文件中的现有数组。

最后,将程序上传到您的 XIAO ESP32-S3。您现在应该看到您的自定义图像显示在电子纸屏幕上。

资源

技术支持与产品讨论

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

Loading Comments...