墨水屏日历,采用三色4.2寸墨水屏,展示基本月历信息,支持农历、公共假期、倒计日、天气(实时天气、每日天气)展示。
项目以低难度、低成本的方式,方便爱好者实现属于自己的低功耗月历。
Bilibili连接:https://www.bilibili.com/video/BV1wHDhYoE3G/
注:固件仅供个人下载免费使用,禁止商用。
- esp32开发板(建议lolin32 lite,其他esp32开发板亦可)
- 4.2寸三色墨水屏(400*300)。
- 通用墨水屏驱动板。
- 锂电池,需要做ph2.0接头。(建议603048, 900mah)
- 金属底座亚克力台卡,95*80mm。
- 轻触开关,(12*12*7.3,带键帽)
- 工具:电烙铁、电线若干。
- 开发板接线
- 墨水屏驱动板
- Busy->4
- RST->16
- DC->17
- CS->5
- SCK->18
- SDA->23
- GND->GND
- VCC->3V
- 其他
- 按钮->(PIN_14, GND)
- LED->22(板载)
- 墨水屏驱动板
- 三色墨水屏排线插入时注意针脚方向,屏幕排线和驱动板排线1号针脚均是悬空,注意对齐。
- 电池接口需要是ph2.0,且注意正负极(开发板上有标注),如果电池的正负极反了,可以用镊子调整电池插头。
- 烧录固件
使用ESP32的烧录工具flash_download_tool烧录固件. Flash Download Tools- 选择烧录的文件和烧录地址(bootloader.bin与partitions.bin烧录过一次后,就不需要重复烧录了)
- 选择Flash的配置信息
- 选择连接的串口以及波特率(波特率可以根据实际情况调整)
- 擦除Flash。
- 开始烧录。
注:文件前面一定要打勾,否则不会刷进flash的!!!
(参考下图)
- 安装盒,3D打印,用PLA或ABS均可。E-ink box2 v22.3mf
- 单点
如果处在休眠中,唤醒系统,并强制刷新月历。 如果处在运行中,强制刷新日历。 如果处在配置中,不做任何处理。 - 双击
系统正常运行中,双击进入系统配置。(并强制停止WIFI相关操作,如获取天气。) 系统配置状态中,双击重启系统。 - 长按
系统运行中,长按清除配置信息(WIFI密钥除外)和缓存,并重启。
(板载LED,PIN-22)
- 快闪: LED每秒闪约两次,系统启动中(正在连接WIFI)
- 常亮: WIFI连接完成。
- 慢闪: LED每两秒闪一次,WIFI连接失败(10秒钟后休眠)。
- 三短闪一长灭: 系统配置中。(3分钟后超时休眠)
- 熄灭: 系统休眠。
通过在开机状态下(LED常亮)双击,即可进入配置状态,这时系统会生成一个名为J-Calendar的ap,默认密码为:password。(默认超时时间为180秒) 连接上ap后会直接弹出配置页面。(或者直接通过浏览器输入地址 http://192.168.4.1进入)。 配置页面:
- Config Wifi. Wifi配置
进入配置wifi页面,选择搜索到的ap,并输入密码,并保存。 - Setup. 系统配置
- 周首日:
- 0: 周日(默认); 1: 周一;
- 和风天气:
- 输入和风天气的API Key和城市id(城市对应的id请在和风天气的官网查找。)系统会每2小时刷新当前天气,如果Key置空,天气将不会被刷新。
- 天气类型:0:每日天气(默认,每天凌晨刷新一次); 1: 实时天气(每两个小时刷新一次天气)
城市id列表
- 输入和风天气的API Key和城市id(城市对应的id请在和风天气的官网查找。)系统会每2小时刷新当前天气,如果Key置空,天气将不会被刷新。
- 倒数日:
输入倒数日名称和日期,名称不能超过4个中文字符,时间以yyyyMMdd的格式填入。配置正确的话,日历每天会显示倒数“距****还有**天”。如果倒数日名称为空,系统将不显示倒数日信息。 - 日期Tag:
- 输入格式,yyyyMMddx,yyyy为年,每年显示设为0000,MM为月份,每月显示设为00,dd为日期,x为tag的图标(a:书签;b:金钱;c:笑脸;d:警告)。例如:00000015b,每年每月15日旁边显示$符号;00000312a,每年3月12日,显示书签符号。
- 最多可以设置三个tag,中间以分号隔开。例如:00000015b;00000312a
- 保存配置后,系统自动重启。
- 周首日:
- Update. OTA升级
此项需要在浏览器内完成,通过ip地址访问配置页面,然后进入Update,选择固件文件后上传,等待。刷新完成后,页面会有成功提示。 - Restart. 重启
在所有配置完后,需要重启生效。(也可以在配置状态下,双击按钮重启) - Info. 系统信息 可以监控系统的硬件情况,也可以在里面清除配置的Wifi密钥。
- Exit. 退出
退出配置状态。
- Q: 刷完机后,如何配置?启动流程是如何的?
A: 需要在系统运行状态下(状态灯常亮或慢闪时)双击按键,即可进入配置状态。LED灯变成三短闪一长灭时说明进入配置状态了。 - Q: 刷完机后,没有反应该如何处理?
A: 观察22针脚的LED是否点亮,有闪烁说明固件已经刷入,如果没有闪烁可以尝试点击重置按钮重启,或者拔掉电源线和usb线,重插来重启。此外,还可使用串口工具通过usb的com口获取启动日志来进一步确认故障原因。 - Q: 可以支持哪种屏?
A: 仅4.2寸三色屏(目前仅支持黑白红,将来支持黑白黄)。 - Q: 我使用的屏应该烧录哪个固件?
A: 从经验上预估,SES的拆机屏选z21,比较新一些的选z98,如果是非常老的屏,选z15。实在不行的话,三个固件都刷一遍试试。
明确的丝印对应如下:
丝印 固件 E042A43-A0 z98 P420010 z98 A13600** z21 - Q: 使用flash download tool刷新固件时,报错,连接串口失败。
A: 1. 检查USB线连接是否正常。
2. app的串口下拉框里是否检测到COM口。
3. 把其他串口工具关闭,防止占用COM口。 - Q: 刷新固件的过程中提示报错。
A: 1. 换根质量较好的或短一些的USB线,或换个USB口插入。
2. 可以将刷新的波特率降低一点,如选择速率低一点的115200。 - Q: 刷新固件后,需要重新配置吗? A: 仅刷新app固件后,配置是保留的,所以,无需重新配置。如果刷新了分区表partition.bin,会将esp的nvs区刷新,这时候需要重新配置。
- 项目开源:此项目使用GNU General Public License v3.0许可证授权。详情请参阅LICENSE文件。
- Refine:农历计算功能移出。(农历功能作为独立库,以MIT协议开源)
- Fix: bug (wrong background color of calender header).
- Fix: bugs.
- New: 假日信息通过网络API获取。
- Refine: 由于esp32内置时钟的误差,会有可能唤醒的时间不准确,同时,由于处于午夜0点左右,导致提前刷新或在刷新期间切换日期,导致日期显示不准确。处理方式:计时器唤醒的情况下,23:50以后不刷新直接休眠,等待至0点以后唤醒刷新。
- Fix: 修正Wifi连接失败后,同步时间导致系统时间错误。
- Refine: 如果wifi连接失败,等待10s再休眠,并增加LED慢闪作为指示。(在这时间段内供用户进行双击打开配置状态)
- Fix: 修正倒数日名称显示不足的问题。
- New Feature: UI调整,新增今日农历日期的展现。
- Fix: 编译异常。
- Fix: bug(假日颜色不正确), 增加显示假日和调休icon(日历右上角)。
- Fix: bugs.
- 新功能:增加设置每周首日,默认首日为周日。
- 优化:补充部分公历&农历节日
- 新功能:增加日期Tag(通过配置页面进行配置)
- 优化:
- 统一每日天气与实时天气的布局。
- 增加时间容错性,当同步网络时间失败的时候,使用天气api的更新时间。
- 新功能:增加节日显示(元旦、劳动节、国庆节)
- 优化显示:加粗当前日期框;不再使用局刷,全部改为全屏刷新(提高显示的清晰度,兼容不支持局部刷新的三色屏)。
- 预置2025年公休假信息。
- 增加24节气显示。修复部分bug。
- 增加天气模式--每日天气(默认配置),每天刷新一次。(增加月历待机时长。部分不支持局刷的屏可以选择这个模式。)
- 增加强制刷新处理(单击按钮)。
- 修复日历功能、修复日历字典数据
- 修复部分bug。
- 增加倒计日功能
- 修复部分bug。
- 基本功能
- 功耗优化等
此项目使用GNU General Public License v3.0许可证授权。详情请参阅LICENSE文件。
- <WEMOS LOLIN32簡介> https://swf.com.tw/?p=1331&cpage=1
- <GxEPD2> https://github.com/ZinggJM/GxEPD2
- <U8g2_for_Adafruit_GFX> https://github.com/olikraus/U8g2_for_Adafruit_GFX
- <和风天气> https://dev.qweather.com/docs/api/weather/weather-now/
Copyright © 2023-2025. All Rights Reserved.