跳转到内容

Waveshare 电子纸显示

waveshare_epaper 显示平台允许你使用 Waveshare 销售的一些电子纸显示 配合 ESPHome。2.13” TTGO 模块 和 带 ESP32 的 Waveshare 云模块 也支持。根据 TTGO 板的具体修订版,你可能需要试用 -b73 或 -b1 版本(见下文)。 1.54” Good Display gdew0154m09 (用于 M5Stack Core Ink) 也支持。 其他供应商销售的类似模块可能也有效,但尚未测试。

目前,ESPHome 管理的大多数显示是单色电子墨水显示;但 ESPHome 也支持可显示多达 7 种颜色的电子墨水显示。

Waveshare 电子纸 2.9 英寸电子纸显示。
Waveshare 电子纸 7.3 英寸 ACeP 7 色电子纸显示。

ESPHome 为此集成选择的通信方式是 4 线 SPI,因为它是最稳定和高速的。因此你需要确保板卡设置为 4 线 SPI 模式,并在配置中有一个 spi: 部分。

电子纸引脚ESP 引脚ESPHome 选项
VCC3.3VN/A
GNDGNDN/A
CLK任意 GPIOspi.clk_pin
DIN任意 GPIOspi.mosi_pin
CS任意 GPIOcs_pin
DC任意 GPIOdc_pin
BUSY(可选)任意 GPIObusy_pin
RESET(可选)任意 GPIOreset_pin
# 示例配置条目
font:
- file: 'fonts/Comic Sans MS.ttf'
id: font1
size: 8
spi:
clk_pin: D0
mosi_pin: D1
display:
- platform: waveshare_epaper
cs_pin: D2
dc_pin: D3
busy_pin: D4
reset_pin: D5
model: 2.90in
full_update_every: 30
lambda: |-
it.print(0, 0, id(font1), "Hello World!");

对于 7 色显示,颜色可以在 lambda 函数中这样定义:

lambda: |-
const auto BLACK = Color(0, 0, 0, 0);
const auto RED = Color(255, 0, 0, 0);
const auto GREEN = Color(0, 255, 0, 0);
const auto BLUE = Color(0, 0, 255, 0);
const auto YELLOW = Color(255, 255, 0, 0);
const auto ORANGE = Color(255, 127, 0, 0);
const auto WHITE = Color(255, 255, 255, 0);
it.print(0, 0, id(font1), BLUE, "Hello World in blue!");
it.print(100, 100, id(font1), RED, "Hello World in red!");
  • cs_pin (必需, Pin Schema): CS 引脚。

  • dc_pin (必需, Pin Schema): DC 引脚。

  • model (必需): 电子纸显示的型号。可选值有:

    • 1.54in
    • 1.54inv2
    • 1.54inv2-b - 黑/白/红
    • 2.13in - 未测试
    • 2.13in-ttgo - T5_V2.3 已测试。也适用于 Wemos D1 Mini 电子纸屏蔽 2.13 1.0.0 “LOLIN”
    • 2.13in-ttgo-b73 - T5_V2.3 带 B73 显示已测试
    • 2.13in-ttgo-b74 - T5_V2.3.1 带 B74 显示已测试
    • 2.13in-ttgo-b1 - T5_V2.3 带 B1 显示已测试
    • 2.13in-ttgo-dke - T5_V2.3 带 DKE 组显示(DEPG0213BN)已测试
    • 2.13inv2 - 2.13in V2 显示(Pico 电子纸 2.13v2 和云模块)
    • 2.13inv3 - 2.13in V3 显示(Pico 电子纸 2.13v3)
    • 2.70in - 目前与 HAT Rev 2.1 版本不兼容
    • 2.70inv2
    • 2.70in-b - 黑/白/红
    • 2.70in-bv2 - 黑/白/红
    • 2.90in
    • 2.90in-dke
    • 2.90inv2
    • 2.90inv2-r2 - 2.9in V2 显示,但初始化和完整/局部显示刷新管理不同于 2.90inv2
    • 2.90in-b - 仅 B/W 渲染
    • 2.90in-bV3 - 仅 B/W 渲染
    • 4.20in
    • 4.20in-bV2 - 仅 B/W 渲染
    • gdey042t81 - GoodDisplay GDEY042T81 4.2” B/W
    • 4.20in-bV2-bwr - 启用 BWR 渲染(比 B/W 渲染使用的显示缓冲区 RAM 多一倍)
    • 5.83in
    • 5.83inv2
    • gdey0583t81 - GoodDisplay GDEY0583T81 5.83” B/W
    • 7.30in-f - 7.3in 7 色显示(黑、白、红、黄、蓝、绿、橙)
    • 7.50in
    • 7.50in-bV2 - 也支持 v3,仅 B/W 渲染
    • 7.50in-bV3 - 背面带”(V3)“贴纸的显示,仅 B/W 渲染
    • 7.50in-bV3-bwr - 背面带”(V3)“贴纸的显示,启用 BWR 渲染(比 B/W 渲染使用的显示缓冲区 RAM 多一倍)
    • 7.50in-bc - 背面带版本贴纸”(C)“的显示,仅 B/W 渲染
    • 7.50inV2 - 不能使用 ESP8266,因为内存不足
    • 7.50inV2alt(上述 7.50inV2 的替代版本)
    • 7.50inV2p - 支持局部刷新和快速刷新(仅适用于 2023 年 9 月后生产的 7.50inV2 型号)
    • 7.50in-hd-b - 不能使用 ESP8266,因为内存不足
    • gdey029t94 - GooDisplay GDEY029t94,用于 SeeedStudio 的单色 2.9 英寸显示
    • gdew029t5 - GooDisplay GDEW029T5,用于 AdaFruit MagTag 和 Pimoroni Badger
    • 1.54in-m5coreink-m09 - GoodDisplay gdew0154m09,用于 M5Stack Core Ink
    • 13.3in-k - 13.3in,K 型号,960x680,仅 B/W 渲染

