跳转到内容

SSD1327 OLED 显示屏

ssd1327_i2c 显示平台允许您在 ESPHome 中使用 SSD1327(数据手册Waveshare)显示屏。请注意,此组件适用于通过 I²C 总线连接的显示屏。如果您的 SSD1327 通过 4 线 SPI 总线连接,请参阅 SPI 接口

SSD1327 OLED 显示屏

将 CLK 连接到您为 I²C 总线选择的 SCL(时钟)引脚,将 DIN 连接到 SDA(数据)引脚。对于电源,将 VCC 连接到 3.3V,GND 连接到 GND。您也可以将 RESET 引脚连接到 ESP 上的可用引脚;建议这样做,因为它可以提高可靠性。

# 配置示例
i2c:
sda: D1
scl: D2
display:
- platform: ssd1327_i2c
model: "SSD1327 128x128"
reset_pin: D0
address: 0x3D
lambda: |-
it.print(0, 0, id(font), "Hello World!");
  • model (必填):显示屏型号。目前只有一个选项可用:

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

  • address (可选, int):手动指定显示屏的 I²C 地址。默认为 0x3D。

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

  • brightness (可选, 百分比):设置显示屏亮度百分比。默认为 100%

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

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

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

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

NOTE

要加快显示更新过程,可以选择更高的 I²C 频率。

ssd1327_spi 显示平台允许您在 ESPHome 中使用 SSD1327(数据手册Adafruit) 显示屏。请注意,此组件适用于通过 4 线 SPI 总线连接的显示屏。 如果您的 SSD1327 通过 I²C 总线连接,请参阅 I²C 接口

SSD1327 OLED 显示屏

将 CLK 连接到您为 SPI 总线选择的 SCK(时钟)引脚,将 DIN 连接到 MOSI/SDO 引脚,并将 DC 连接到您选择的另一个引脚。CS 可以连接到 ESP 上的引脚,或者如果显示屏是连接到 SPI 总线的唯一设备,则可以连接到地。对于电源,将 VCC 连接到 3.3V,GND 连接到 GND。您也可以将 RESET 引脚连接到 ESP 上的可用引脚;建议这样做,因为它可以提高可靠性。

# 配置示例
spi:
clk_pin: D0
mosi_pin: D1
display:
- platform: ssd1327_spi
model: "SSD1327 128x128"
cs_pin: D2
dc_pin: D3
reset_pin: D4
lambda: |-
it.print(0, 0, id(font), "Hello World!");
  • model (必填):显示屏型号。目前只有一个选项可用:

    • SSD1327 128x128
  • cs_pin (**必填”, 引脚模式):片选 (CS) 引脚。

  • dc_pin (**必填”, 引脚模式):DC 引脚。

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

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

  • brightness (可选, 百分比):设置显示屏亮度百分比。默认为 100%

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

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

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

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

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

要利用此显示模块的灰度功能,请在 YAML 配置中添加 color: 部分; 有关更多详细信息,请参阅 color。由于这是灰度显示屏,它仅使用白色颜色元素,如下所示。

要在 lambda 中使用灰度:

color:
- id: medium_gray
white: 50%
...
display:
...
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height(), id(medium_gray));

要引入灰度图像:

image:
- file: "image.jpg"
id: my_image
resize: 120x120
type: GRAYSCALE
...
display:
...
lambda: |-
it.image(0, 0, id(my_image));

在这种情况下,图像将被转换为灰度(无论其原始格式如何),并在显示时以此方式渲染。请注意,原始图像可能需要一些调整,因为并非所有图像都能立即很好地转换为此显示屏支持的 4 位灰度格式。

请注意,如果省略 type: GRAYSCALE,图像将渲染为二进制图像(无灰度);在这种情况下,可以将颜色属性传递给 image() 方法,如下所示:

image:
- file: "image.jpg"
id: my_image
resize: 120x120
...
display:
...
lambda: |-
it.image(0, 0, id(medium_gray), id(my_image));

这将使用给定的灰色阴影绘制完整的图像。

要在代码中根据需要创建新颜色:

display:
...
lambda: |-
float white_intensity = 0.5;
Color variable_gray(0, 0, 0, white_intensity);
it.rectangle(0, 0, it.get_width(), it.get_height(), variable_gray);

Color 构造函数的最后一个参数是白色元素的强度;它是一个百分比(值范围为 0 到 1)。它可以由另一个变量定义,以便在代码中可调整。