电子墨水屏 SPI 显示屏
epaper_spi 显示平台提供了一种新的电子墨水屏显示组件架构,具有改进的状态管理和非阻塞操作。该组件实现了基于队列的状态机,消除了对 busy 引脚的阻塞等待,并与 ESPHome 的异步架构更好地集成。
通信方式使用 SPI,因此您需要在配置中有一个 spi: 部分。
该驱动支持多种显示屏,还有针对带有集成显示屏的 ESP32 开发板的特定配置。对于这些开发板,预定义的配置将设置正确的引脚和显示屏尺寸。
display: - platform: epaper_spi model: Seeed-reTerminal-E1002 lambda: |- it.filled_circle(it.get_width() / 2, it.get_height() / 2, 50, Color::BLACK);支持的显示控制器
Section titled “支持的显示控制器”以下是支持的控制器芯片。仅使用芯片名称作为型号需要完整配置,包括指定的引脚和尺寸。
| 芯片名称 | 制造商 | 产品描述 |
|---|---|---|
| JD79660 | Jadard | https://www.tdytech.com/en/ (B2B,请参考供应商) |
| Spectra-E6 | Eink | https://www.eink.com/brand/detail/Spectra6 |
| SSD1677 | Solomon | https://www.solomon-systech.com/product/ssd1677/ |
支持的显示屏面板
Section titled “支持的显示屏面板”这些型号代表具有已知尺寸但没有微控制器的显示屏面板。配置需要指定用于连接显示屏的引脚。
| 显示名称 | 制造商 | 产品描述 |
|---|---|---|
| Waveshare-1.54in-G | Waveshare | https://www.waveshare.com/1.54inch-e-paper-g.htm |
| Waveshare-2.13in-v3 | Waveshare | https://www.waveshare.com/pico-epaper-2.13.htm |
| Waveshare-4.26in | Waveshare | https://www.waveshare.com/4.26inch-e-paper.htm |
支持的集成显示屏开发板
Section titled “支持的集成显示屏开发板”这些型号对应于与微控制器集成的显示屏,具有完整的预定义配置,因此最少只需配置型号名称。如果需要,其他选项可以在配置中覆盖。
| 型号名称 | 制造商 | 产品描述 |
|---|---|---|
| Seeed-reTerminal-E1002 | Seeed Studio | https://www.seeedstudio.com/reTerminal-E1002-p-6533.html |
| Seeed-ee04-mono-4.26 | Seeed Studio | Seeed EE04 开发板配备 Waveshare 4.26” 单色电子墨水屏。https://www.seeedstudio.com/XIAO-ePaper-Display-Board-EE04-p-6560.html |
使用定义集成显示屏开发板的型号时,大多数配置(如引脚和尺寸)将默认设置,但如果需要可以覆盖。
-
model (必填):电子墨水屏的型号。请参阅上表了解选项(大小写不敏感)。
-
cs_pin (必填, 引脚模式):CS 引脚。集成开发板已预定义。
-
dc_pin (必填, 引脚模式):DC 引脚。集成开发板已预定义。
-
busy_pin (可选, 引脚模式):BUSY 引脚(如使用)。
-
reset_pin (可选, 引脚模式):RESET 引脚(如使用)。 如果未连接到 GPIO 引脚,请确保将此引脚拉高(通过电阻连接到 3.3V)。
-
dimensions (必填, dict):屏幕尺寸,指定为 宽度 x 高度(如
320x240)或使用单独的配置键。对于具有完整预定义配置的集成开发板,这是可选的,并将由所选型号预设。尺寸以像素为单位指定,宽度和高度必须大于 0。- height (必填, int):指定显示屏高度。
- width (必填, int):指定显示屏宽度。
-
rotation (可选, int):设置显示屏的旋转。在
lambda:中绘制的所有内容都将被此选项旋转。可选0°(默认)、90°、180°、270°。 -
transform (可选, dict):如果
rotation不够用,使用此选项变换显示屏。选项为:- mirror_x (必填, 布尔值):如果为 true,镜像 x 轴。
- mirror_y (必填, 布尔值):如果为 true,镜像 y 轴。
-
reset_duration (可选, 时间):显示屏复位操作的持续时间。默认为
200ms。 -
pages (可选, 列表):显示页面而不是单个 lambda。详见显示页面。
-
update_interval (可选, 时间):重新绘制屏幕的间隔。默认为
60s, 使用never仅通过component.update手动更新屏幕。 -
full_update_every (可选, int):在支持部分更新的屏幕上,这设置强制完整更新之前的更新次数。默认为
1,即每次更新都是完整更新。 -
spi_id (可选, ID):如果您的配置定义了多个 SPI 总线,则需要指定 SPI 组件 的 ID。如果只配置了单个 SPI 总线,则这是可选的。
-
id (可选, ID):手动指定用于代码生成的 ID。
完整配置示例
Section titled “完整配置示例”display: - platform: epaper_spi model: SSD1677 full_update_every: 10 update_interval: 5s dimensions: width: 800 height: 480 transform: mirror_x: true mirror_y: false rotation: 90 # 旋转为竖屏 cs_pin: GPIOXX dc_pin: GPIOXX reset_pin: GPIOXX busy_pin: { number: GPIOXX, inverted: False, mode: { input: True, pulldown: True } }