
复古桌面VFD时钟
简介
以ESP32-C3为主控驱动旧时代影碟播放器VFD屏制作的复古VFD时钟
简介:以ESP32-C3为主控驱动旧时代影碟播放器VFD屏制作的复古VFD时钟开源协议
:CC BY-NC 3.0
(未经作者授权,禁止转载)描述
项目说明
VFD屏讨喜的显示效果想必点进这个工程的朋友多多少少看到过了吧,这个项目是我学习ESP32过程中的积累,以FUTABA的VFD屏(13-ST-GINK) + ESP32-C3为主控制作的复古桌面时钟,通过2.4Gwifi联网获取互联网时间、本地温湿度显示(独立的无线温湿度传感器,不使用温湿度传感器可以设置为日期显示)。
时钟尺寸:117*27.2*26.7mm
时钟使用5V供电,最大亮度下平均工作电流为280mA左右,蜂鸣器响的瞬时电流有700mA,建议使用5V1A或者输出电流更强的适配器供电
夜间待机关闭显示下平均电流84mA左右
开源协议
知识共享许可协议-署名-非商业使用
项目相关功能
功能1:WIFI联网 HTTP获取互联网时间并显示
功能2:无线温湿度传感器获取温湿度,可以摆放室内任意无金属屏蔽的位置(使用我开源的无线温湿度计)
功能3:自动亮度调节
功能4:温度、湿度异常报警
功能5:夜间显示关闭
项目属性
本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。
项目进度
- 画原理图
- PCB布线
- 画外壳、前面板面板(未达到申请打样要求已舍弃,有需要就自己画吧)
- PCB打样申请、面板打样申请、立创商城元器件申请
- 移植、写程序、改bug循环
- 切割亚克力面板、买铜柱做三明治结构外壳
- 开源结项
设计原理
绝大部分元器件已匹配了立创商城以方便购买制作,VFD屏、光敏电阻需要另外购买,附件里提供了一份时钟以及温湿度计整合的bom表,温湿度计的CH571F、22uH、LED灯、CJ2302需要单独购买,如有遗漏请帮忙指出。
外壳为用两片亚克力板(前面板3mm,后面板2mm,也可以都是3mm)配合M2*9 双通滚花铜柱、M2*8+3 滚花铜柱、M2*5螺丝固定 ,亚克力板可以淘宝找店家切割(3mm灰色透明亚克力板切割,2mm无色透明亚克力板切割)。
设计框图
5V转3.3V
ESP32-C3只有在使用wifi HTTP请求校时时功耗大些,保持wifi连接以及BLE扫描下3.3V大概90mA电流,使用RT9193-33GB可以满足供电需求故而没用DCDC降压。
VFD屏驱动电路(屏的购买链接)
使用的屏为FUTABA 13-ST-84GINK,数据手册里推荐的逻辑供电为5V,逻辑供电使用3.3V 我已验证了一个多月没问题。这个屏内置了驱动IC,只需要满足供电以及通信就能轻松使用。屏的供电需要一路32V左右电压、3.9V的灯丝供电。升压32V使用了SGM6601,
灯丝供电从USB口的5V供电引出,通过二极管使电压降到3.9V左右(非稳定电流不要使用二极管降压) 还附带抬升了灯丝电位,灯丝供电使用了PMOS管+NPN三极管控制。屏的供电打开为3.3V逻辑供电>灯丝供电>32V供电,Q3的NPN三极管用于给1G扩流。
蜂鸣器
蜂鸣器为无源蜂鸣器,使用的是可以3.3V供电的MLT-8530,因为蜂鸣器响起来时瞬时电流比较大,如果正在使用wifi会对RT9193-33GB负荷比较大,所以使用5V+电阻限流的方式供电。
ESP32-C3模组使用
ESP32-C3需要IO2 IO8 IO9这三个引脚启动选择,使用时请注意模组上电时这三个引脚的电平状态,不需要频繁下载程序C3使能引脚用于复位的电容可以舍去,模组的程序下载使用C3内置的CDC串口,按键1既做启动时进入下载模式 也做普通按键。
按键
按键1:亮度设置,5档固定亮度以及自动亮度调节(自动亮度时点亮 小电视标),冷启动时进入下载模式按键。
按键2:夜间待机 开/关(开启时点亮 开关标)。
按键3:显示温湿度/日期 的显示切换(不使用温湿度传感器可以设置为日期显示)。
软件说明
程序挺简单的,使用IDF5.0开发,程序全部搬上来讲篇幅太长,这里我大概讲下实现各个功能模块实现,详细请自行看源代码。
- configuration.h头文件里可以修改wifi账号密码(使用2.4Gwifi的路由器才能供ESP32-C3连接)、多少点校时、夜间关显示待机时间以及退出时间。
- VFD屏通信使用了IO模拟SPI,大概400K的速度。时间的滚动刷新使用了屏内置驱动IC 6个CGRAM来实现,屏的1G动画使用了一个CGRAM,12个5*7点阵上方的为图标为AD寄存器控制,详情请翻阅屏的数据手册以及源码。
- 时间校准来自于淘宝的服务器,使用了HTTP请求,走时使用了ESP32-C3内部RTC。(题外话:B站粉丝数、天气也是使用HTTP请求获取)
- 温湿度来自于独立的温湿度计(使用我开源的无线温湿度计),通过广播的方式发送温湿度数据,ESP32-C3通过广播扫描获取到温湿度数据,使用了
- 蜂鸣器使用了LEDC产生PWM驱动。
- 按键驱动使用了GPIO中断,有按键按下后会给时钟任务发送按键消息。按键1:亮度设置;按键2:夜间待机开关;按键3:显示 温湿度/日期 切换。
- ADC采集光敏电阻分压处的电压,经过转换后为80-240级的亮度调节。
- 温湿度异常报警,独立的温湿度计需要修改程序,在检测到温湿度数据异常时从5秒广播一次改为100毫秒广播一次使时钟能快速获取到异常情况。
- 时钟任务为一个死循环不断重复执行。
程序执行流程如下
程序下载(不想自己配置IDF环境可以找我帮忙编译对应自家wifi账号密码的程序,附件里提供了wifi账号“ABCB” 密码“123456789”的固件 , QQ群:697752852
有两种下载程序的方式(温湿度计固件附件里提供CH571_BLE_Hygrothermograph.hex,程序下载方式请到工程开源页面查看)
使用flash_download_tool下载程序步骤
按住按键1插入数据线连接到电脑确认一下是COM几,板上的typec口只接了一侧的D+ D-,正插识别不到就反插,都识别不到就好好检查焊接吧。
- 选择目标芯片 ESP32-C3
- 选择下载方式 USB
- 点击 OK
- 选择对应的3个bin文件
- 选择板子识别出来的COM口
- 点击开始
等待烧写程序完成断电重启就行了。
使用ESP launchpad在线下载步骤
按住按键1插入数据线连接到电脑确认一下是COM几,板上的typec口只接了一侧的D+ D-,正插识别不到就反插,都识别不到就好好检查焊接吧。
- 点击
选择
,点击连接
- 点击
添加3个bin文件,烧录地址如下图
- 点击
开始烧录并等待烧录完成,等待烧写程序完成断电重启就行了。
实物展示
外壳由群友凉拌折耳根提供,已经过验证
设计注意事项
- 检查好焊接是否有短路等情况再插入电脑下载程序。
- 焊接好其他元器件后再焊接VFD屏,找东西垫以下屏焊接,修剪VFD屏引脚时需要注意安全。
- 蜂鸣器以及3个按键不能用洗板水洗。
- 时钟连wifi需要为2.4Gwifi,wifi账号密码在configuration.h里写。
- 不想自己配置IDF环境可以找我帮忙编译对应自家wifi账号密码的程序(附件里提供了wifi账号“ABCB” 密码“1234567890”的固件 , QQ群:697752852)
更新记录
2023-11-13:修复了开机日期显示为1/0 以及 湿度超过95%不会触发警报的bug。
2024-09-08:修改低电量判断为百分比电量,修改配置头文件内的默认wifi账号密码。
2024-09-26:更换了获取时间的API,修复了获取时间失败。
演示视频
设计图

BOM


评论