Inkplate 5、6、10 和 6 Plus
一体化电子墨水屏显示屏 Inkplate 5、Inkplate 6、Inkplate 10 和 Inkplate 6 Plus。
Inkplate 5、6、10 和 6 Plus 是功能强大的、支持 Wi-Fi 的基于 ESP32 的六英寸电子墨水屏显示屏 - 由 Kindle 电子阅读器回收而来。其主要特点是简单易用。
了解更多信息请访问 Inkplate 文档网站
# 最小配置示例
mcp23017: - id: mcp23017_hub address: 0x20
display:- platform: inkplate id: inkplate_display greyscale: false partial_updating: false update_interval: 60s model: inkplate_6
ckv_pin: 32 sph_pin: 33 gmod_pin: mcp23xxx: mcp23017_hub number: 1 gpio0_enable_pin: mcp23xxx: mcp23017_hub number: 8 oe_pin: mcp23xxx: mcp23017_hub number: 0 spv_pin: mcp23xxx: mcp23017_hub number: 2 powerup_pin: mcp23xxx: mcp23017_hub number: 4 wakeup_pin: mcp23xxx: mcp23017_hub number: 3 vcom_pin: mcp23xxx: mcp23017_hub number: 5WARNING
使用 Inkplate 电子墨水屏模块时,上方的 GPIO 引脚编号不能更改,因为它们在模块/PCB 内部是硬连线的。
WARNING
如果启用了 3 位模式,Inkplate 模块无法执行部分更新。 在这种情况下,它会忽略函数调用。
-
id (可选, ID):手动指定用于代码生成的 ID。
-
model (可选, 枚举):指定型号。默认为
inkplate_6。inkplate_6inkplate_10inkplate_6_plusinkplate_6_v2inkplate_5inkplate_5_v2
-
greyscale (可选, 布尔值):使屏幕显示 3 位颜色。默认为
false -
partial_updating (可选, 布尔值):使屏幕部分更新,速度更快,但会留下残影。默认为
false -
custom_waveform (可选, int):为显示屏设置自定义预定义波形。接受 1 到 4 的值。如果图像的灰度看起来太淡,这很有用。仅限 Inkplate10。默认为
0 -
full_update_every (可选, int):启用部分更新时,在选定次数的更新后强制进行全屏刷新。默认为
10 -
transform (可选):变换显示屏显示。
- flip_y (可选, 布尔值):在 Y 轴上翻转屏幕。默认为
false - flip_x (可选, 布尔值):在 X 轴上翻转屏幕。默认为
false
- flip_y (可选, 布尔值):在 Y 轴上翻转屏幕。默认为
-
update_interval (可选, 时间):重新绘制屏幕的间隔。默认为
5s。 -
pages (可选, 列表):显示页面而不是单个 lambda。详见显示页面。
-
ckv_pin (必填, 引脚):Inkplate 显示屏的 CKV 引脚。
-
gmod_pin (必填, 引脚):Inkplate 显示屏的 GMOD 引脚。
-
gpio0_enable_pin (必填, 引脚):Inkplate 显示屏的 GPIO0 使能引脚。
-
oe_pin (必填, 引脚):Inkplate 显示屏的 OE 引脚。
-
powerup_pin (必填, 引脚):Inkplate 显示屏的 Powerup 引脚。
-
sph_pin (必填, 引脚):Inkplate 显示屏的 SPH 引脚。
-
spv_pin (必填, 引脚):Inkplate 显示屏的 SPV 引脚。
-
vcom_pin (必填, 引脚):Inkplate 显示屏的 VCOM 引脚。
-
cl_pin (可选, 引脚):Inkplate 显示屏的 CL 引脚。 默认为 GPIO0。
-
le_pin (可选, 引脚):Inkplate 显示屏的 LE 引脚。 默认为 GPIO2。
-
display_data_0_pin (可选, 引脚):Inkplate 显示屏的 Data 0 引脚。 默认为 GPIO4。
-
display_data_1_pin (可选, 引脚):Inkplate 显示屏的 Data 1 引脚。 默认为 GPIO5。
-
display_data_2_pin (可选, 引脚):Inkplate 显示屏的 Data 2 引脚。 默认为 GPIO18。
-
display_data_3_pin (可选, 引脚):Inkplate 显示屏的 Data 3 引脚。 默认为 GPIO19。
-
display_data_4_pin (可选, 引脚):Inkplate 显示屏的 Data 4 引脚。 默认为 GPIO23。
-
display_data_5_pin (可选, 引脚):Inkplate 显示屏的 Data 5 引脚。 默认为 GPIO25。
-
display_data_6_pin (可选, 引脚):Inkplate 显示屏的 Data 6 引脚。 默认为 GPIO26。
-
display_data_7_pin (可选, 引脚):Inkplate 显示屏的 Data 7 引脚。 默认为 GPIO27。
Inkplate 6 完整示例
Section titled “Inkplate 6 完整示例”以下是一个完整的 YAML 配置示例,除了常规的 Wi-Fi、API 和 OTA 配置外,还做了一些其他事情。
# 配置示例esphome: name: inkplate
esp32: board: esp-wrover-kit cpu_frequency: 240MHz
logger:
wifi: ssid: !secret wifi_ssid password: !secret wifi_password ap: {}
captive_portal:
ota: platform: esphome
api:
switch: - platform: restart name: "Inkplate Reboot" id: reboot
- platform: gpio id: battery_read_mosfet pin: mcp23xxx: mcp23017_hub number: 9 inverted: true
- platform: template name: "Inkplate Greyscale mode" lambda: return id(inkplate_display).get_greyscale(); turn_on_action: - lambda: id(inkplate_display).set_greyscale(true); turn_off_action: - lambda: id(inkplate_display).set_greyscale(false);
- platform: template name: "Inkplate Partial Updating" lambda: return id(inkplate_display).get_partial_updating(); turn_on_action: - lambda: id(inkplate_display).set_partial_updating(true); turn_off_action: - lambda: id(inkplate_display).set_partial_updating(false);
sensor: - platform: adc id: battery_voltage update_interval: never attenuation: 12db pin: 35 - platform: template name: "Inkplate Battery Voltage" lambda: |- id(battery_read_mosfet).turn_on(); delay(1); float adc = id(battery_voltage).sample(); id(battery_read_mosfet).turn_off(); return adc; filters: - multiply: 2
i2c:
mcp23017: - id: mcp23017_hub address: 0x20
binary_sensor: - platform: status name: "Inkplate Status" id: system_status
- platform: gpio name: "Inkplate Touch Pad 1" pin: mcp23xxx: mcp23017_hub number: 10 - platform: gpio name: "Inkplate Touch Pad 2" pin: mcp23xxx: mcp23017_hub number: 11 - platform: gpio name: "Inkplate Touch Pad 3" pin: mcp23xxx: mcp23017_hub number: 12
time: - platform: sntp id: esptime
font: - file: "Helvetica.ttf" id: helvetica_96 size: 96 - file: "Helvetica.ttf" id: helvetica_48 size: 48
psram:
display:- platform: inkplate id: inkplate_display greyscale: false partial_updating: false update_interval: 60s
ckv_pin: 32 sph_pin: 33 gmod_pin: mcp23xxx: mcp23017_hub number: 1 gpio0_enable_pin: mcp23xxx: mcp23017_hub number: 8 oe_pin: mcp23xxx: mcp23017_hub number: 0 spv_pin: mcp23xxx: mcp23017_hub number: 2 powerup_pin: mcp23xxx: mcp23017_hub number: 4 wakeup_pin: mcp23xxx: mcp23017_hub number: 3 vcom_pin: mcp23xxx: mcp23017_hub number: 5
lambda: |- it.fill(COLOR_ON);
it.print(100, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_LEFT, "ESPHome");
it.strftime(400, 300, id(helvetica_48), COLOR_OFF, TextAlign::CENTER, "%Y-%m-%d", id(esptime).now()); it.strftime(400, 400, id(helvetica_96), COLOR_OFF, TextAlign::CENTER, "%H:%M", id(esptime).now());
if (id(system_status).state) { it.print(700, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_RIGHT, "Online"); } else { it.print(700, 100, id(helvetica_48), COLOR_OFF, TextAlign::TOP_RIGHT, "Offline"); }Inkplate 6 Plus 触摸屏
Section titled “Inkplate 6 Plus 触摸屏”Inkplate 6 Plus 内置 ESPHome 支持的触摸屏。请注意,您需要启用 mcp23017 上的引脚 12 以启用触摸屏 以下是带有触摸屏电源开关的配置示例:
switch: - platform: gpio name: 'Inkplate Touchscreen Enabled' restore_mode: ALWAYS_ON pin: mcp23xxx: mcp23017_hub number: 12 inverted: true
touchscreen: - platform: ektf2232 interrupt_pin: GPIO36 rts_pin: mcp23xxx: mcp23017_hub number: 10 on_touch: - logger.log: format: "touch x=%d, y=%d" args: ['touch.x', 'touch.y']Inkplate 6 Plus 背光
Section titled “Inkplate 6 Plus 背光”Inkplate 6 Plus 内置 ESPHome 支持的背光。 以下是配置示例:
power_supply: - id: backlight_power keep_on_time: 0.2s enable_time: 0s pin: mcp23xxx: mcp23017_hub number: 11
output: - platform: mcp47a1 id: backlight_brightness_output power_supply: backlight_power
light: - platform: monochromatic output: backlight_brightness_output id: backlight default_transition_length: 0.2s name: '${friendly_name} Backlight'Inkplate 6 v2
Section titled “Inkplate 6 v2”Inkplate 6 v2 的配置略有不同。主要区别在于它使用 pca6416a 而不是 mcp23017。 以下是配置示例:
# 最小配置示例pca6416a: - id: pca6416a_hub address: 0x20
display:- platform: inkplate id: inkplate_display greyscale: true partial_updating: false update_interval: never model: inkplate_6_v2
ckv_pin: 32 sph_pin: 33 gmod_pin: pca6416a: pca6416a_hub number: 1 gpio0_enable_pin: pca6416a: pca6416a_hub number: 8 oe_pin: pca6416a: pca6416a_hub number: 0 spv_pin: pca6416a: pca6416a_hub number: 2 powerup_pin: pca6416a: pca6416a_hub number: 4 wakeup_pin: pca6416a: pca6416a_hub number: 3 vcom_pin: pca6416a: pca6416a_hub number: 5Inkplate 5
Section titled “Inkplate 5”Inkplate 5 的配置与 inkplate 6 v2 几乎相同。 以下是配置示例:
# 最小配置示例pca6416a: - id: pca6416a_hub address: 0x20
display:- platform: inkplate id: inkplate_display greyscale: true partial_updating: false update_interval: never model: inkplate_5 # 或 inkplate_5_v2
ckv_pin: 32 sph_pin: 33 gmod_pin: pca6416a: pca6416a_hub number: 1 gpio0_enable_pin: pca6416a: pca6416a_hub number: 8 oe_pin: pca6416a: pca6416a_hub number: 0 spv_pin: pca6416a: pca6416a_hub number: 2 powerup_pin: pca6416a: pca6416a_hub number: 4 wakeup_pin: pca6416a: pca6416a_hub number: 3 vcom_pin: pca6416a: pca6416a_hub number: 5Inkplate 10
Section titled “Inkplate 10”Inkplate 10 的配置与 5 和 6 类似,只是它有 2 个扩展器,而且电池读取 MOSFET 不反向。此外,某些版本有嵌入式 RTC 来辅助时钟同步。 以下是配置示例:
time: - platform: pcf85063 id: esptime # 除非外部 RTC 比内部时钟精确得多,否则不需要重复同步 update_interval: never - platform: homeassistant # 相反,尝试通过网络重复同步... on_time_sync: then: # ...并在同步成功时更新 RTC pcf85063.write_time:
pca6416a: - id: pca6416a_hub address: 0x20 # 显示控制和附加 I/O 的主扩展器 - id: pca6416a_hub2 address: 0x21 # 附加 I/O 的次扩展器
switch: - platform: gpio id: battery_read_mosfet pin: pca6416a: pca6416a_hub number: 9
sensor: - platform: adc id: battery_voltage update_interval: never attenuation: 12db pin: 35 - platform: template name: "Inkplate Battery Voltage" unit_of_measurement: "V" accuracy_decimals: 3 lambda: |- // 启用 MOSFET 以连接电池分压器 id(battery_read_mosfet).turn_on(); // 等待电压稳定 delay(5); // 采样 ADC 值 float adc = id(battery_voltage).sample(); // 关闭 MOSFET 以省电 id(battery_read_mosfet).turn_off(); return adc; filters: - multiply: 2 # 补偿分压器(1:2 比例)
display: - platform: inkplate id: inkplate_display greyscale: true partial_updating: false update_interval: never model: inkplate_10
ckv_pin: 32 sph_pin: 33 gmod_pin: pca6416a: pca6416a_hub number: 1 gpio0_enable_pin: pca6416a: pca6416a_hub number: 8 oe_pin: pca6416a: pca6416a_hub number: 0 spv_pin: pca6416a: pca6416a_hub number: 2 powerup_pin: pca6416a: pca6416a_hub number: 4 wakeup_pin: pca6416a: pca6416a_hub number: 3 vcom_pin: pca6416a: pca6416a_hub number: 5