用ESP32做一个数字沙漏

2024-04-246.2万
精华项目
AI 快速预览详细 收起
这个项目是一个基于ESP32的数字沙漏,使用两个GC9a01圆形显示屏和RTC模块来显示时间的流逝。整个项目的构建和编程都相当简单,只需要一些基础的Arduino知识。沙漏的设计留有很大的发挥空间,可以使用木材、纸板、塑料或3D打印材料制作外壳。程序通过无线电加密信号获取时间,并将分钟数转换为沙子三角形的坐标,确保沙子的流动正好持续一小时。小时数则显示在上方的玻璃上。


沙漏用来形象地显示时间的流逝,现在市面上很难找到大型沙漏了,常见的只有厨房用的小沙漏,大概能显示3到5分钟。

在这个项目里,作者制作了一个完整流程正好为一小时的沙漏,小时数会在顶部的玻璃上显示。

这个项目的构建和编程都相当简单,只需要你有一些基础的Arduino知识就行。同时,沙漏在外观设计上也留有很大的发挥空间。

用ESP32做一个数字沙漏图1

所需材料
用ESP32做一个数字沙漏图2
  • ESP32
  • 2个 GC9a01 圆形显示屏
  • RTC 模块
  • 导线
  • 用于外壳的材料:木材、纸板、塑料、3D打印
步骤1:接线
这个是整个项目中可能相对最复杂的部分,但是别担心,一步一步来,你会发现也没那么难。

显示屏和RTC都需要一个3.3V的电源和GND。

用ESP32做一个数字沙漏图3

RTC还需要两个额外的连接:

用ESP32做一个数字沙漏图4

按照表格连接显示屏。TFT1是上方的显示屏,TFT2是下方的。
步骤2:程序和RTC
对于ESP32,你需要在Arduino IDE中进行以下设置:

将程序上传到ESP32。如果接线正确,应该可以正常工作。

RTC模块通过无线电加密信号获取时间。可能需要几分钟才能显示正确的时间。从接收到的数据中分离出分钟和小时数,并用于我们的程序。

分钟数被转换为沙子三角形的坐标,确保沙子的流动正好持续一小时。

小时数只在上方的玻璃上显示。

上传 HourGlass.ino 或 HourGlass-demo.ino 到你的ESP32。确保 colors.h 文件在同一文件夹中。

程序可以在文末打包下载。
步骤3:图形工作原理
图形由简单的几何元素组成。上方的沙子最初显示为一个填充矩形(tft1.fillRect(…))。由于圆形显示屏,这实际上无法识别。沙子流动形成的圆锥是通过一个黑色三角形模拟的,这个三角形随时间改变形状和位置。底部堆积的沙子也由三角形表示。

小时数简单地显示在上方的玻璃上。
步骤4:外壳
作者倾向于使用3D打印机制作的外壳,使用Tinkercad设计。

作者将其分成3部分,这样时钟就可以轻松放入孔中。这是能得到的最接近沙漏形状的设计。

用ESP32做一个数字沙漏图5

stl文件可以在文末打包下载。

你不用将沙漏翻转。沙子会在一小时后神奇地“移回”上方的玻璃中。

原文地址:https://www.instructables.com/Digital-Hourglass/

项目作者:Markus Opitz

译文首发于:DF创客社区

转载请注明来源信息

数字沙漏.zip

90.29 KB, 下载次数: 6450

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
IOHDHQ
IOHDHQ
圆形屏幕哪来的?
- 没有更多了 -