跳转到内容

ST7567 LCD 图形显示屏

st7567 显示平台允许您在 ESPHome 中使用基于 Sitronix ST7567 芯片组系列(ST7567A、ST7567S、ST7567G 等)(数据手册Sitronix)的各种 128x64 显示模块。

请注意,此组件适用于通过 I²C 总线(请参阅 I²C 接口)或 3 线或 4 线 SPI 总线(请参阅 SPI 接口)连接的显示屏。 这是一种单色 LCD 图形显示屏。

基于 ST7567A 的 LCD 图形显示屏 (I²C)

NOTE

电压: 检查您模块的规格以了解所需的电源。大多数模块可以容忍 3.3V 到 5V 的电压范围,但有些可能需要 5V 或 3.3V。

电气干扰: 为了减少噪声引起的故障,数据手册建议”以指定的间隔定期使用刷新序列”。

没有人知道确切的间隔是多少——它根据您的电气环境而变化——例如,有些人可能每小时需要一次。 如果不执行刷新序列,LCD 上的图像在一段时间后可能会出现故障。

您可以通过使用 interval: 部分并调用 request_refresh() 函数来计划刷新,之后它将在下次组件更新时执行显示刷新序列。

将模块上的 SDASCL 引脚连接到您为 I²C 总线选择的引脚。 如果您的显示模块有 RESET 引脚,您可以选择将其连接到 ESP 上的引脚,这可能会提高可靠性。对于电源,将 VCC 连接到 3.3V,GND 连接到 GND

# 最小配置示例
i2c:
sda: D1
scl: D2
display:
- platform: st7567_i2c
id: my_display
lambda: |-
it.print(0, 0, id(my_font), "Hello World!");
interval:
- interval: 1h
then:
- lambda: id(my_display).request_refresh();
  • address (可选, int):手动指定显示屏的 I²C 地址。默认为 0x3F。

  • i2c_id (可选, ID):如果要使用多个 I²C 总线,手动指定 I²C 组件 的 ID。

  • reset_pin (可选, 引脚模式):RESET 引脚。默认为未连接。

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

  • update_interval (可选, 时间):重新绘制屏幕的间隔。默认为 1s

  • pages (可选, 列表):显示页面而不是单个 lambda。详见显示页面

  • lambda (可选, lambda):用于在显示屏上渲染内容的 lambda。

  • invert_colors (可选, 布尔值):显示屏硬件颜色反转。默认为 false

  • rotation (可选):设置显示屏旋转。您在 lambda: 中绘制的所有内容都将被此选项旋转。可选 (默认)、90°180°270°

  • transform (可选):使用硬件变换显示屏显示。所有默认值均为 false

    • mirror_x (可选, 布尔值):如果为 true,镜像物理 X 轴。
    • mirror_y (可选, 布尔值):如果为 true,镜像物理 Y 轴。

加速总线: 要加快显示更新过程,可以选择更高的 I²C 频率,例如:

# 提高I²C 总线速度示例
i2c:
sda: D1
scl: D2
frequency: 400kHz

硬件旋转: 180 度旋转可以在硬件中实现,如下例所示:

# 使用 transform 部分通过硬件实现 180° 旋转示例
display:
- platform: st7567_i2c
id: my_display
transform:
mirror_x: true
mirror_y: true
lambda: |-
it.print(0, 0, id(my_font), "Hello World!");

D0 连接到您为 SPI 总线选择的 CLK 引脚,将 D1 连接到 MOSI 引脚,将 DCCS 连接到 ESP 上的某些 GPIO 引脚。对于电源,将 VCC 连接到 3.3V,GND 连接到 GND。 可选地,您也可以将 RESET 引脚连接到 ESP 上的引脚,这可能会提高可靠性。

# 最小配置示例
spi:
clk_pin: D1
mosi_pin: D2
display:
- platform: st7567_spi
id: my_display
dc_pin: D3
lambda: |-
it.print(0, 0, id(my_font), "Hello World!");
interval:
- interval: 1h
then:
- lambda: id(my_display).request_refresh();
  • dc_pin (**必填”, 引脚模式):DC 引脚。

  • cs_pin (可选, 引脚模式):片选 (CS) 引脚。

  • reset_pin (可选, 引脚模式):RESET 引脚。默认为未连接。

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

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

  • update_interval (可选, 时间):重新绘制屏幕的间隔。默认为 1s

  • pages (可选, 列表):显示页面而不是单个 lambda。详见显示页面

  • lambda (可选, lambda):用于在显示屏上渲染内容的 lambda。

  • invert_colors (可选, 布尔值):显示屏硬件颜色反转。默认为 false

  • rotation (可选):设置显示屏旋转。您在 lambda: 中绘制的所有内容都将被此选项旋转。可选 (默认)、90°180°270°

  • transform (可选):使用硬件变换显示屏显示。所有默认值均为 false

    • mirror_x (可选, 布尔值):如果为 true,镜像物理 X 轴。
    • mirror_y (可选, 布尔值):如果为 true,镜像物理 Y 轴。

硬件旋转: 180 度旋转可以在硬件中实现,如下例所示:

# 使用 transform 部分通过硬件实现 180° 旋转示例
display:
- platform: st7567_spi
id: my_display
dc_pin: D3
transform:
mirror_x: true
mirror_y: true
lambda: |-
it.print(0, 0, id(my_font), "Hello World!");