SSD1327 OLED 显示
通过 I²C
Section titled “通过 I²C”ssd1327_i2c 显示平台允许你使用 ESPHome 的
SSD1327(数据手册、
Waveshare)。注意,此组件用于
通过 I²C 总线 连接的显示。如果你的 SSD1327 通过 4 线
SPI 总线 连接,请参见 通过 SPI。

将 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 (可选, Pin Schema): RESET 引脚。默认为未连接。
-
address (可选, int): 手动指定显示的 I²C 地址。默认为 0x3D。
-
rotation (可选): 设置显示的旋转角度。你在
lambda:中绘制的一切都将 根据此选项进行旋转。可选值为0°(默认)、90°、180°、270°。 -
brightness (可选, percentage): 以百分比设置显示亮度。默认为
100% -
update_interval (可选, Time): 重新绘制屏幕的间隔。默认为
5s。 -
pages (可选, list): 显示页面而非单个 lambda。请参见 显示页面。
-
id (可选, ID): 手动指定用于代码生成的 ID。
NOTE
为了加速显示更新过程,你可以选择更高的 I²C 频率。
通过 SPI
Section titled “通过 SPI”ssd1327_spi 显示平台允许你使用 ESPHome 的
SSD1327(数据手册、Adafruit)。注意,此组件用于通过 4 线 SPI 总线 连接的显示。
如果你的 SSD1327 通过 I²C 总线 连接,请参见 通过 I²C。

将 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 (必需, Pin Schema): 片选(CS)引脚。
-
dc_pin (必需, Pin Schema): DC 引脚。
-
reset_pin (可选, Pin Schema): RESET 引脚。默认为未连接。
-
rotation (可选): 设置显示的旋转角度。你在
lambda:中绘制的一切都将 根据此选项进行旋转。可选值为0°(默认)、90°、180°、270°。 -
brightness (可选, percentage): 以百分比设置显示亮度。默认为
100% -
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)。可以由另一个变量定义,以便在代码中可调整。