reflex4
Project FeatureFile 02 / 05

04.02 / E-INK RSS / WORKING PROTOTYPE

PaperColor
RSS Reader

在电子纸上,看看自己订阅的新闻。

这是一个基于 M5Stack PaperColor 的中文 RSS 阅读器。 它把订阅源里的标题和摘要存到 SD 卡上,用实体按键翻看,遇到感兴趣的文章,再拿手机扫码读原文。

彩色光影落在桌面上,PaperColor 显示着 RSS 新闻列表。
桌面一角

把订阅的新闻留在桌面上,有空时看一眼。

01

起点

为什么把 RSS 放到电子纸上

这个项目想尝试一种简单的阅读方式:选好几个关心的信息源,把更新留在桌面上的一块屏幕里,有空时看一眼。

01

自己选择信息源

把常读的网站加入订阅,设备就按这些来源更新。打开列表时,看到的是自己选过的内容。

02

放在桌面上慢慢看

电子纸在休眠时仍能保留画面。读到一半放下,屏幕上的新闻还在那里。

03

感兴趣了再读原文

先在设备上看标题和摘要,再决定要不要继续。每篇文章都保留了 RSS 提供的链接。

02

阅读

先从五条新闻看起

每个订阅源有一张列表,显示前五条新闻。标题最多排三行,遇到中文长标题,也尽量留出足够的阅读空间。

PaperColor 正面实拍:爱范儿订阅源下的五条中文新闻,顶部显示电量与更新状态。
列表页

同一个来源的五条新闻。拍摄时,上次更新时间还显示为 UNKNOWN。

  1. 01
    按来源分开阅读

    按下切换键就能换到下一个订阅源,不会把不同来源混在一张列表里。

  2. 02
    让中文标题读得清楚

    中文字体从 SD 卡加载;列表省去新闻编号,把空间留给文字。

  3. 03
    一眼认出正在读什么

    来源名称放在顶部,下面用红绿细线分隔,像一张小报纸的报头。

  4. 04
    知道上次更新的时间

    顶部还会显示电量、距上次更新的时间,以及休眠后的自动更新提示。

03

操作

用三个按键完成阅读

电子纸刷新需要时间,所以选择新闻时先用提示音反馈,确认打开后才更新画面。切换来源和返回列表也由按键完成。

设备背面上半部,印有顶部 G1、右侧 G9 和 G10 的按键标识。
背面视角

机身背面标出了三个按键:顶部 G1,右侧从上到下是 G9、G10。这里的左右以照片为准。

G10

选一条新闻

连续按下,在五条新闻间循环选择,并用递增的提示音反馈。

G1

打开或返回

选好后按下打开详情,再按一次回到列表。

G9

切换订阅源

短按查看下一个来源;长按两秒打开管理热点。

如果选到一半停下来,十秒后会取消选择。下次可以重新开始。

04

原文

想接着读,就用手机扫一扫

从标题和摘要,读到完整文章。

打开一条新闻后,详情页会显示来源、标题和 RSS 自带的摘要。标题最多排四行,方便看清较长的中文标题。

想继续阅读时,用手机扫描下方的二维码,就能打开条目里的链接。如果订阅源给的是搜索链接,页面也会注明。

标题和摘要已经存在 SD 卡里,设备离线时仍可查看;完整网页则交给手机打开。

PHOTO SLOT 04 / 详情页示意
详情页

这里将展示真实的标题、摘要与原文二维码。当前图案不可扫描。

05

设置

在手机上设置网络和订阅

长按 G9 后,设备会开启一个临时热点。手机连上它,就可以在浏览器里修改设置,不用在电子纸上逐个输入文字。

管理页

真实管理页截图稍后补充。

01

添加常读的网站

填入 RSS 地址,最多保存五个 HTTPS 订阅源,以后也可以在这里替换。

02

选择连接的网络

可以配置企业 Wi-Fi,也可以填写普通 Wi-Fi 或手机热点的名称和密码。后两者的实机兼容性仍待验证。

03

检查能否正常更新

保存后可以测试网络连接,或单独抓取一个订阅源,确认配置是否有效。

04

准备中文字体

管理页可以查看 SD 卡状态,并把中文字体上传到卡里,供设备显示标题和正文。

关于网络凭据的保存

目前这台开发设备会把 Wi-Fi 凭据保存在未加密的 NVS 存储区中。企业 Wi-Fi 的服务器证书与域名校验也还没有完成,因此暂不适合用于对凭据安全要求较高的环境。

06

缓存与休眠

新闻存下来,断网后也能看

每次更新后,设备会把内容保存到 SD 卡。下面是固件设定的工作流程;休眠、按键唤醒和定时更新的完整周期仍在验证中。

  1. 00
    获取更新

    开机尝试联网;定时唤醒时依次更新订阅源。

  2. 01
    保存新闻

    先写好新内容,再替换旧缓存。

  3. 02
    离线阅读

    阅读、切换源,必要时扫码看原文。

  4. 05m
    暂时休眠

    五分钟没有操作,就关闭 Wi-Fi、指示灯与扬声器。

  5. 30m
    再次更新

    休眠三十分钟后,定时唤醒并刷新订阅。

更新失败时 上一次保存的新闻会继续保留,不会因为一次断网就变成空白列表。

07

实现

这些功能是怎样连起来的

手机管理页负责保存配置,ESP32-S3 负责联网和解析 RSS,SD 卡保存新闻与字体。阅读时,设备从缓存中取出内容,再绘制到电子纸上。

01管理页LOCAL UI
02NVS 配置SETTINGS
03Wi-FiPEAP / PERSONAL
04RSS 2.0HTTPS
05SD 快照ATOMIC CACHE
06电子纸 / QRREAD / HANDOFF
主控
ESP32-S3 / M5Stack PaperColor / 8 MiB PSRAM
固件
ESP-IDF v5.5.1 / M5Unified / M5GFX
内容
RSS 2.0 / HTTPS / 512 KiB 有界响应缓冲
缓存
FAT32 microSD / 原子替换
联网
PEAP/MSCHAPv2 / WPA2–WPA3 Personal
字体
SD 卡运行时 VLW 中文字体
显示
竖屏 / 540 × 590 px 安全可见区
省电
5 分钟空闲深睡 / 30 分钟 RTC 刷新
08

进展

接下来还要做什么

基本的阅读功能已经做出来了,接下来需要继续检查不同网络下的使用情况,以及休眠后能否稳定恢复。下面分别列出已有结果、待验证的部分和后续计划。

DONE

已完成

  • 企业 Wi-Fi 真实设备 20/20 联网验证
  • 本地管理页、RSS 保存与抓取
  • 离线列表/详情、中文字体与原文二维码
  • 实体按键、RGB 与扬声器反馈
VERIFY

正在验证

  • 普通密码 Wi-Fi / 手机热点实机兼容性
  • 深度休眠、按键唤醒和定时刷新完整周期
  • 不同 RSS 源的二维码目标与长标题版式
NEXT

下一步

  • Atom 与 RSS 条件请求
  • 更多文章、列表分页与阅读历史
  • RSS 封面图下载、缩放与 SD 缓存
  • RADIUS CA 与服务器域名验证
目前的范围

目前支持 RSS 2.0,详情页只显示订阅源提供的摘要。Atom、图片和更多文章的缓存还在后续计划中。续航与耗电尚未完成实测,暂时没有可以公开的数字。