SSD1306 OLED 显示
通过 I²C
Section titled “通过 I²C”ssd1306_i2c 显示平台允许你使用 ESPHome 的
SSD1306(数据手册、
Adafruit)、SSD1305(数据手册)、
SH1107(数据手册、
Adafruit)
和 SH1106(数据手册、
electrodragon)。注意,此组件用于通过 I²C 总线 连接的显示。
如果你的 SSD1306/SSD1305 或 SH1106 通过 4 线 SPI 总线 连接,请参见 通过 SPI。

将 D2 连接到你为 I²C 总线 选择的 SCL 引脚,将 D1 连接到 SDA 引脚。对于电源,连接
VCC 到 3.3V,GND 到 GND。你还可以选择将 RESET 引脚连接到 ESP 的引脚,这可能
提高可靠性。
# 示例配置条目i2c: sda: D1 scl: D2
display: - platform: ssd1306_i2c model: "SSD1306 128x64" reset_pin: D0 address: 0x3C lambda: |- it.print(0, 0, id(font), "Hello World!");-
model (必需): 显示的型号。可选值有:
SSD1306 128x32- 128 列 32 行的 SSD1306SSD1306 128x64SSD1306 96x16SSD1306 72x40SSD1306 64x48SH1106 128x32SH1106 128x64SH1106 96x16SH1106 64x48SH1107 128x64SH1107 128x128SSD1305 128x32SSD1305 128x64
-
reset_pin (可选, Pin Schema): RESET 引脚。默认为未连接。
-
address (可选, int): 手动指定显示的 I²C 地址。默认为 0x3C。
-
rotation (可选): 设置显示的旋转角度。你在
lambda:中绘制的一切都将 根据此选项进行旋转。可选值为0°(默认)、90°、180°、270°。 -
contrast (可选, percentage): 以百分比设置显示对比度。默认为
100%。 -
brightness (可选, percentage): 以百分比设置显示亮度。仅可与 SSD1305 一起使用。默认为
100%。 -
external_vcc (可选, boolean): 如果将 VCC 引脚连接到外部电源,请设置为 true。 默认为
false。 -
flip_x (可选, boolean): 翻转屏幕的水平轴。默认为
true。 -
flip_y (可选, boolean): 翻转屏幕的垂直轴。默认为
true。 -
offset_x (可选, int): 如果某些水平像素缺失,请设置此选项。数字只能在
0~128之间。默认为0。 -
offset_y (可选, int): 如果某些垂直像素缺失,请设置此选项。数字只能在
0~128之间。默认为0。 -
invert (可选, boolean): 反转显示上所有像素状态。默认为
false。 -
update_interval (可选, Time): 重新绘制屏幕的间隔。默认为
1s。 -
pages (可选, list): 显示页面而非单个 lambda。请参见 显示页面。
-
id (可选, ID): 手动指定用于代码生成的 ID。
NOTE
为了加速显示更新过程,你可以选择更高的 I²C 频率。
通过 SPI
Section titled “通过 SPI”ssd1306_spi 显示平台允许你使用 ESPHome 的
SSD1306(数据手册、Adafruit)
和 SH1106(数据手册、
electrodragon)。注意,此组件用于通过 4 线 SPI 总线 连接的显示。
如果你的 SSD1306 或 SH1106 通过 I²C 总线 连接,请参见 通过 I²C。

将 D0 连接到你为 SPI 总线 选择的 CLK 引脚,将 D1 连接到 MOSI 引脚,并将 DC 和 CS
连接到 ESP 上的某些 GPIO 引脚。对于电源,连接
VCC 到 3.3V 和 GND 到 GND。你还可以选择将 RESET 引脚连接到 ESP 的引脚,这可能
提高可靠性。
# 示例配置条目spi: clk_pin: D0 mosi_pin: D1
display: - platform: ssd1306_spi model: "SSD1306 128x64" cs_pin: D2 dc_pin: D3 reset_pin: D4 lambda: |- it.print(0, 0, id(font), "Hello World!");TIP
由于多种原因(包括电气或射频干扰),显示内容可能会损坏。有人报告
在同一总线上混合使用具有不同 SPI 模式 的多个设备是导致问题的原因。虽然芯片数据手册表明 SSD1306 使用 MODE3,但其他(非 ESPHome)驱动成功
使用 MODE0 来访问显示。因此使用 spi_mode: MODE0 可能有助于减少故障。
-
model (必需): 显示的型号。可选值有:
SSD1306 128x32(128 列 32 行的 SSD1306)SSD1306 128x64SSD1306 96x16SSD1306 72x40SSD1306 64x48SH1106 128x32SH1106 128x64SH1106 96x16SH1106 64x48SH1107 128x64SH1107 128x128SSD1305 128x32SSD1305 128x64
-
cs_pin (必需, Pin Schema): 片选(CS)引脚。
-
dc_pin (必需, Pin Schema): DC 引脚。
-
reset_pin (可选, Pin Schema): RESET 引脚。默认为未连接。
-
rotation (可选): 设置显示的旋转角度。你在
lambda:中绘制的一切都将 根据此选项进行旋转。可选值为0°(默认)、90°、180°、270°。 -
contrast (可选, percentage): 以百分比设置显示对比度。默认为
100%。 -
brightness (可选, percentage): 以百分比设置显示亮度。仅可与 SSD1305 一起使用。默认为
100%。 -
external_vcc (可选, boolean): 如果将 VCC 引脚连接到外部电源,请设置为 true。 默认为
false。 -
flip_x (可选, boolean): 翻转屏幕的水平轴。默认为
true。 -
flip_y (可选, boolean): 翻转屏幕的垂直轴。默认为
true。 -
offset_x (可选, int): 如果某些水平像素缺失,请设置此选项。数字只能在
0~128之间。默认为0。 -
offset_y (可选, int): 如果某些垂直像素缺失,请设置此选项。数字只能在
0~128之间。默认为0。 -
invert (可选, boolean): 反转显示上所有像素状态。默认为
false。 -
update_interval (可选, Time): 重新绘制屏幕的间隔。默认为
1s。 -
pages (可选, list): 显示页面而非单个 lambda。请参见 显示页面。
-
id (可选, ID): 手动指定用于代码生成的 ID。