一年前因为疫情滞留在家无法上学,所以闲得发慌想搞些事情。最早开始是看到闲鱼上有人放ESP8266驱动的2.9寸的墨水屏时钟,于是自己也做了一个,并且改了程序加了个flash,在里面加上了高考3500词进去拿回学校背单词。
同样的,看到小米有品里面有个有品&秒秒测智能健康日历,就很想自己弄一个。没想到鸽子本性难移,一鸽鸽到现在。
然后在上了大学的某一天看到了GitHub上张欣的repositorybreakstring/eInkCalendarOfToxicSoul,觉得整挺好。
一不做二不休,说干就干。
- 屏幕:屏幕是真的贵,一个5.83inch的黑白双色硬质EPD墨水屏不加邮费230。买的时候要注意自己的5.83inch屏幕是哪个版本的,微雪官方有两个版本的5.83inch e-Paper HAT,分辨率不一样。或者可以买三色的屏幕。
- MCU:当年想用树莓派驱动来着,发现树莓派又是一笔巨大的开支。原作者同样用ESP32,所以选择小一点的单片机,ESP32-WROOM-32。但是现在为了方便测试所以用了微雪官方的E-Paper ESP32 Driver Board
需要注意的是,早期微雪的E-Paper ESP32 Driver Board是有一个开关。
而我买到的是俩开关。
根据微雪提供的E-Paper ESP32 Driver Board原理图,ON/OFF那个开关是控制CP2012的供电的,关掉了就无法给ESP32烧录以及用USB供电;屏幕挡位如下图:
- 电源:USB供电,我不喜欢电池,电池会老化爆炸。(将来可能会用四节五号电池驱动)
- 集成开发环境:PlatformIO IDE,基于Arduino库开发。值得注意的是PlatformIO需要Python环境,Pypi环境,可以自行百度搜索pip换源。
-
相关类库: 在本软件开发中,主要用到了如下第三方库
- Adafruit GFX
- GxEPD2:基于Adafruit_GFX库来驱动各种电子墨水屏。
- U8g2 for Adafruit GFX:一套基于U8g2字体引擎来通过Adafruit GFX来显示文字的第三方库。
- u8g2_fontmaker来配合U8g2 for Adafruit GFX.
- ArduinoJSON 这里有个很好用的网站ArduinoJson Assistant
-
相关服务:
专四单词:用的新东方-专四词根+联想记忆法(乱序版)- 一言API
- Todoist 建议显示4个待办在【今天】里面就好了(我绝对不会说是因为buffer设置太大会硬复位导致问题的)ACCESS TOKEN 获取
- 农历-木小果API
- 黄历-天行数据API
- IP地址查询:用来通过当前设备的IP地址查询得知当前位置。具体可见 src/MyIP.h 和 src/MyIP.cpp
- 字体:项目中的字体使用了造字工房的部分非商用字体来生成。如您要使用,请确保在其授权范围内使用。
- 天气服务:这里用了和风天气开发平台的服务。所以需要您前往注册账号并获取到自己的一个应用程序Key来替换src/config.h中的占位符。具体相关代码可以参见 src/QWeather.h 和 src/QWeather.cpp
const String QWEATHER_API_KEY = "********************";
const String TODOIST_ACCESS_TOKEN = "************************";
const String MUXIAOGUO_API_KEY = "************************";
const String TIANXING_API_KEY = "************************";
- 程序上传:上传文件分区镜像(就是那些天气图标什么的)和程序固件
各位可以看到我后来用了7.5寸的屏幕显示,5.83寸属实是格局小了
- 番茄时钟 + 蜂鸣器
- 时间查看(局部刷新) + RTC
- SD卡 + 自定义字体 + 自定义文本显示
专四词汇表JSON化,不能写在头文件里面占用空间,通过网络获取一言待办事项
- 爱兰的工藤新一 PCB设计
时间 | 修改内容 |
---|---|
2021.05.29 | 第一次更新 |
2022.01.20 | 增加一言API |
2022.01.21 | 增加Todoist API |
2022.01.22 | 增加农历 |
2022.02.06 | 增加黄历 |