ESP32制作一个拟辉光管时钟

芯片之家 2023-05-19 12:16


拟辉光管时钟


 

60 多年过去了,尽管辉光管已经停产,有很多工程师仍然对它情有独钟。我用 8 块液晶显示屏制作了一个拟辉光管时钟,感受复古元素的美感,表达对过去经典的敬意。

 

项目起源


看过《命运石之门》的朋友应该知道里面有一个“时间线变动仪”,就是用辉光管呈现数字,网上很多电子爱好者也成功用辉光管进行了复刻,效果拔群。对于刚接触电子行业的我来说有点复杂,而且辉光管早已停产,后来我在各个平台寻觅,终于看到了一个用液晶屏显示辉光管图片的方式做的拟辉光管时钟,相比于传统的辉光管,液晶显示屏工作电压低、寿命长、可呈现多种色彩,还可以显示图片,可玩性比较高。在实现时间显示功能的同时,我还给时钟增加了一个AHT10 温 / 湿度模块和一个 0.96 英寸的OLED 显示屏,用于显示室内温 / 湿度。

材料介绍


主控芯片
本 项 目 主 控 芯 片 采 用 ESP32-WROOM-32D 模块(见图 1),具有可扩展、自适应的特点。时钟频率的调节范围为 80~240MHz,只需极少的外围元器件,即可实现强大的处理性能、可靠的安全性能、Wi-Fi 和蓝牙功能。 

图 1  ESP32-WROOM-32D 模块

液晶显示模块
显 示 屏 使 用 1.14 英 寸 LCD 液 晶 显示 模 块( 见 图 2), 分 辨 率 为 135 像 素×240 像素,驱动芯片型号为 ST7789,通信方式为 4 线 SPI,接口方式为焊接式,0.7mm 的接口间距对焊接比较友好。

图 2 1.14 英寸液晶显示模块

AHT10温/湿度模块
温 / 湿度模块型号为 AHT10(见图 3),该模块配有一个 ASIC 专用芯片、一个经过改进的 MEMS 半导体电容式湿度传感元器件和一个标准的片上温度传感元器件,响应迅速、抗干扰能力强、性价比高、稳定性好,广泛应用于空调、除湿器及其他相关温 / 湿度检测控制设备中。

图 3  AHT10 温 / 湿度模块
OLED显示模块
OLED显示模块为0.96英寸(见图4),像素为白色的,分辨率为 128 像素 ×64像素,接口为 I2C。OLED 显示屏可视角度大、功耗低、不需背光源、对比度高、厚度薄、反应速度快、可用于挠曲面板、使用温度范围广、结构及制程简单等优异特性,操作方便,功能丰富,可显示汉字、ASCII 码、 图案等信息。

图 4  OLED 显示模块

电路设计


主控部分
ESP32-WROOM-32D 模块提供了丰富的 GPIO 接口,温 / 湿度模块的I2C接口和 OLED 显示模块以及时间芯片的I2C 接口复用,减少 I/O 接口的占用,主控电路里使用了一路 ADC 采集,读取环境光亮度采集电路的电压变化来控制显示屏背光,使用了 8 个引脚(CS1~CS8)分别连接 8 块液晶显示屏的引脚,通过电平变化实现对 8 个显示屏的控制,使用一个按键引脚(key1)用于液晶显示屏显示内容的切换,主控电路如图 5 所示。

图 5  主控电路

下载电路
本项目使用 CH340C 芯片,该芯片内置晶体振荡器,可以省去晶体振荡器电路,价格便宜,电路简单,配合三极管可实现自动下载功能,下载电路如图 6 所示。

图 6  下载电路

供电及稳压电路
供电电路使用了 3 个 Micro USB 接口,方便后期从时钟的左、右、后 3 个方向给时钟供电,使用一个 MSK-12D19 拨动开关实现对电源的通断。
稳压电路使用 LM1117-3.3 芯片,该芯片是一种常见的稳压芯片,价格便宜,电路简单,供电及稳压电路如图 7 所示。

图 7  供电及稳压电路

AHT10温/湿度模块电路
AHT10 温 / 湿度模块使用 I2C 总线,模块集成度高,仅有 4 个接口,AHT10 温 / 湿度模块电路如图 8 所示。

图 8 AHT10 温 / 湿度模块电路

