M5Paper 是基于 ESP32 的低功耗电子墨水屏开发板,搭载 960×540 分辨率 IT8951E 控制器墨水屏,内置 GT911 电容式触控面板,支持两点触控与手势操作。
在前两篇中,我已通过外部驱动模块完成 IT8951E 墨水屏适配,并实现了触摸屏、RTC 时钟、温湿度传感器等基础功能配置。本文将在此基础上实现两项核心功能:一是将 Home Assistant 中其他设备的传感器数据同步显示在 M5Paper 墨水屏上,二是借助 BM8563 RTC 芯片实现深度睡眠,测试设备在满电状态下的实际续航与功耗表现。
1、Home Assistant 传感器数据
ESPHome 可通过原生 API 读取 Home Assistant 内的实体状态与属性值并生成本地传感器,不过该方式仅支持数字类型数据。基于此,我将 Home Assistant 中常用的温湿度、电量、功率等数值类传感器接入 ESPHome,方便在墨水屏上直观展示。
① 温湿度计:分别接入小米温湿度计与青萍温湿度计的温度、湿度数据
# 小米温湿度计
- platform: homeassistant
name: xiaomi temperature
entity_id: sensor.cleargras_cn_blt_3_u5c2qgggk400_dk1_temperature_p_2_1
id: xiaomi_temp
unit_of_measurement: "°C"
- platform: homeassistant
name: xiaomi humidity
id: xiaomi_humi
entity_id: sensor.cleargras_cn_blt_3_u5c2qgggk400_dk1_relative_humidity_p_2_2
# 青萍温湿度计
- platform: homeassistant
name: qingping temperature
entity_id: sensor.cgllc_cn_blt_3_1mitqg1roc800_dove_temperature_p_2_1
id: qp_temp
unit_of_measurement: "°C"
- platform: homeassistant
name: qingping humidity
id: qp_humi
entity_id: sensor.cgllc_cn_blt_3_1mitqg1roc800_dove_relative_humidity_p_2_2
② 冰箱温度:添加冰箱两路温度传感器数据
# 冰箱温度
- platform: homeassistant
name: icebox temp01
entity_id: sensor.viomi_cn_246891354_u37_temperature_p_3_1
id: icebox_temp01
unit_of_measurement: "°C"
- platform: homeassistant
name: icebox temp02
entity_id: sensor.viomi_cn_246891354_u37_temperature_p_4_1
id: icebox_temp02
unit_of_measurement: "°C"
③ 排插功率:同步排插的实时功率与累计用电量
# 排插功率2、深度睡眠与功耗测试
- platform: homeassistant
name: cmpower power
entity_id: sensor.cmpower_w1_270cee_24_gong_lu
id: cmpower_power
unit_of_measurement: "W"
- platform: homeassistant
name: total power
entity_id: sensor.cmpower_w1_270cee_29_zong_dian_liang
id: total_power
unit_of_measurement: "Wh"
ESPHome 的 deep_sleep 组件可让 ESP32 在完成任务后自动进入深度睡眠模式以降低功耗,支持定时、GPIO、触摸等多种唤醒方式。需要注意的是,这里的触摸唤醒仅支持 ESP32 自带硬件触摸引脚,并非外接 GT911 这类触摸屏唤醒。为最大化延长续航,我未启用任何触摸相关功能,仅采用 RTC 定时唤醒方案:设备睡眠 10 分钟,唤醒后运行 30 秒完成网络连接、数据同步与屏幕刷新,之后再次进入睡眠。
① 深度睡眠配置:基于 BM8563 RTC 芯片实现精准定时唤醒,设定唤醒后运行 30 秒,足够完成 WiFi 连接、HA 数据同步和墨水屏刷新,随后睡眠 10 分钟。
# 深度睡眠配置(基于 BM8563 RTC 定时唤醒)
deep_sleep:
id: deep_sleep_10min
run_duration: 30s # 唤醒后最多运行 30 秒(足够完成联网+刷新)
sleep_duration: 10min # 睡眠 10 分钟
② 唤醒后动作(启动动作):设备开机启动后,优先从 RTC 读取时间,等待 WiFi 与 Home Assistant API 连接成功,稍作延时后刷新墨水屏,待屏幕刷新完成立即进入深度睡眠,减少无效耗电。
# ESPHome 核心配置3、编译与烧录
esphome:
name: ${device_name}
friendly_name: ${friendly_name}
min_version: 2025.5.0 # 要求的最低 ESPHome 版本
name_add_mac_suffix: true # 在设备名后附加 MAC 地址,避免多设备冲突
on_boot:
- priority: 600 # 高优先级
then:
- bm8563.read_time:
id: rtc_time # 从 RTC 读取当前时间
- priority: -100
then:
- wait_until: wifi.connected # 等待 WiFi 连接成功
- wait_until: api.connected # 等待 Home Assistant API 连接成功
- delay: 5s # 额外等待 5 秒
- component.update: m5paper_display
- delay: 3s # 留出屏幕刷新完成时间
- deep_sleep.enter: deep_sleep_10min # 进入深度睡眠
参考上一篇《》
4、测试效果本次测试从 4 月 7 日 20:40 开始,M5Paper 按照每 10 分钟唤醒一次的策略运行,每次唤醒后同步数据并刷新屏幕,直至 4 月 11 日 8:40,累计连续运行 3 .5天(84 小时),仍有15%的电量。








M5PAPER搭载 1150mAh 锂电池,在本次测试中的续航表现较好。对于大尺寸电子墨水屏、ESP32 主控外加 RTC 与触控芯片的设备来说,这个续航已满足日常壁挂温湿度显示类场景使用,大致三天一充即可稳定运行。
我要赚赏金
