设计一款小巧的物联网桌面时钟
你是否曾拿起手机查看时间,结果却在接下来几分钟里不断滑动通知或浏览社交媒体?
这种情况我们每个人都经历过。
在学习或进行电子项目时,我注意到这个小习惯一次又一次地打断了我的注意力。我不需要功能繁多的智能设备,我只需要一个能即时显示时间、不产生干扰的装置。
因此,我创造了Nexus。它是一款专为简洁、无干扰的工作环境设计的小巧Wi-Fi桌面时钟。它不会抢夺你的注意力,而是安静地摆放在桌面上,让你一眼就能看到所需信息,从而专注于真正重要的事情。
无论我是在学习、设计PCB、编写代码,还是制作下一个DIY项目,Nexus始终陪伴在我身边。它是一个简单的提醒:保持当下,持续创造,让每一分钟都值得被珍惜。
由Waveshare ESP32-C3驱动,Nexus可通过Wi-Fi自动与网络时间协议(NTP)服务器同步,因此无需传统实时时钟模块或手动调整,即可始终显示准确的时间。
清晰的Waveshare 0.96英寸OLED显示屏可显示当前小时、分钟、上午/下午指示以及以DD/MM/YYYY格式显示的当前日期。所有组件均集成于我从Autodesk Fusion 360全新设计的定制外壳中,使这款时钟外观简洁现代,能自然融入任何办公桌面。
有时,最简单的设备反而能帮助我们保持专注。
1:CAD与3D打印
第一步是在Autodesk Fusion 360中为Nexus设计一个紧凑的外壳。我的目标是打造一个干净简约的机箱,既能牢固固定所有元件,又具备足够的现代感,轻松融入各种工作环境。
如果您希望修改设计或加入个人风格,可以打开Fusion 360项目并按需进行编辑。此外,我还提供了可供直接打印的STL文件,方便有兴趣的人自行打印外壳。
3D打印文件:
•1× Cover.stl
•1× Housing.stl
我使用黑色PLA打印了外壳,但你可以选择任何符合自己风格的材料或颜色。
2:显示屏组装
将0.96英寸的OLED显示屏小心地插入外壳的前部开口,确保其与前面板表面完全平齐、垂直对齐。确认对准无误后,用少量强力胶水在边缘处固定。
避免使用过多胶水,以免渗入显示屏或将来导致拆卸困难。
3:连接显示屏
只需按照上方的接线图,将每个引脚连接到微控制器对应的GPIO上。请耐心操作,在上电前仔细检查每处连接,以避免接线错误。
本项目所使用的引脚映射如下:
•VCC → 3.3V
•GND → GND
•DIN(MOSI)→ GPIO 21
•CLK(SCK)→ GPIO 20
•CS → GPIO 6
•DC → GPIO 5
•RES → GPIO 7
完成所有连接后,即可进入下一步。
4:组装MCU
当显示屏接好后,小心地将ESP32-C3 Zero放入外壳内。整齐排列电线,确保其放置舒适,不给焊点造成压力。
请确保USB Type-C接口与外壳侧面的开口对齐,以便轻松上传代码或为时钟供电。
5:最终组装
所有部件安装完毕后,是时候盖上外壳了。小心地将盖子装在机箱上,确保其四周贴合平整。确认安装到位后,沿边缘涂抹少量强力胶水,固定盖子。
6:设置Arduino IDE
在上传代码之前,您需要先安装 Arduino IDE 并添加 ESP32 板子的支持。
安装 Arduino IDE
如果尚未安装,请从 Arduino 官方网站下载并安装最新版本的 Arduino IDE 2.x。
添加 ESP32 板子支持
打开 Arduino IDE,进入“文件”→“首选项”。在“附加板管理器 URL”字段中粘贴以下网址:
如果您已有其他板子的 URL,只需将此 URL 按照新行添加,然后点击“确定”保存更改。
安装 ESP32 板子包
转到“工具”→“板子”→“板子管理器”,搜索“ESP32”,然后安装 Espressif Systems 提供的最新 ESP32 包。
7:配置代码
从Nexus GitHub仓库下载项目并解压ZIP文件。在Arduino IDE中打开Nexus.ino文件。
如果这是你首次打开项目,请确保已安装所需的库。转到“绘图”→“包含库”→“管理库...”,安装以下库:
•Adafruit GFX库
•Adafruit SSD1306
•NTPClient
安装完库后,查找代码中的Wi-Fi凭据:
将“Your SSID”和“Your Password”替换为你的Wi-Fi网络名称和密码。
接下来,找到NTP设置:
数值19800是印度的UTC偏移秒数(UTC +5:30)。如果你所在的国家或时区不同,请将其替换为对应地区的正确UTC偏移值。
8:上传代码
现在使用USB Type-C数据线将ESP32-C3 Zero连接到电脑。在Arduino IDE中,选择正确的板卡和COM端口,然后从“工具”菜单中配置以下设置:
•板卡 → ESP32C3开发模块
•启动时启用USB CDC → 启用
•CPU频率 → 160 MHz
•核心调试级别 → 无
•上传代码前清除全部闪存 → 禁用
•闪存频率 → 80 MHz
•闪存模式 → QIO(如果上传失败则使用DIO)
•闪存大小 → 4MB
•分区方案 → 默认4MB,使用SPIFFS(1.2MB应用程序 / 1.5MB SPIFFS)
•上传速度 → 921600
•JTAG适配器 → 禁用
完成所有配置后,点击“上传”按钮,等待程序上传完成。
9:测试
现在是测试你的Nexus设备的时候了。当板卡上电并连接到Wi-Fi网络后,它会自动与NTP(网络时间协议)服务器同步,获取当前的日期和时间。
几秒钟后,OLED显示屏顶部将显示当前日期,格式为DD/MM/YYYY,下方则显示当前时间,格式为12小时制(HH:MM),并附带AM/PM指示。
10:总结
就这样——你的Nexus Wi-Fi桌面时钟已经准备就绪!
虽然这是一个简单的项目,但它已成为我工作空间中最喜欢的添加之一。我不再每次需要查看时间时都去拿手机,只需瞥一眼Nexus,就能专注于手头的工作。有时候,正是细微的变化带来了最大的改变。
本文编译自hackster.io