OLED显示模块电路
OLED 显示模块同样使用 I2C总线,仅有 4 个接口,OLED 显示模块电路如图9 所示。

图 9 OLED 显示模块电路

环境光亮度采集电路
光敏电阻在不同光强度下电阻值不同,光照变强,电阻值变小,该电路采集的是与光敏电阻串联阻值为 1kΩ 的定值电阻两端电压,因为光照变强,光敏电阻阻值变小,环境光亮度采集电路中的电流变大,1kΩ定值电阻两端电压会变大,这样 ESP32-WROOM-32D 模块采集到的电压与光照强度呈现正相关,方便后期程序调试,环境光亮度采集电路如图 10 所示。

图 10  环境光亮度采集电路

时钟芯片电路
时钟芯片使用的是 PCF8563,是一款工业级内含 I2C 总线接口、具有极低功耗的多功能时钟和日历芯片,性价比很高。电路中增加了 CR1220 电池座,主电源掉电后,可采用备用纽扣电池供电,这里时钟芯片精度不做要求,因为 ESP32-WROOM-32D模块有Wi-Fi功能,在有网络的条件下,程序中可实现启动时获取网络时间完成本地对时,时钟芯片电路如图 11 所示。

图 11  时钟芯片电路

液晶显示屏驱动电路
液晶显示屏驱动电路采用开源平台的成熟方案,将需要的引脚引出后,连接到8Pin 的 NDK/TAT 总线插槽里,画成 PCB后,显示屏可以像游戏卡带那样直立插到主控板上,液晶显示屏驱动电路如图 12 所示。

图 12  液晶显示屏驱动电路

PCB设计



我 在 设 计 PCB 之 前 综 合 考 虑 了8块液晶显示屏横向排开的间距以及时 钟 整 体 稳 定 性, 将 PCB 尺 寸 定 为200mm×50mm。将大部分贴片元器件分别布置在 PCB 底层,让顶层保持一定的美观,PCB 面积比较大,留给元器件空间也足够,焊接难度降低。
主控 PCB 整体布局如图 13 所示,主 控 PCB 整 体 效 果 如 图 14 所 示,在 ESP32-WROOM-32D 模 块 天线下方区域不覆铜(见图 15),防止PCB 铜箔层对信号产生干扰。为了防止ESP32-WROOM-32D 模块以及稳压电路工作时产生的热量对 AHT10 温 / 湿度模块检测室温干扰,将 AHT10 温 / 湿度模块放置在远离主控芯片和稳压电路的位置(见图 16)。

图 13 主控 PCB 整体布局

图 14 主控 PCB 整体效果

图 15 ESP32 模块天线下方不覆铜

图 16 AHT10温 /湿度模块远离主控芯片和稳压电路


液晶显示屏驱动 PCB 整体布局如图17 所示,液晶显示屏驱动 PCB 效果如图18 所示,PCB 下方的顶层和底层分别留出4 个焊盘(见图 19),焊盘通过 8Pin 的NDK/TAT 总线插槽和主控 PCB 连接。

图 17 液晶显示屏驱动 PCB 整体布局

图 18 液晶显示屏驱动 PCB 效果

图 19 液晶显示屏驱动 PCB 下方焊盘

程序设计


编程环境
我使用 Arduino IDE 1.8.16 版本,软件中的开发板管理器中的 ESP32 开发板版本为 1.0.6(见图 20)。

图 20 Arduino IDE 版本以及 ESP32 开发板版本

程序编写
(1)导入库
Arduino 自带很多库文件,可以直接在“库管理器”中安装使用,这个项目用到了支持时钟芯片、支持温 / 湿度模块、实 现 ESP32 模 块 的 Wi-Fi 功 能 和 断 电
记忆功能、驱动液晶显示屏显示和驱动OLED 显示模块显示的相关库文件。
(2)配网功能
这里采用的是乐鑫提供的SmartConfig 方 案, 配 合 手 机 端 App、EspTouch 使用,当前设备在没有和其他设备建立任何实际性通信连接的状态下,可以一键配置该设备接入 Wi-Fi,如程序1所示。


(3)获取时间和温度
参 考 I2C_BM8563.h 库 文 件 的 示 例程序,获取时间芯片里的时间和日期,将时、分、秒分别赋值给变量,如程序 2 所示。


