Waveshare 电子纸显示屏
waveshare_epaper 显示平台允许您在 ESPHome 中使用 Waveshare 销售的一些电子纸显示屏。2.13 英寸 TTGO 模块和板载 ESP32 的 Waveshare 云模块也受支持。根据您的 TTGO 板的具体版本,您可能需要尝试 -b73 或 -b1 版本(见下文)。
M5Stack Core Ink 中使用的 1.54 英寸 Good Display gdew0154m09 也受支持。
其他供应商销售的类似模块也可能工作,但尚未经过测试。
目前,Esphome 管理的大多数显示屏是单色电子墨水屏;但 Esphome 也支持能够显示多达 7 种颜色的电子墨水屏。
ESPHome 为此集成选择的通信方式是 4 线 SPI,因为它最稳定且高速。因此,您需要确保您的板设置为 4 线 SPI 模式,并在配置中有 spi: 部分。
| 电子纸引脚 | ESP 引脚 | ESPHome 选项 |
|---|---|---|
VCC | 3.3V | N/A |
GND | GND | N/A |
CLK | 任意 GPIO | spi.clk_pin |
DIN | 任意 GPIO | spi.mosi_pin |
CS | 任意 GPIO | cs_pin |
DC | 任意 GPIO | dc_pin |
BUSY(可选) | 任意 GPIO | busy_pin |
RESET(可选) | 任意 GPIO | reset_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 (**必填”, 引脚模式):CS 引脚。
-
dc_pin (**必填”, 引脚模式):DC 引脚。
-
model (必填):电子纸显示屏的型号。选项有:
1.54in1.54inv21.54inv2-b- 黑/白/红2.13in- 未测试2.13in-ttgo- T5_V2.3 已测试。也适用于 Wemos D1 Mini ePaper Shield 2.13 1.0.0 “LOLIN”2.13in-ttgo-b73- 带 B73 显示屏的 T5_V2.3 已测试2.13in-ttgo-b74- 带 B74 显示屏的 T5_V2.3.1 已测试2.13in-ttgo-b1- 带 B1 显示屏的 T5_V2.3 已测试2.13in-ttgo-dke- 带 DKE group 显示屏 (DEPG0213BN) 的 T5_V2.3 已测试2.13inv2- 2.13 英寸 V2 显示屏 (Pico e-Paper 2.13v2 和云模块)2.13inv3- 2.13 英寸 V3 显示屏 (Pico e-Paper 2.13v3)2.70in- 目前不适用于 HAT Rev 2.1 版本2.70inv22.70in-b- 黑/白/红2.70in-bv2- 黑/白/红2.90in2.90in-dke2.90inv22.90inv2-r2- 2.9 英寸 V2 显示屏,但具有与2.90inv2不同的初始化和全/部分显示刷新管理2.90in-b- 仅 B/W 渲染2.90in-bV3- 仅 B/W 渲染4.20in4.20in-bV2- 仅 B/W 渲染gdey042t81- GoodDisplay GDEY042T81 4.2 英寸 B/W4.20in-bV2-bwr- 启用 BWR 渲染(显示缓冲区使用的 RAM 量是 B/W 渲染的两倍)5.83in5.83inv2gdey0583t81- GoodDisplay GDEY0583T81 5.83 英寸 B/W7.30in-f- 7.3 英寸 7 色显示屏(黑、白、红、黄、蓝、绿和橙)7.50in7.50in-bV2- 也支持 v3,仅 B/W 渲染7.50in-bV3- 背面有 ‘(V3)’ 贴纸的显示屏,仅 B/W 渲染7.50in-bV3-bwr- 背面有 ‘(V3)’ 贴纸的显示屏,启用 BWR 渲染(显示缓冲区使用的 RAM 量是 B/W 渲染的两倍)7.50in-bc- 背面有版本贴纸 ‘(C)’ 的显示屏,仅 B/W 渲染7.50inV2- 无法在 ESP8266 上使用,因为 RAM 不足7.50inV2alt(上述7.50inV2的替代版本)7.50inV2p- 支持部分刷新和快速刷新(仅适用于 2023 年 9 月之后制造的7.50inV2型号)7.50in-hd-b- 无法在 ESP8266 上使用,因为 RAM 不足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.3 英寸,K 型号,960x680,仅 B/W 渲染
WARNING
gdew0154m09、Waveshare 7.30in-f 和 Waveshare 7.50in V2 型号上的 BUSY 引脚必须反转以防止永久性显示屏损坏。在配置中将 busy 引脚设置为 inverted: true。
-
busy_pin (可选, 引脚模式):BUSY 引脚。默认为未连接。
-
reset_pin (可选, 引脚模式):RESET 引脚。默认为未连接。 如果未连接到 GPIO 引脚,请确保将此引脚拉高(通过电阻连接到 3.3V)。 2.13 英寸 B74 和 V2 显示屏变体需要 reset 引脚。
-
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 (可选, 时间):显示屏重置操作的持续时间。默认为
200ms。 将此值设置为2ms可能会解决较新电子纸驱动模块(例如 Rev 2.1)的问题。 -
update_interval (可选, 时间):重新绘制屏幕的间隔。默认为
1s,使用never仅通过component.update手动更新屏幕。 -
pages (可选, 列表):显示页面而不是单个 lambda。详见显示页面。
-
id (可选, ID):手动指定用于代码生成的 ID。