
2.9寸/1.54寸桌面墨水屏摆件
简介
一款基于合宙ESP32C3开发板的桌面墨水屏摆件,内置锂电池供电,可在时钟、天气、古诗、图片四种不同显示模式间进行切换。
简介:一款基于合宙ESP32C3开发板的桌面墨水屏摆件,内置锂电池供电,可在时钟、天气、古诗、图片四种不同显示模式间进行切换。开源协议
:MIT
描述
本项目对上一版本(ESP32C3 2.9寸墨水屏摆件)进行了硬件上的修改,加入了电池供电模块并绘制了适配1.54寸墨水屏的PCB版本。软件放面则是在程序上完成了1.54寸墨水屏的适配版本。
1 效果展示
项目的效果展示可参见B站视频:[墨水屏]四种模式桌面小摆件!电池版适配1.54寸~让桌面不再单调
2 硬件方面
2.1 墨水屏屏幕
本项目中使用的墨水屏型号为:2.9寸:HINK-E029A01 1.54寸:HINK-E154A05
墨水屏为闲鱼上购得,两者均为黑白双色墨水屏,引脚为24P。由于在程序中使用到局部刷新,若使用三色或多色可能无法正常驱动。其他型号墨水屏尚未测试,但大部分墨水屏的驱动电路较为通用,可自行进行测试。
2.2 主控模块
使用合宙ESP32C3开发板作为作为主控,通过相应的驱动电路来控制墨水屏。该开发板采用邮票孔设计,因此在本项目中将开发板整体视作一个贴片元件,焊接在PCB板上,以此节省空间。目前官网在售的版本有经典款与简约款两种。两种款式均可在本项目中使用,个人建议初学者入手经典款,其烧录较简约款简单且不易踩坑。
2.3 电源管理电路
本项目通过ETA6093芯片实现电源管理。ETA6093是一个开关型的锂电池充电器,能够给电池提供1.2A 的充电电流,且提供 5V/1.2A 的升压输出操作,只需要 1 个电感器,即可达到双向的电源路径管理,来进行自动模式检测和切换工作。
本项目中将其与ESP32C3开发板上的USB供电口相连,当使用USB供电时,ETA6093芯片处在充电模式,为锂电池充电。当断开USB供电时,锂电池通过ETA6093升压输出,为开发板及墨水屏屏幕等供电。此外,USB供电也不影响通过USB对开发板下载程序。项目中电池锂电池型号为301048(3*10*48mm),由于未进行低功耗设计,使用与待机时长较短,当桌面摆件使用时建议使用USB供电。
2.4 开关按键
本项目中通过一个拨动开关实现来实现设备的开关机,通过两个按键进行来实现界面及模式的控制切换。
3 软件方面
3.1 开发工具
该项目使用Arduino进行开发,需要安装Arduino的ESP32C3支持,如未安装,请自行查找相关资料进行安装。
这里提供网盘资料来帮助大家快速配置,使用方法可见B站视频
[技术向]开源!四种模式的墨水屏桌面摆件~手把手教你DIY_哔哩哔哩_bilibili
网盘地址:链接:https://pan.baidu.com/s/1ELNBuo_a1YlaOqj3Q381AQ?pwd=lfxy
3.2 Arduino 库
使用Arduino Library 管理工具安装下面五个依赖库:
①ArduinoJson库 解析Json数据,项目里的天气、古诗、名言等信息都是通过一些API获得,保存在返回的json数据中。
②GxEPD2库 驱动墨水屏
③Time库 配置时间用到
④Timezone库 切换时区用到
⑤U8g2库 图像显示库
3.3 程序编译下载
1.在“C:\Users\xxx\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.0\variants\esp32c3”下修改定义
static const uint8_t SDA = 4; //8
static const uint8_t SCL = 5; //9
static const uint8_t SS = 7;
static const uint8_t MOSI = 3; //6
static const uint8_t MISO = 10; //5
static const uint8_t SCK = 2; //4
该配置时参考合宙开发板的引脚定义进行修改的。
2.下载附件中的程序,用arduino打开文件夹同名的.ino文件。
3.选择开发板为ESP32C3 Dev Module;选择相应的下载方式:若为简约款则选择Internal USB,经典款则选择UART0;最后选择正确的端口。
4. 点击下载,等待编译后下载成功即可。
3.4 固件烧录下载
若不想通过arduino进行编译下载,也可进行固件烧录下载,步骤如下:
1.烧录工具esptool下载
官方地址:https://www.espressif.com.cn/zh-hans/support/download/other-tools
注:本项目发布时esptool版本为V3.9.2
2.烧录工具修改配置
官方版需要修改一处配置才能成功:
① 首次使用执行exe文件后,会在目录下生成configure文件夹,将以下路径下的spi_download.conf以记事本方式打开。
② 将其中的flash_size = keep 改为 flash_size = 4MB 后保存文件。
3. 固件烧录
① 运行exe文件,选择如下选项,经典款的选择uart下载,简约款的选择usb下载。
② 选择从附件下载的bin文件,烧录地址为0x0,其余配置如下。
③ 先点击ERASER键进行清除,后点击START进行烧录。简约款烧录时需要进入下载模式:按住boot按键再上电。
④ 程序烧录成功就可以运行了。
4 功能实现
4.1 DesInk文件夹说明
①与文件夹同名DesInk_x.x.x.ino文件为主程序所在文件(x.x.x为版本号)。
②Config.h文件为配置文件,包含引用库、配置参数、全局变量、函数定义等。
③AncientPoetryPage.ino、DinosaurPage.ino、WeatherPage.ino、WifiConfigPage.ino文件分别为古诗界面、时钟界面、天气界面显示、WiFi配置界面相关功能所在文件。
④CallHttps.ino中为服务器连接及数据请求功能的实现;GetSentence.ino中为通过API获取古诗与名言相关函数实现;GetWeather.ino为通过心知天气API获取天气信息相关函的实现;NTP.ino中为通过NTP获取时间的相关功能;WebSever.ino中为将esp32c3设置为服务器进行网络配置等功能的实现。
⑤GB2312.h、MyIMG.h 中为中文字库和图片的相关数据。
4.2 整体框架说明
项目的总体框架及开发思路如上图所示:
①ESP32C3作为一款物联网芯片,在本项目中首先对其进行联网,以方便后续从网络上获取相关数据。(本项目中也考虑到离线的场景,当联网失败时,会自动进入离线模式,在离线模式下仅可切换显示已保存在内存中的图案)本项目中使用自带的WebServer库,并编写网页的HTML代码来实现该功能。在配网后,保存的WiFi名称、WiFi密码、天气密钥等数据将通过EEPROM库的相关函数保存至Flash中,待下次使用时便无需重新配置。
本项目中使用到的墨水屏型号,均可以通过GxEPD2库实现驱动,结合U8g2库,可以更加方便的进行文字和图案的编排和显示。
②联网成功后,在时钟显示模式下时,基于WiFiUdp库通过NTP获取时间。获取时间后通过Time库将时间同步到本地,在墨水屏上进行显示。当在天气或诗词界面下时,则通过HTTPClient库来访问相应的API接口,获取返回的JSON格式数据将使用ArduinoJson库进行解析,最后将获取的数据显示在墨水屏上。
③通过轮询两按键的状态,来实现模式的切换和数据的刷新。
5 使用方法
5.1 首次使用
首次使用时的配置方法与上一版本相同,可参见:ESP32C3墨水屏摆件 - 嘉立创EDA开源硬件平台 (oshwhub.com)
5.2 日常使用
①开关机与充电
拨动开关可进行开关机,开机时背面的蓝色LED灯常亮。将通过USB口即可为设备充电,充电过程中也可通过拨动开关来设置开关机状态,充电过程中绿色LED灯闪烁,待充满,则处于常亮状态。
②模式切换与更新
按下MODE键切换模式,按下KEEP更新。对于需要联网获取信息的模式,如天气、古诗界面,切换的速度与网络信号好坏有直接关系,网络较差时需要稍加等待。
古诗模式的下不建议频繁刷新,容易导致网站的限流,需等待一个小时左右才能正常使用。由于古诗生僻字较多,也会出现一定的缺字。
③配置模式
长按MODE键至红灯灭再松开可进入配置模式,配置模式下按下KEEP会清空连接WiFi的配置,重新启动进入配网界面。(相当于恢复出厂设置)
6 物料表
物料表可查看附件“电池款清单.xlsx”
设计图

BOM


评论