将时、分,秒变量的十位数和个位数分别取出赋值给新的变量,用来对应显示代表数字的图片,如程序 3 所示。


参考“Adafruit_AHT10.h”库文件的示例程序,获取温 / 湿度模块的温度和湿度,将温度和湿度分别赋值给变量,如程序4所示。


(4)将温/湿度数值显示到OLED显示模块
使 用“U8g2lib.h” 库, 设 置 OLED显示模块的驱动类型和硬件连接方式,将从温 / 湿度模块获取的温度和湿度显示到OLED 显示模块上,这里以显示温度内容为例,如程序 5 所示。


(5)将辉光管字体显示到液晶显示屏上
准备好代表 0~9 的 10 张辉光管字体图片,通过画图软件将其调整为宽 135 像素,高 240 像素,如图 21 所示。

图 21 调整辉光管字体图片大小

调整好辉光管字体图片大小后,把数字是 0 的图片通过“jpg 转 Hex”软件转码后创建扩展名是 .h 的文件,命名为a0.h,剩下的图片也按照这种方法处理。
使用 TFT_eSPI.h 库驱动液晶显示屏显示内容,在 setup() 函数中将液晶显示屏与 ESP32-WROOM-32D 模块连接的CS1~CS8这8个引脚定义为“OUTPUT”,以液晶显示屏显示小时的第2位数字为例,先把第 2 块液晶显示屏 CS 引脚拉低让显示屏使能,剩下液晶显示屏 CS 引脚拉高,通过 switch() 函数把小时的第二位数字对应的图片显示到第 2 块液晶显示屏上,如程序 7 所示。剩下各个位置数字用相同办法下拉对应液晶显示屏的 CS 引脚,将与数字对应的辉光管字体图片显示到对应的液晶显示屏上,程序通过获取时间判断该位置数字是否发生变化,如果改变则会触发 if 语句刷新该位置显示屏内容。


(6)液晶显示屏背光亮度调节
ESP32 模块从环境光亮度采集电路获取电压值,计算 10 次的平均数,然后将此数值转化为 0~255 范围的液晶显示屏背光亮度,如程序 8 所示。



成果展示


将液晶显示屏焊接到液晶显示屏驱动PCB 上,液晶显示屏背面用双面胶固定,如图 22 所示,最后制作完成的拟辉光管时钟如图 23 所示。

图 22 液晶显示屏

图 23 拟辉光管时钟

结语


这个项目里 ESP32-WROOM-32D模块还有一个 IO34 引脚没有使用,感兴趣的朋友可以利用这个引脚扩展其他功能,目前能想到的是把人体感应模块的信号引脚接到 IO34,这样拟辉光管时钟通过人体感应模块传来的高低电平信号控制显示屏背光的开关,这样拟辉光管时钟在没有人的时候会关闭显示,达到省电的目的。
这 8 块液晶显示屏除了做时钟,还可以显示丰富多彩的内容,通过程序让 ESP32-WROOM-32D 模块利用 Wi-Fi 从互联网上获取信息,比如天气预报、农历、二十四节气,将获取的信息显示到液晶显示屏上。当然这些只是抛砖引玉,想必大家还有更多更好的想法去丰富这个拟辉光管时钟的功能。
我第一次看到辉光管时钟就被它黑暗中橙黄色幽光的独特韵味深深吸引,真没想到自己会用另一种形式将其复刻出来,前期构思花了很长时间,几乎要放弃,可能是念念不忘必有回响,一天查看资料发现了同时点亮两块液晶显示屏并且显示不同内容的方法,于是这个基于液晶显示屏的拟辉光管时钟真的被我做成了。焊接好元器件写入程序最后点亮的那一刻,我感觉一切都值得,那种快乐妙不可言。
本文来源:无线电杂志

往期推荐

开源一辆精致的Mini FOC无刷平衡车,AT32F413+ESP32-C3,快来复刻吧!


开源一个USB PD诱骗器,基于CH224和CH32V003


介绍一个4000行代码的开源GuiLite,并移植到STM32,收藏


开源】纯手工低成本打造拟辉光管时钟,也可以很酷炫


开源一个各种USB电缆的测试仪,再也不用担心被只有充电功能的数据线坑了


开源项目】用ESP32制作一个桌面天气预报站

评论
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 47浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 108浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 45浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 81浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 159浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 98浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 192浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 109浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 137浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 41浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