WARNING

gdew0154m09、Waveshare 7.30in-f 和 Waveshare 7.50in V2 型号上的 BUSY 引脚必须反转,以防止显示永久损坏。在配置中设置 busy 引脚为 inverted: true。

  • busy_pin (可选, Pin Schema): BUSY 引脚。默认为未连接。

  • reset_pin (可选, Pin Schema): RESET 引脚。默认为未连接。 如果未连接到 GPIO 引脚,请确保将该引脚拉高(通过电阻连接到 3.3V)。 2.13” B74 和 V2 显示变体需要复位引脚。

  • rotation (可选): 设置显示的旋转角度。你在 lambda: 中绘制的一切都将 根据此选项进行旋转。可选值为 0°(默认)、90°、180°、270°。

  • full_update_every (可选, int): 电子纸显示有两种切换到下一幅图像的模式:只更改已更改像素的 局部更新,以及先清除整个显示然后重绘图像的完整更新模式。前者要快得多且效果更好,但每隔一段时间需要完整更新 因为伪影会累积。在 1.54in、1.54inv2、2.13in、2.13inv2、2.90in、2.90inv2、7.50inV2p 和 gdew029t5 型号上,你可以选择使用此选项 每隔 x 次进行一次完整重绘。在所述型号上默认为 30,其他型号默认为完整更新。

  • reset_duration (可选, Time): 显示复位操作的持续时间。默认为 200ms。 将此值设置为 2ms 可能解决较新的电子纸驱动模块(如 Rev 2.1)的问题。

  • lambda (可选, lambda): 用于在显示上渲染内容的 lambda。 更多信息请参见 显示渲染引擎。

  • update_interval (可选, Time): 重新绘制屏幕的间隔。默认为 1s,使用 never 仅通过 component.update 手动更新屏幕。

  • pages (可选, list): 显示页面而非单个 lambda。请参见 显示页面。

  • spi_id (可选, ID): 如果你想 使用多个 SPI 总线,请手动指定 SPI 组件 的 ID。

  • id (可选, ID): 手动指定用于代码生成的 ID。