跳转到内容

SSD1306 OLED 显示

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

SSD1306 OLED 显示

将 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 行的 SSD1306
    • SSD1306 128x64
    • SSD1306 96x16
    • SSD1306 72x40
    • SSD1306 64x48
    • SH1106 128x32
    • SH1106 128x64
    • SH1106 96x16
    • SH1106 64x48
    • SH1107 128x64
    • SH1107 128x128
    • SSD1305 128x32
    • SSD1305 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。

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

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

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

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

NOTE

为了加速显示更新过程,你可以选择更高的 I²C 频率。

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

SSD1306 OLED 显示

将 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 128x64
    • SSD1306 96x16
    • SSD1306 72x40
    • SSD1306 64x48
    • SH1106 128x32
    • SH1106 128x64
    • SH1106 96x16
    • SH1106 64x48
    • SH1107 128x64
    • SH1107 128x128
    • SSD1305 128x32
    • SSD1305 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。

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

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

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

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

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