跳转到内容

SSD1325/7 OLED 显示

ssd1325_spi 显示平台允许你使用 ESPHome 的 SSD1325(数据手册、 Adafruit)。注意此 组件用于通过 4 线 SPI 总线 连接的显示。

SSD1325 OLED 显示

将 CLK、DIN、CS、DC 和 RST 连接到 ESP 的引脚。对于电源,连接 VCC 到 3.3V 和 GND 到 GND。注意显示 PCB 背面的两个跳线电阻可能需要移动,以使显示进入 SPI 模式。 Adafruit 有一份 指南 解释了如何做到这一点(如果需要的话)。

# 示例配置条目
spi:
clk_pin: D5
mosi_pin: D7
display:
- platform: ssd1325_spi
model: "SSD1325 128x64"
reset_pin: D0
cs_pin: D8
dc_pin: D1
lambda: |-
it.print(0, 0, id(font), "Hello World!");
  • model (必需): 显示的型号。可选值有:

    • SSD1325 128x32 - 128 列 32 行的 SSD1325
    • SSD1325 128x64
    • SSD1325 96x16
    • SSD1325 64x48
  • dc_pin (必需, Pin Schema): DC 引脚。

  • reset_pin (可选, Pin Schema): RESET 引脚。

  • cs_pin (可选, Pin Schema): ESP 上 CS 线连接的引脚。 如果这是 SPI 总线上唯一的设备,CS 线可以连接到 GND。

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

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

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

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

要利用此显示模块的灰度功能,请在你的 YAML 配置中添加一个 color: 部分; 更多信息请参见 颜色。由于这是灰度显示,它只使用白色颜色 元素,如下所示。

在 lambda 中使用灰度:

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

引入灰度图像:

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

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

注意,如果使用 type: BINARY,图像将作为二进制图像渲染(无灰度);此时, 可以将颜色属性传递给 image() 方法,如下所示:

image:
- platform: file
file: "image.jpg"
id: my_image
resize: 120x120
type: BINARY
...
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)。可以由另一个变量定义,以便在代码中可调整。