![[Ebook]ESP32S3护眼墨水屏掌机](https://image.lceda.cn/oshwhub/pullImage/55e36ed45f1c4f02b8b45133f98692ec.jpg)
[Ebook]ESP32S3护眼墨水屏掌机
简介
Ebook 是一款基于 ESP32-S3 的 2.7 寸墨水屏阅读器,支持触摸、拨码与 TF 卡扩展,内置阅读、音乐、天气、时钟等应用,采用自研 UI 框架,适合开源学习与产品二次开发。
简介:Ebook 是一款基于 ESP32-S3 的 2.7 寸墨水屏阅读器,支持触摸、拨码与 TF 卡扩展,内置阅读、音乐、天气、时钟等应用,采用自研 UI 框架,适合开源学习与产品二次开发。开源协议
:MIT License
描述
视频链接
配件链接
交流平台
QQ群聊:820311402
项目简介
Ebook 是基于 ESP32-S3 的 2.7 寸黑白墨水屏多功能阅读器:电容触摸 + 三档拨码快捷键 + TF 卡扩展,在自研 UI 框架(路由 / 合成 / 上屏)上运行阅读、记事本、音乐、天气等 12 款应用,支持 Wi-Fi 热点传文件、USB MSC 与 TF 卡导入,适合开源学习与二次开发。
| 项目 | 说明 |
|---|---|
| 开源仓库 | GitHub — CHENXiNNNX/Ebook |
| 固件版本 | Ebook-v1.1.2(见根目录 CMakeLists.txt → PROJECT_VER) |
| 开发框架 | ESP-IDF v5.4+ / v6.x,C++ |
| 交互路径 | 锁屏 → 主页 → 应用网格 → 子应用 |
项目功能
系统能力
- 锁屏:时间、日期、电量、每日金句;上滑解锁 / PIN 解锁
- 主页:在读摘要、快捷入口、「更多」应用列表
- 控制中心:Wi-Fi / 蓝牙 / 夜间模式 / 锁屏 / 省电(下滑状态栏)
- 拨码快捷键:阅读器 / 列表 / 全局三场景可配置翻页、返回、主页、亮度、音量等(设置 → 按键)
内置应用
| 应用 | 状态 | 功能概要 |
|---|---|---|
| 阅读 | 已发布 | TXT 书架、翻页、字号、进度记忆;扫描 Ebook/txt(/int + /sd) |
| 记事本 | 已发布 | 多文件 TXT 编辑;扫描 Ebook/notes(/int + /sd) |
| 相册 | 已发布 | JPEG 解码适配墨水屏;扫描 Ebook/photos(/int + /sd) |
| 画板 | 已发布 | 1-bit BMP 绘制与导出;目录 Ebook/drawings(优先 /int,可回退 /sd) |
| 音乐 | 已发布 | MP3 / WAV 流式播放;扫描 Ebook/music(/int + /sd) |
| 天气 | 已发布 | 高德 Web 服务:实况、预报、31 城、IP 定位 |
| 时钟 / 日历 | 已发布 | 大字时钟、闹钟、月历视图 |
| 电子木鱼 | 已发布 | 敲击计数与音效 |
| 文件管理 | 已发布 | /int(userdata)/ /sd / /assets 浏览 |
| 设置 | 已发布 | 网络、显示、按键、声音、时间、存储、安全、关于 |
| 更新 | 规划中 | 固件在线升级入口,对接双 OTA 分区 |
数据交换与存储
| 方式 | 说明 |
|---|---|
| 无线局域网 | 开启个人热点后,浏览器访问提示 IP(如 192.168.4.1),上传 / 下载 / 管理 /int 文件 |
| USB 大容量存储 | userdata 分区 TinyUSB MSC,接入 PC 可当 U 盘读写(暴露给 PC 时设备暂不可访问 /int) |
| TF 卡扩展 | SDMMC 4-bit,挂载 /sd,结构与内部盘相同 |
| 本地文件管理 | 浏览内部存储、TF 卡及系统资源分区 |
用户内容目录约定(固定子目录扫描,不全盘检索;/int 与 /sd 结构一致):
/int/Ebook/ /sd/Ebook/
├── txt/ ├── txt/ # 阅读
├── music/ ├── music/ # 音乐
├── photos/ ├── photos/ # 相册
├── notes/ ├── notes/ # 记事本
└── drawings/ └── drawings/ # 画板导出(会话缓存仅写 /int)
设备内「新建」默认优先写 /int;大容量书籍 / 音乐 / 照片建议放 TF 卡。详细说明见仓库 assets/fat_userdata/README.txt。
天气配置:idf.py menuconfig → Ebook Configuration → 高德API Key,在 lbs.amap.com 申请 Web 服务 Key(开通「天气查询」「IP 定位」)。
项目参数
| 类别 | 规格 |
|---|---|
| 主控 | ESP32-S3,240 MHz,Octal PSRAM,16 MB Flash(QIO) |
| 显示屏 | GDEY027T91,2.7",竖屏 176×264,1 bit 黑白,SPI,SSD1680 |
| 触摸 | FT6336U,I2C,点击 / 滑动 |
| 音频 | ES8311 + I2S,MP3 / WAV;板载预留麦克风接口 |
| IMU | QMI8658A(I2C,固件预留扩展) |
| 存储 | userdata 约 6 MB(FAT,挂载 /int)+ assets 4 MB(LittleFS /assets)+ TF 卡 /sd |
| 输入 | ADC 三档拨码(GPIO15) |
| 电源 | 约 500 mAh / 3.7 V 锂电,GPIO6 ADC 采样,低电量省电提示 |
| 无线 | Wi-Fi STA、BLE(NimBLE)、个人热点 |
| 刷新 | 全刷 / 快刷 / 局刷,路由边表可配置 |
分区与烧录偏移以 partitions/partition_16mb.csv 及发布包内 FLASH.md 为准(应用区约 2.94 MB×2,assets @ 0x600000,userdata @ 0xA00000)。
原理解析(硬件说明)
整机由 电源与充电、ESP32-S3 主控、墨水屏与前光、触摸与拨码、音频、TF 卡、USB、IMU 等模块组成。固件通过 BSP 封装 GPIO / I2C / SPI / I2S / SDMMC,应用层不直接操作引脚。
系统框图
锂电池 → 电源管理 → ESP32-S3
├─ SPI → GDEY027T91 + PWM 前光
├─ I2C → FT6336U / ES8311 / QMI8658A
├─ I2S → ES8311 → 功放 → 扬声器(麦克风已预留)
├─ SDMMC → TF 卡
├─ USB → Type-C 烧录(GPIO19/20)
├─ UART0 → 调试日志(GPIO43/44)
└─ ADC → 电池电压、三档拨码
关键电路
供电切换电路

默认电池供电;插入 Type-C 后自动切换 USB 供电并为电池充电。
墨水屏驱动电路

适配 2.7 寸墨水屏,兼容触摸与前光接口;R27 可调电阻可在硬件上限制前光最高亮度。
音频电路

板载扬声器用于音乐播放;麦克风接口已预留,便于后续扩展语音类应用。
结构与 PCB
整机结构

后壳 → 主板 → 电池/支架 → 墨水屏模组 → 前壳
主板俯视图

整机组装
首先准备PCB
依次连接屏幕排线,从右往左依次是屏幕排线、前光排线、触摸排线
当然兼容不带触摸或者不带前光版本的屏幕,可自行选择

焊接喇叭并穿过屏幕排线

焊接电池排线注意不要焊接反了哦

开始组装
1,首先确认板子烧录,是否启动正常,然后准备好打印的外壳

2,放入屏幕,推向外壳一边底部

3,放入压板,覆盖在屏幕上方

4,接下来翻转扣下PCB,注意电池排线不要被压着,可以用双面胶固定一下电池,然后把喇叭放在出声孔处

5,最后盖上后壳,先插入底部然后向前推,紧贴屏幕和压板,然后扣下上半部分即可完成

模块与引脚
| 功能 | GPIO |
|---|---|
| I2C SDA / SCL | 2 / 1 |
| I2S MCLK / SCLK / LRCK / DI / DO | 41 / 40 / 39 / 42 / 38 |
| 功放使能 | 7 |
| 屏 MOSI / SCLK / CS / DC / RST / BUSY | 3 / 46 / 9 / 10 / 11 / 12 |
| 前光 PWM | 17 |
| 触摸 RST / INT | 18 / 5 |
| TF D0–D3 / CLK / CMD / CD | 14 / 13 / 45 / 48 / 21 / 47 / 4 |
| 拨码 ADC | 15 |
| 电池 ADC | 6 |
引脚定义与 main/bsp/config/config.hpp 保持一致。
软件代码
仓库:https://github.com/CHENXiNNNX/Ebook
目录摘要
Ebook/
├── main/app/ebook/ # UI 框架、路由、12 个 App
├── main/app/network/ # Wi-Fi / BLE(连接层)
├── main/app/protocol/ # HTTP / NTP / WebSocket / file_server
├── main/app/system/ # Task / Power / Event / Info
├── main/bsp/ # 屏、触摸、音频、电池驱动
├── main/common/ # 存储、OTA 等公共模块
├── assets/ # 字库、IME、热点网页;fat_userdata 出厂目录
├── partitions/ # 16 MB / 8 MB 分区表
├── patches/ # managed_components 补丁
└── scripts/ # package_firmware.py 打包脚本
启动流程
app_main() → ebook_app_run()
└→ boot.cc:NVS / 存储 / 显示 / 触摸 / 网络 / 应用注册
└→ UiLoop:输入 → Router → FrameComposer → Presenter → 墨水屏刷新
应用注册示例
// main/app/ebook/apps/app_registry.cc
void AppRegistry::register_defaults()
{
register_app(&reader::ReaderApp::instance());
register_app(¬epad::NotepadApp::instance());
// ... 共 12 个应用(含「更新」占位)
register_app(&settings::SettingsApp::instance());
}
构建与烧录
idf.py set-target esp32s3
idf.py build flash monitor
- 预编译固件:GitHub Releases
- 本地打包:
python scripts/package_firmware.py - 详细说明:README.md、框架说明
后续更新计划
以下为当前版本之后的暂定规划,按优先级大致排列。
固件与系统
| 方向 | 计划内容 |
|---|---|
| OTA 升级 | 完善「更新」应用 UI,对接 common/ota 双分区升级、版本校验与回滚 |
| 电源管理 | 设置中电池详情页:电量、充电状态、省电策略说明 |
| USB MSC | 优化 PC 与设备挂载切换体验 |
| 陀螺仪功能 | 实现体感交互玩法设计 |
阅读与内容
| 方向 | 计划内容 |
|---|---|
| EPUB 支持 | 阅读器扩展 EPUB,完善排版与目录跳转 |
| 阅读体验 | 书签、全文检索、更多字体与行距选项 |
| 内容同步 | 探索 Wi-Fi 书籍推送与阅读进度云同步(可选) |
注意事项
| 场景 | 说明 |
|---|---|
| 首次烧录 | 需烧录 bootloader、分区表、ota_data、应用、assets、userdata;偏移以发布包 FLASH.md 为准 |
| 资源更新 | 修改 assets/littlefs_assets 后须重烧 assets.bin |
| 墨水屏 | 低温少快刷;残影可用全刷 / 快刷缓解 |
| TF 卡 | 建议 FAT32;写入中避免热拔 |
| USB MSC | 暴露给 PC 时设备无法访问 /int,用完后需收回挂载 |
| 热点传文件 | 连接热点后访问提示 IP(如 192.168.4.1) |
| 天气 | 未配置 CONFIG_EBOOK_AMAP_WEATHER_KEY 无法拉取数据 |
| 调试 | 日志走 UART0(TX=GPIO43,RX=GPIO44);烧录可用 Type-C |
| 拨码 | 档位不准时调整 config.hpp 中 DIP_SWITCH_THRESHOLD_* |
实物图



设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










