高级时钟项目
笔者来介绍一下一个简单的时钟项目,主要功能就是显示时间
1、背景
事情缘由:
- 大一(2014年)的时候为什么没做呢,大一的时候日常生活就是学习考试复习,根本没有意思去做这些事情,只是成绩好了点而已,但是对后面的影响其实很小,
- 本科大二(2015年)上模电数电课的时候,偶尔一次做实验的时候,想到了电子时钟,就想自己做一个,但是一直都没有付出实际,由于各种各样的事情耽误。
- 在同专业老乡的影响下,逐步开始对电子感兴趣,就有了这个想法,但是实践也很少,当时还参加了RM比赛,各种比赛转专业冲突,就没有时间做这个事情,
- 第三下学期的时候(2017年),逐步有时间去学习,当时正在参加蓝桥杯比赛,然后空闲的时候就画了这个板子,正巧比赛也是这个项目,显示时间,和调试时间,就直接套上了。
2、数码管版本(第一版)
第一版是拿51单片机做的,STC89C51/52,当时比赛的单片机也类似,所以就用这个做了,
芯片:STC89C51/52(12MHZ)
时钟芯片:DS1302
数码管:时钟显示共阳极
蜂鸣器:普通蜂鸣器
温度传感器:DS18B20
译码器:74LS138
锁存器:74LS373
三极管:8050(NPN),驱动蜂鸣器
LED:8个,灯闪缩
矩阵键盘:4*4
红外线接收头:
焊接的电路板如下:第一次绘制,可以正常使用,都通过飞线解决掉了,还可以正常使用,
显示时间和LED闪烁,不过是需要手动设置一下时间,后续就可以自动走了。
后面还手动焊接了红外线接收器,可以接收那种命令显示,控制温度进行显示(下图)。
外设看起来还挺多,主要当时设计这块板子的时候,就是为了学习一下各种外设的使用,当做一块入门的学习板,后面还可以用来学习一下,不过看起来51的性能确实很差,任务多了 就各种闪烁。
毕竟第一版乞丐版,没什么好的体验,但是也给家里拿了一块,给姑姑拿了一块去显示,不过现在估计也不用了。
不好的地方:
- 处理器性能有限,扩展性差,增加功能之后,可能影响现有功能
- 只能显示时间,日期以及其他信息无法同时显示,也无法显示图片
- 校正时间,只能手动校准,没有WIFI等模块,可以自动获取时间并校准。
- 通信方式只有串口,没有扩展其他通讯,比如蓝牙以及2.4GHZ等。
3、OLED屏幕版本(第二版)
-
后来同学建议搞个WIFI版本或者GPS版本,可以自动校正时间。
-
后面研二的时候(2020年)就画了PCB,买了材料,当时就焊接好了,调试好了各种外设,但是由于各种各样的事情就搁置了,主要是懒,没什么动力去做,后来又是毕业,又是工作,一下子就拖到了毕业两年后。
第二版升级了,不管主控还是显示,以及功能,都有相应的改进:
主控:STM32F4,169MHZ
显示:OLED 1.3寸
WIFI:ESP8266
蓝牙:HC-08
物联网:NB-IOT,可以链接2G网络
无线通信:NRF24L01,
LED:呼吸灯
温度和湿度:SHT3x-DIS传感器
3.1、下位机
话不多说,直接上界面显示
- 显示时间,日期,地区以及温湿度信息
- 显示天气等信息
- 开机显示IP地址,开机动画等
- 通过上位机传递信息,显示特定的图片信息(黑白),比如badapple
bad apple通过上位机传递数据进行显示。
3.2、上位机
-
界面一:时间天气显示
-
界面二 :BadApple显示
-
界面三 :OTA在线升级