发作品签到
标准版

QS18-12辉光管时钟+VFD屏幕(esp32)

工程标签

2.6k
0
0
12

简介

本项目采用国产新光QS18-12辉光管,VFD屏幕、ESP32主控,综合了时钟、天气、室温湿度、倒计时以及接入点灯物联网平台等功能。

简介:本项目采用国产新光QS18-12辉光管,VFD屏幕、ESP32主控,综合了时钟、天气、室温湿度、倒计时以及接入点灯物联网平台等功能。

开源协议

GPL 3.0

创建时间:2023-08-10 17:26:32更新时间:2023-08-26 09:50:48

描述

1. 前言:

本项目提供了几种PCB设计和不同功能的代码:

  • 其一是最开始想使用12V供电所以留有BUCK降压的PCB(ds1302);
  • 其二是直接使用typeC供电的PCB(ds3231);
  • 其三是副板,用于焊接辉光管(副板自动布线)。(请注意新光qs18-12和南昌qs18-12引脚定义不一致!)

关于程序:

  • 主要完善了使用WIFI接入点灯平台的程序,并且为ds1302和ds3231都写了驱动代码,直接替换文件,改下头文件引用就行了。
  • 其次关于蓝牙接入点灯平台的后续没写了(有空写完了就一起发上来)。还有最开始是使用1.44‘ TFT开发的,所以说还有一套程序。
  • 上传的源代码文件暂时只是VFD-WIFI-DS3231版本

 

2. 硬件设计:(以下以不带buck降压的PCB为例)

  • 硬件原理比较简单,由74hc595为移位寄存器,共5个芯片40位,刚好可以控制时分四位辉光管。uln2803A作为耐压驱动,COM端口接51V稳压二极管防止电压波动烧毁芯片。那么就这样,串行输出sout、芯片时钟sclk、锁存时钟rclk和使能oe#都由esp32提供。为了方便PCB走线,595和2803芯片间连线是倒序的,这个在程序上很好解决。

XpHR3SSZ0wdcGgwnQCNBEB9r8D6p1slIrRnIprag.png

  • 不过呢,为了减小PCB(100*40)大小这次选择的芯片封装都是极小的qfn封装,74hc595和两颗米差不多大,比较考验焊工,可以不需要钢网,但是得有风枪和锡膏就够了,还是好焊的:

Ris99lsX0NhOS77HGdt4dmcEEFF0VnfZV6ZPgBTZ.jpeg

 

双层板是由软FPC连接的,规格为1mm 24pin下接FPC座以及同向1mm 24pin FPC软排线6cm。购买时请注意规格!

 

其他的话也没什么可说的。

  • 时钟部分由ds3231或ds1302提供,ds3231是通过程序模拟的IIC运行的。
  • 室温湿度由AHT10模块提供,接入ESP32 IIC接口,直接使用库文件驱动。
  • 屏幕其实也提供了两种,之前使用的1.44‘ TFT的,后来发现VFD好像更适合就换了,不过PCB底部中央还是预留了14pin FPC座用于连接屏幕(与VFD共用部分IO),程序也有所提供!
  • 还有各位肯定有疑问为甚的电阻电容封装 06030805都有,其实ESP32部分我是直接从最小系统板上搬过来的所以说是0603的(方便些不用再买些元件了)。其余0805就是自己焊的了。

关于PCB可以修改的部分:

  • 其一,是升压模块接口画反了,本来说放在背面的升压模块但是打完PCB回来才发现反了所以焊在上层了,开源之后没修改,各位打板可以改一下,要是不在意也无所谓。
  • 其二,大家可以发现右侧俩螺柱是留的穿孔焊盘的,而且在顶层上连接了两个触摸点,本来是说可以搞点触摸按键的,但是不想写代码就放着了。而且PCB上没有走ESP32的连线,所以说要用的话需要飞线。
  • 其三,高压模块是直接某宝的成品,懒得自己画了,主要是买元件有点困难也怕一次不成又要反复搞,避免些麻烦就直接买模块了。

 

还有在这里提醒一下,通电时调试一定要小心,我被电了好几次,虽然不要命但是有一次电窜了把单片机给干烧了,esp32还是挺贵的,注意下吧。疼不说还费钱。

 

3. 软件设计:

这次程序写的还算明了吧,虽然我只是业余的相信大家还是读得懂我写的程序。

也不做详细的阐述,程序基于Arduino架构platformio下开发。

  • 主要逻辑在loop中。使用定时器0来定时操作各个函数。如每秒钟读取一次ds3231以及刷新辉光管、每5s切换VFD显示页面、每10s上传数据到点灯、wifi下每半小时更新时间和天气。反正需要不同,修改时间就可以了:

QbAAPvLM4ubwD0bVvdoFq7zJ91VYhjjMyogcAsRM.png

  • 这个每10分钟执行nixie_flash()是辉光管逐个数字的扫描,避免数字的阴极中毒:

zDFB9ikhmbKhyhUhuvBeR6q9S6kNRyk8zHWis7bx.png

  • 下图所示代码是辉光管的显示逻辑,其实与电路是一一对应的:

lkCcr9yDTajp3bAHvPE2UVFolBJbius1N0yoqJ5r.png

  • 还有就是关于点灯物联网平台的(blinkeriot.cpp),如果需要自己开发就请参考他们提供的开发文档,或者参考下例程就好了。手机端app只需要绑定好设备然后配置好每个按钮滑动条等组件键名的信息就可以使用了。下图是当前我的app配置以及程序中的组件键名:

xqkkEHqnqXpkaXE5N8yEo9SopFpKdPd4LSi9rGeQ.png

BrMJK1c5s7YCuHhynekf4yzTrocxSetFrnYyccED.jpeg

  • 关于VFD天气显示,由于只有屏幕只能显示八位,所以呢对对应的天气英文进一步缩写了,反正大概都懂的吧。(要修改显示内容见下图部分)if中的是天气代码,每个数字的意义详见和风天气的开发文档。

mDKKIqXZGupllhVvIiWbDGhq1MExvXjQgpwHCAJd.png

 

要是有什么不懂就问我吧,当然也希望大家提出问题方便修改。

 

4. 使用方法:

  • 对于全新的ESP32而言(请自行注册点灯app并在程序中写入密钥、自行注册和风天气在程序中填入密钥和地址代码):

a4HH00tJNmvYRTJA79zBeUIDRTcmyEFAPc7PjUgk.png

  • 写入程序后开机第一时间会进行配网的操作,在点灯app中其实是可以直接进行Smartconfig配网的,大家自己找一下。配好后就可以使用啦,大家第一次可以接串口上看下,进度啥的报错啥的一目了然。当辉光管和VFD都亮起以后就算是所有初始化都完成了,此时可以完全在手机app端操作设备。

       各种按键功能就不说了,显而易见的。我只对上面APP里中间那个输入框做一下说明:

  • 输入框提供了时间调整功能以及倒计时功能,由于这个点灯app的可玩性还有待发展,所以说只能先放在输入框里了。主要指令:
    • t12:30:00   该指令用于手动调节时间,格式必须如上,0必须补齐,比如t12:8:3这种格式是不行的(程序上偷懒了),必须t12:08:03
    • d23-08-25-5   该命令用于修改日期,格式同上,最后一位是星期位,不加0,如星期六就是-6
    • cd100是倒计时功能,后面的数字是倒计时时间,可以从1~9999s(如cd10cd1500),但是结束后好像定时器还有点问题,程序还在改

5. 焊接说明:

  • 只需要对qfn封装的焊接说明一下就好了。请一定要有风枪和锡膏!
  • 锡膏用尖嘴镊子挑一点涂PCB焊盘上就行了,一定要少,不要涂一层,覆盖一点就好了。然后风枪280度稍微热一下PCB然后把芯片放上去对着吹到锡膏都全部熔化上锡为止。此时推一下芯片归位,然后可以按一下芯片把多余的锡挤出来,最后推一下看看能自动归位就算焊好了。冷却之后上助焊剂然后用刀口烙铁处理一下四周连锡或者不饱满的小焊盘就可以了。
  • 还有一点,VFD屏幕是淘宝上买的模块,需要5V供电,高压模块旁边的那个穿孔焊盘就是取5V的。其次,其余6根线连接在背面的1.25mm卧插上,除了GND外随便连,反正修改下程序的引脚定义就行了。

6. 最终效果:

  • 这是输入12V带buck降压版本的样子(ds1302):(辉光管小数点位没焊所以引脚翘着)

  • 以下是DS3231的最终版本,效果如下:

3mcstA9VJKBV0Nt1Iz6Lx5oUKXDOMV53i2gLNsKl.jpeg

  • 屁股后面是AHT10温湿度传感器:

i65tPCgv4HCxRNUj5T7T8kHXrwROiT7DhVfwjoIr.jpeg

*注:以下程序为ds3231+vfd版本的代码,也就是上面的两张图所展示的。还有连接螺柱规格为M3*25和M3*16和M3螺丝,见下图:

eUVh8pCL9Rr5knzvpbrOiTJzeOhAQfh00AajWuSr.png

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
qs18_12_vscode_uv.7z
85
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航