这可能是一些读者的想法,什么?另一个点阵时钟?
2014 年,我设计了我的第一个版本的精确时钟,它结合了内部/外部温度计。当时时钟由 Arduino Mini 控制,并从 DCF 接收器接收时间。DCF77 是德国的本地时间发射器,但是使用该技术,设备的使用仅限于中欧。当我发现 ESP32 提供的出色选项后,我决定将设计更改为连接 WLAN 的 NTP 时钟。该时钟提供了一个 Web 界面,可以在其中配置本地时区以及要使用的 NTP 服务器。通过这种设计,时钟可以在世界上任何有 WLAN 的地方使用,如果没有 WLAN,您可以连接 GPS 接收器模块进行同步。
我的项目特点
两个温度传感器 DS18B20 或 DS18S20 通过电缆连接以测量内部和外部温度
一个湿度传感器 DHT22 用于测量内部湿度
一个 56x32 点的 LED 点阵显示器,总共 1792 个 LED(28 个 Max7219 模块)
日期字符串的可配置语言德语、英语或法语
以°F 或°C 为单位的可配置温度显示
内置 WLAN 接入点,用于所有设置(尤其是 WLAN)的
初始
配置
调试电路
12V 电源通过 DC 插孔 J1 连接到系统。它通过保险丝 F1 (1A) 为开关 DC/DC 转换器供电。需要使用开关稳压器(降压转换器,而不是线性稳压器)以避免设备过热。
稳压器必须能够在 5V 时提供至少 2、5A 的电流。
在连接显示器和 ESP 之前先测量正确的电压,确保有 5V!5V 足以运行 28 Max7219、NodeMCU ESP32 和驱动 IC 7408。
NodeMCU 有一个内置稳压器,在 MCU 的 pin1 上提供 3、3V,这用于运行 DHT22 湿度传感器和两个用于内部和外部温度的单线传感器。这两者直接从数据线获得功率(“寄生功率”)。对于外部传感器,电缆长度至少为 10m。
寄生电源通过电阻器 R1 和 R2 提供。光电晶体管 SFH300 测量环境亮度并通过低通 R3/C1 将其反馈给 MCU 的 IO36。该晶体管是可选的,其他类型的光电晶体管也可以完成这项工作。您可以使用电位器根据需要调节亮度。
该电路中的 7408 用作电平转换器和驱动器,用于向 Max7219 链发送信号。它通常在没有这样的驱动程序的情况下工作,但只能达到一定长度的链条。在我的测试过程中,如果没有它,我使用的 28 个模块的链长度将无法工作。IO16 准备从外部 GPS 模块接收 GPS 数据,以防没有可用的 WLAN 或不应该使用 WLAN。这个是可选的。
显示屏
有 28 个 LED 矩阵模块 (8x8),由 28 个 Max7219 驱动 IC 控制。它们是菊花链式的,设置为四行,每行 7 个块。最初我买了有 4 个块的模块并将它们连接起来(每行一个块被切断),但由于块之间的空间,我对结果不满意,所以我设计了自己的 PCB,它并排放置 7 个块,没有可以选择组合其中的 4 个空格,这样我的显示现在就没有空格了。
这也可以通过随处可用的标准模块来完成,也许有一家供应商的 LED 模块并排放置。您将需要在每一行中切断一个块,因此您有四个备用 LED 块以防万一以后出现故障。接线是标准的,第一个接收数据的模块位于右下位置,数据总是从右到左,从下到上流动。
软件
对于软件设计,我使用了 Visual Studio Code 下的免费 Platform IO。框架是 Arduino,但 VS Code IDE 比 Arduino IDE 更加用户友好。网上有很多关于如何使用 Platform IO 和 ESP32 IDE 安装 VS Code 的教程。
当软件启动时,它会尝试连接到显示其 IP 地址的预配置 WLAN 几秒钟,直到它到达 NTP 服务器。首次启动时未配置任何内容,因此 WLAN 访问将失败。在这种情况下,它会切换到接入点 (AP) 模式并充当 192.168.4.1 上的 WLAN AP,您可以使用智能手机或笔记本电脑连接到该 AP。AP 名为“MatrixClock”,密码为 123456789。要打开配置网页,请使用 Web 浏览器导航至显示屏显示的 IP 地址。该网页允许您配置所需的内容,包括时钟将连接到的 WLAN 设置。保存设置并单击“重新启动”。时间以较大的数字显示,温度、湿度和日期以较小的文本显示。日期从右到左连续滚动显示日期,月、年和星期几。内部和外部温度以及内部湿度交替来回切换,而过渡包括随机动画。显示的时间、日期和温度位置每 10 分钟随机变化一次。
硬件
正如我之前提到的,我制作了特殊的 PCB,可容纳 7 个驱动器 IC 和 7 个矩阵 LED 块。定义亮度的 Max7219 驱动器上的电阻被选为 39K,这是相当高的,例如,我的蓝色模块即使调整到最低水平也太亮了。
如果您使用预建模块,您可能需要更改默认电阻(每个 LED 块只有一个,易于定位)。光电晶体管“看”向观察者的方向,环境光越多,亮度就会增加。
8x8 LED 模块有不同颜色可供选择,我能够找到红色、绿色和蓝色,但不确定是否有其他颜色可用。重要提示:LED 模块有两种不同的引脚输出。基本的区别是行和列引脚的位置以及阴极和阳极的位置。注意:如果您使用我的 PCB 而不是现成的模块,请务必根据提供的原理图使用正确的模块。如果您使用错误的模块,它将无法正常工作。
整个电路覆盖在与 LED 相同颜色的大型有机玻璃下方。它安装在一个手工制作的胶合板盒中,一个简单的矩形背板,带有四个侧壁。NodeMCU 和 7408 与 5V 稳压器和保险丝一起焊接在一块面包板上。温度传感器通过 3、5 毫米插孔和电缆连接。在这个特定的时钟中,我没有包含 DHT22,但是我测试了它的功能并且它工作正常。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !