2019-12-23 15:55:07 [显示全部楼层]
18524浏览
查看: 18524|回复: 25

[项目] ESPnixie----基于ESP32的辉光钟

[复制链接]
ESPnixie----基于ESP32的辉光钟图9

ESPnixie----基于ESP32的辉光钟图11

这其实是个烂尾了很久项目 第一次看到辉光钟的时候真的很惊艳  
就那种,duang~一下,很好看,很骚气的感觉  
Amazing!!!
然后淘宝上看了看价格,觉得自己做才有意思(并不是
其实说到底就是钱包不允许(摊手


-------- 以下部分是电路分析和介绍,觉得太长的可以略过 --------
言归正传,这个辉光钟使用的辉光管型号是IN14
这个管子产于上世纪70-90年代的苏联。同其他辉光管一样,也是利用冷阴极辉光放电效应发光。IN14主要充氖气,通电后会产生特征的橘红色光芒来显示0-9十个数字。值得一提的是,IN14的管内还充入了少量汞,可以大幅延长使用寿命。因为汞蒸气能够有效吸收阴极发射的电子,避免其他阴极受电子辐射产生“中毒”现象。也正是因为汞蒸气的存在,IN14的橘色辉光边缘,会带有些许色光芒,使得显示效果更加漂亮。

ESPnixie----基于ESP32的辉光钟图10

色的边缘不太好拍清楚,实际看的话还是比较明显的

ESPnixie----基于ESP32的辉光钟图8

从背面拍就比较明显了
实际上在黑暗环境下,从顶部后侧斜向下看,整个管子的玻璃壳都会泛着幽幽的紫光

ESPnixie----基于ESP32的辉光钟图12

1977年8月,暴力美学工厂出产

首先解决辉光管的驱动问题
IN14最合适的驱动参数为,阳极170V,串联20K电阻,典型电流为2.5mA
显然直接用220V市电来获取170V高压是比较危险的
出于安全考虑,使用
BOOST电路进行升压,从12V直接升压到170V

第一版样机中,使用
经典的MC34063进行升压
但是MC34063是单端驱动,MOS管的关断依靠电阻
关断速度慢不说,米勒效应还大到起飞
直观点来说,就是MOS管和功率电感 非!常!适!合!烧!开!水!

ESPnixie----基于ESP32的辉光钟图5    ESPnixie----基于ESP32的辉光钟图4


可以看到,MOS管关断速度非常慢,而且因为米勒效应存在一个很大平台
已经选择了栅漏电容尽可能小的管子了,再换更小的管子很难了

后来看上了
MAX1771
内置图腾柱驱动,而且是PFM控制,在轻重载条件下都能获得很高的转换效率
经过长时间测试,这一版升压电路仅略微温热
示波器图忘记拍了,很完美的方波,没有过冲没有振铃,上升和下降边沿很陡峭


ESPnixie----基于ESP32的辉光钟图6

很常规的BOOST电路
二极管本来想用肖特基的,但是这么高耐压的肖特基很少,而且很贵
所以最后还是选择了超快恢复管

ESPnixie----基于ESP32的辉光钟图3

ESPnixie----基于ESP32的辉光钟图1

辉光管驱动芯片选择了HV57708
这个也算是辉光管常用驱动电路了

这里值得一提的是,HV57708的输出端只有80V耐压,所以,这里有个很有意思的技巧
在电路上,每个辉光管的阳极直接通过20K电阻接到170V高压上
而每个阴极接到HV57708的输出端口上
而HV57708的高压电源端,实际上输入75V,由170V高压通过ZMM75稳压二极管获得
这样,在HV57708输出低电平时,辉光管点亮。
而输出高电平时,辉光管阴极为75V,不能保持辉光放电,从而不显示数字


ESPnixie----基于ESP32的辉光钟图7

需要注意的是,HV57708为5V电平,而ESP32为3.3V,且不像STM32的IO是5V容忍的,所以必须加电平转换
在这里用了一个SN74LVC125来作为电平转换
主控芯片直接使用了乐鑫官方的ESP32-WROOM-32UC模组

因为PCB板载天线增益较低,方向性也比较明显,而且天线区域需要净空,对器件布局来说会增加一些麻烦
所以特意选择了这个需要外接天线的模组
淘宝上一个小巧的2.4G天线也就两三块钱,但是增益比板载天线要好得多了


ESPnixie----基于ESP32的辉光钟图13

在制作外壳的时候,主板用铜柱垫高一些,天线的安装位置前后刚好净空

时钟芯片选择了DS3231,配合一枚CR1220纽扣电池
DS3231使用I2C通讯,内部集成晶振,需要的外围器件很少
而且能达到5ppm的精度,非常合适


----------已知bug----------

一开始设计的时候,HV57708的数据线和锁存线分别用了36和39这俩IO
然后调试的时候死活没反应
然后才发现ESP32的IO34~39能作为输入,不能作为输出!所以就只能飞两根线了,将他们分别接到26和33两个IO上

ESPnixie----基于ESP32的辉光钟图2

在串口烧写程序时,除了IO0要保持为低,IO2也要保持为低
但是在设计时候IO2作为I2C的SDA使用了,被上拉电阻拉高了
后来排查了好久好久才发现这个问题,所以如果要用串口烧写程序,就必须手动将IO2与GND短接一下
不过好在,我开发了OTA升级,直接通过wifi就可以升级程序
然后忘记引出复位引脚也是一个极蠢的错误 (fishgan本来就很蠢)(doudou不仅蠢还皮)

之前一版使用的STM32主控芯片,配合的是XC6206线性稳压器
换ESP32以后,,还是用了XC6206,然后就了。。。
一开始调试时候好好的,后来开发完成,撤除串口调试器以后,莫名就不行了
查了老半天才发现是因为ESP32在wifi通讯时,瞬时电流过大,超过了XC6206最大输出电流
所以,电压就会掉下来,然后ESP32就一直触发Brownout错误,然后复位
而接着调试器的时候,调试器输出3.3V就足够供给了
最后只能飞线出来换上一个AMS1117解决

ESPnixie----基于ESP32的辉光钟图14

此外要注意一下,很多市面上的USB转串口,都是5V电平的
直接接到ESP32串口上会导致esp32工作不正常

用一个电平转换电路,或者在RX和TX线上串联一个470欧姆电阻就行啦
当然。。的解决方案是,直接用stm32f103c8t6的开发板自己做了个usb转串口
stm32的原生usb接口与电脑通讯,然后串口电平是3.3V,刚好适合

最后就是一个无伤大雅的bug
调试的端口焊盘标注,TX和RX标反了 (hahahahaha)

-------软件功能-------
显示时间是最基本的啦~
然后每过一分钟会将所有数字跳闪一遍,这样可以有效抑制阴极中毒,延长辉光管寿命
每天会自动连接互联网校时
如果纽扣电池没电,或者长时间没有联网校时,程序会判断为当前时间不可靠
这时候时间数值会闪烁显示,提示用户
联网校时的时长我设定为7天
在nixieHardware.h中可以通过修改MAX_OFFLINE_DAY的数值来调整

直接上电的话,会尝试连接已保存的WiFi热点,同时辉光管显示全1在连接成功或者10秒未成功连接之后,进入正常运行,显示时间
而按住P1按键上电(其实就是P1焊盘和GND短接),会启动AP模式和本地网页服务器此时辉光管显示全0
AP模式默认的wifi热点名称是nixieClock,密码是12345678
在network.h中,可以修改DEFAULT_AP_SSID和DEFAULT_AP_PASSWORD来调整
在连接ap热点后,应该会自动跳转到配置主页
当然,也可以用http://NixieClock.local或者IP地址来访问配置页面
在配置页面里,可以设置家里的路由器,也可以直接上传新的程序
配置页面里的功能大家就自己探索吧~

ESPnixie----基于ESP32的辉光钟图15    ESPnixie----基于ESP32的辉光钟图16

ESPnixie----基于ESP32的辉光钟图17    ESPnixie----基于ESP32的辉光钟图18

再说一下,预留了数字间冒号的位置,程序里也已经支持了
但是我本人不太喜欢有冒号(这个就看个人口味了,有人就很喜欢)
要的话直接焊上IN3辉光管就行了~

-----福利时间-------
附件里提供了完整的项目文件
包括硬件原理图,PCB文件(已经修正所有已知bug啦)
还有软件源代码以及编译好的镜像
不过完整打包的项目超出了论坛附件大小限制,所以上传到百度云啦
附件是传送门

代码是在PlatformIO平台下开发的,直接就能编译使用了~
初次使用需要在串口下烧写,后续就可以OTA烧写
编译出来的firmware.bin文件,直接可以使用配置页面上传

如果要在ArduinoIDE下开发的话,这里给出一个迁移方案(未进行实际测试,欢迎大家测试反馈)
首先需要部署好在ArduinoIDE下的ESP32开发工具链(废话)
新建一个Arduino项目,将src文件夹里的main.cpp的内容完全复制进ino文件内
将src文件夹下的其余文件,直接复制到ino文件同一目录下
重启arduinoIDE之后,应该能直接看到别的文件
在库管理器里加载RTC,NTPClient,AutoConnect这三个库
然后尝试编译一下吧~(记得设置好ESP32本身的配置信息哦)
如果编译成功的话,项目–>导出已编译的二进制文件,可以获取bin文件
然后通过配置页面上传就行了
如果在ArduinoIDE下编译有问题欢迎反馈~我会尽力帮忙
-----------py交易时间--------
因为做这个项目花了不少钱,所以打样时候多的板就出了回点血TAT
出完为止
7块空板-----70元一块(实际上我打样10块750元.....就算70了吧)
所有器件(XC6206已换成AMS1117,除了辉光管)------ 60元一套
如果需要我代焊好的话emmmm
就算20元手工费吧。。。去恰一杯DQ(冬天才适合吃冰淇淋!)【所以没有老婆的零花钱了】
此外可以单独加配木质外壳(激光切割,未组装)
也20元吧。。。毕竟zz同志被我白嫖画的外壳,请他恰顿饭去【所以也没有老婆的饭了】

-----参考信息------
HV57708参考手册http://ww1.microchip.com/downloa ... Sheet-20005861A.pdf

ESP32参考手册https://www.espressif.com/sites/ ... uc_datasheet_cn.pdf

SN74LVC125参考手册https://atta.szlcsc.com/upload/p ... 4/1457707114011.pdf

MAX1771参考手册https://atta.szlcsc.com/upload/p ... FB84B5C72F3E59A.pdf

DS3231手册https://atta.szlcsc.com/upload/p ... 5/1457707245139.pdf

AutoConnect项目地址https://hieromon.github.io/AutoConnect/index.html

ArduinoIDE下ESP32开发环境部署https://github.com/espressif/ard ... e/boards_manager.md

-------最后碎碎念-------
项目开发fishGan
外壳设计zz
特别感谢老婆大人doudou帮忙排版和加彩蛋~
(哼我也会加彩蛋)
本项目未经许可不得商用!
不得单独转载项目文件包!必须连同本文转载!
转载请注明原作者和出处~


nixieclock.pdf

51 KB, 下载次数: 6604

FishGan  高级技师
 楼主|

发表于 2020-3-17 09:06:06

DFryl-cTvM8 发表于 2020-3-16 16:24
我尝试了这个方案但是在串口烧写的时候出了问题,“Chip sync error: Failed to connect to ESP32”, IO0 ...

首先检查一下IO2的电平,烧写模式的时候,IO2也必须拉低的。
有一些板子,是带SD卡的,而且用SPI_MMC控制器的话,IO2就会有个上拉电阻
此外,IO0拉低以后,板卡需要复位一次执行烧写引导程序。
我不知道你用的USB-UART转换器是独立的还是集成的。
如果是独立的,大概率是因为你没接DTR引脚,经典设计是使用DTR信号来复位板卡
此外你也要检查你的串口信号线电平,如果5V直接接ESP32是不行的。
建议用3.3V的USB-UART模块,或者加电平转换器。实在没条件的话,两根信号线上分别串联一个470欧姆电阻
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-7-5 15:11:18

ARRGANT 发表于 2020-7-2 14:18
代码烧进模组后,读串口“[E][WiFiSTA.cpp:219] begin(): connect failed!”后无限打1。 ...

你这里有两个问题源。
首先提示connect failed是因为没能成功连接WiFi,这个报错并不影响正常走时和刷新辉光管显示。但是具体是哪一环节出错我需要你更多信息才能判断。
其次,无限打1是在程序的第57行(loop函数的第二行)Serial.println(pinIntStatus);这一句。pinIntStatus这个引脚要连接到DS3231的SWQ引脚的。在初始化阶段,这个引脚被配置成了秒脉冲输出。无限1就说明ESP32没有读到这个信号。排查一下硬件连接问题(线好不好,连接的IO和宏定义是不是对的起来)
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-8-27 09:23:56

DFrJVfK7hzP 发表于 2020-8-26 18:49
这样啊  那您能不能分享下您当时的订单 ?好多器件不知道该咋买  。。。不是很懂硬件。。。。 ...

这我要找一下了,好久之前的订单了。。其实在PCB和原理图那个文件夹里,有BOM表,按照BOM表买就行了。emmm最好的话还是直接从PCB文件导出一下BOM(似乎我已经导出好的那个BOM是老的,还是用XC6206的,但是PCB里已经修改了)
回复

使用道具 举报

KIKIYA  管理员

发表于 2019-12-23 16:59:56

哇好久不见
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2019-12-23 17:10:47


hhh是的!失踪人口回归了之前一阵忙疯了
回复

使用道具 举报

killerlist  中级技匠

发表于 2019-12-24 08:54:14

厉害!!!赞一个!!!
201912246331..png
回复

使用道具 举报

hnyzcj  版主

发表于 2019-12-24 17:24:35

漂亮
回复

使用道具 举报

gada888  版主

发表于 2019-12-25 10:18:14

很漂亮
回复

使用道具 举报

topoer  学徒

发表于 2020-2-16 13:07:25

可以私信下你的联系方式么
回复

使用道具 举报

DFHk-0ykaN8  见习技师

发表于 2020-3-9 09:29:52

感谢楼主的分享,学习中。
回复

使用道具 举报

帅猫  高级技师

发表于 2020-3-12 21:48:36

漏卮还有货吗
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-3-13 09:25:55


有的,成品板还有一套。空板还有3块
回复

使用道具 举报

DFryl-cTvM8  学徒

发表于 2020-3-16 16:24:07

我尝试了这个方案但是在串口烧写的时候出了问题,“Chip sync error: Failed to connect to ESP32”, IO0和地已经短接了。是有什么其他步骤没做吗?
回复

使用道具 举报

ARRGANT  学徒

发表于 2020-6-17 16:30:09

代码有问题呀
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-6-19 20:38:43


哪里有问题?
回复

使用道具 举报

ARRGANT  学徒

发表于 2020-7-2 14:18:18


代码烧进模组后,读串口“[E][WiFiSTA.cpp:219] begin(): connect failed!”后无限打1。
回复

使用道具 举报

DFrJVfK7hzP  学徒

发表于 2020-8-21 07:40:54

您好请问还有板子和元器件包卖吗?
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-8-22 20:13:19

DFrJVfK7hzP 发表于 2020-8-21 07:40
您好请问还有板子和元器件包卖吗?

额没有了......都出完了......
回复

使用道具 举报

DFrJVfK7hzP  学徒

发表于 2020-8-24 17:14:33

FishGan 发表于 2020-8-22 20:13
额没有了......都出完了......

您可以加下QQ吗 能分享下当时购买的链接吗?  好多都不好找了。。。。我的QQ 978572839  麻烦您。。。
回复

使用道具 举报

FishGan  高级技师
 楼主|

发表于 2020-8-25 10:20:40

DFrJVfK7hzP 发表于 2020-8-24 17:14
您可以加下QQ吗 能分享下当时购买的链接吗?  好多都不好找了。。。。我的QQ 978572839  麻烦您。。。 ...

我不用QQ的......
以及也没啥购买链接啊。电路板是自己设计然后打样的,器件都是立创商城,辉光管淘宝搜一下IN14一大堆啊
回复

使用道具 举报

DFrJVfK7hzP  学徒

发表于 2020-8-26 18:49:01

FishGan 发表于 2020-8-25 10:20
我不用QQ的......
以及也没啥购买链接啊。电路板是自己设计然后打样的,器件都是立创商城,辉光管淘宝搜 ...

这样啊  那您能不能分享下您当时的订单 ?好多器件不知道该咋买  。。。不是很懂硬件。。。。
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail