ArClock——一款采用实木包裹的智能显示器

崧峻
转载
发布时间: 2025-06-14 14:48:06 | 阅读数 0收藏数 0评论数 0
封面
它基于支持 WiFi 的微控制器构建,可驱动可寻址 RGB LED 矩阵,位于覆盖有木质饰面的 3D 打印外壳内。它使用 NTP 显示准确时间,还可以显示当地天气和 ping 时间。所有配置均通过内置 Web 界面进行。这是一个非常简单的构造,结果引人注目且很有品位(取决于它的配置方式!)。

准备工作:

材料:

所需零件如下:

  1. 一个 8x32 WS2812B LED 矩阵,例如这个https://www.aliexpress.com/item/-/32944813367.html...(约 12 美元)。我使用了“ECO”类型,可以稍微降低功耗。
  2. Wemos D1 mini v3(或克隆),例如这个https://www.aliexpress.com/item/4001291931302.html...(约 2 美元)。确保您购买的是具有两个安装孔的 v3 型号。
  3. 至少 330mm x 200mm 的未粘合枫木单板(我用的是这个https://www.ebay.co.uk/itm/283404577831),大约 17 美元。请注意,A4 纸不够大(除非您想尝试连接两块木板,除非您有经验,否则我不建议您这样做)。
  4. 2.5 毫米面板安装电源插座,例如这个https://www.ebay.co.uk/itm/281955435581(<$1)。
  5. 额定电流约为 1A 的功率二极管,例如 1N4001。
  6. 几个 3 针 JST 连接器,例如这些https://www.aliexpress.com/item/32920898043.html

零件总成本约为 32 美元。您还需要:

  1. 使用具有足够大床的 3D 打印机。我设计它是为了支持 Prusa i3 和 Creality Ender 3 等常见打印机,但如果你有更小的打印机,请在继续操作之前进行检查。
  2. 一些连接线的额定电流至少为 4A(例如 22 AWG)。
  3. 带 2.5 毫米插孔的 5V 电源。我建议使用具有过流保护功能的优质 4A 电源,但这取决于您希望显示屏有多亮。2A 在实践中可能就足够了,但我用 8A 电源制作了原型(因为我原来的电源因亮度过高而爆炸了!)。
  4. 接触胶,例如 Thixofix。
  5. 聚氨酯木材清漆(我使用了一层游艇清漆和两层清漆)。
  6. 几种不同粒度的砂纸(约120和200)。

工具:

工具名称
数量
备注
烙铁和焊料。
1

打印

该设计仅打印两半。STL 和 OpenSCAD 源代码可在此处获取:


https://github.com/mattaubury/ArClock


切片机和打印机的设置并不重要,但我选择了:

  1. 100% 填充
  2. 0.2mm层高
  3. 床边粘合
  4. 白色PLA
  5. 210°喷嘴
  6. 60°床
  7. 40 毫米/秒

这是一个相对较大的设计,因此在这些设置下,打印将需要一天以上的时间。



您应该使用任何可以在机器上清晰打印的设置。表面光洁度并不重要(我们稍后会介绍),但您需要避免出现严重的斑点或条纹,因为这会使插入 LED 矩阵变得困难。


2

电子设备

该电路相对简单。

我们将直流插孔的电源直接接入矩阵。由于矩阵很大,我为所有三个可用点(输入、输出和矩阵中间)供电。

电源也通过二极管从插孔供应到 ESP8266 电路板。这样,最终设计可以通过单个插孔供电,但这意味着在通过 USB 对 ESP8266 进行编程时,我们不会将电源从 USB 传输到矩阵(这很容易消耗 >4A,远远超出 USB 连接的限制)。

唯一的其他连接是从 ESP8266 到矩阵的单线控制信号。

我在 ESP8266 上使用了 90 度接头,以便更容易地将其焊接在一起,并使用热缩管使一切保持整洁。

互联网上有一些建议(例如https://learn.adafruit.com/adafruit-neopixel-uberg...)建议在矩阵上使用去耦电容器,并在 ESP8266 和矩阵控制线之间添加电阻器。我在这里没有使用它们,但建议至少使用去耦电容器。

此时,我将跳过这一步并对 ESP8266 进行编程以检查一切是否按预期工作,然后再继续组装。

3

组装

要组装,首先将 ESP8266 板拧到底座上。您需要几个小自攻螺钉 - 我从一些废弃的设备中找到了它们;它们通常用于将 PCB 安装在儿童玩具等物品上。检查是否可以从机箱底部访问 Micro-USB 连接。



现在将 LED 矩阵滑入外壳的主要部分。它有点紧(也许我应该留出更多空间!)但只要轻轻推一下它就会适合。如果您很难,请尝试稍微弯曲矩阵的短端。当您将其滑入时,您可能会发现它卡住了 - 通常这是因为一个或多个 LED 卡在了外壳的一个孔中。用螺丝刀轻轻戳它,同时对矩阵施加压力,您应该会发现它滑入正常。



现在插入直流电插孔。插孔上的凸耳应弯曲成直角,您可能需要轻轻打开外壳一点才能将插孔放入。如果您很难将其穿过孔,只需用刀将其打开一点即可。



安装完成后,确保与矩阵的连接牢固,沿着底座的鳍片涂上一层薄薄的强力胶,然后将底座滑入主体。稳稳握住几秒钟,就大功告成了。


4

贴面

将饰面切成足够大的块,以覆盖机箱的正面、背面、顶部和侧面,边缘留出适当的余地(例如 1 厘米)。在后部,打一个孔,大小刚好足以让电源连接器大致穿过正确的位置。您也可以选择在底部边缘添加饰面。



分阶段进行,先涂后层,然后涂两侧,然后涂顶部,最后涂前层。每一步完成后,都需要让胶水干燥,然后修整和打磨,所以这需要一段时间。



在每个阶段,在表壳和单板的“内侧”(较浅的一侧)上涂上一层薄薄的接触胶。这个过程可能很麻烦,所以要戴上手套,确保通风良好。等待十分钟,直到胶水干燥,然后将单板和表壳放在一起,用力按压以确保接触良好,尤其是边缘处。您可以选择在胶水干燥时夹住单板(我没有这样做),但注意不要用力过大,因为单板很容易损坏。



让胶水干燥几个小时,然后用锋利的刀修剪饰面。不要试图修剪得一丝不苟,留出大约 1 毫米的余量。然后,使用中等粒度的砂纸(例如 120 粒度)沿着边缘打磨饰面。



将饰面贴到每一侧(可见)后,就到了最后的修饰时间。


5

上光

上光之前,先清除边缘处多余的粘合剂,用细砂纸(200 粒度)打磨琴身,并用少量白酒精清除所有灰尘或痕迹。



清漆的选择很大程度上取决于个人品味——值得在单板碎片上进行试验以找到您喜欢的组合。



我发现枫木本身的颜色太浅,所以我涂了一层游艇清漆,它带有橙色色调,使其更接近橡木的色调。然后我涂了两层透明缎面聚氨酯清漆,以获得漂亮的饰面,在两层之间用细砂纸(200 粒度)打磨。按照所选清漆上的说明进行干燥和重新涂漆,并记住在通风良好的地方工作。



让最后一层完全干燥,然后将螺母安装到电源连接器上以将其固定到位。


6

编程

首先,安装 Arduino IDE 并添加 ESP8266 包,如下所述:https://github.com/esp8266/Arduino

选择“LOLIN(WEMOS) D1 R2 & mini”板。

在库管理器中添加以下库:

  1. ESP8266-ping
  2. Adafruit GFX 库
  3. Makuna 的 NeoPixelBus
  4. 快速发光二极管

然后从 GitHub(在 ArClock 子目录中)编译草图:

https://github.com/mattaubury/ArClock

如果您以前从未使用过基于 ESP8266 的主板,则需要安装 CH340G 驱动程序,例如从这里https://sparks.gogo.co.nz/ch340.html

将开发板插入电脑。选择 IDE 中的端口,并将代码下载到开发板。

现在通过 DC 插孔连接 5V 电源。

7

配置

一旦插入,ArClock 将短暂显示蓝色动画 WiFi 标志,这表明它已经创建了一个临时 WiFi 网络。

用手机连接到此网络 - 几秒钟后,您将看到一个页面,让您输入网络名称和密码。确保单击完成,然后单击重启按钮以重新启动时钟。

如果一切顺利,您会看到 WiFi 徽标变成绿色,大约一秒钟后,时钟应显示当前时间(UTC)。如果出现问题,时钟将在 30 秒后放弃并再次创建自己的网络。

假设成功了,将浏览器指向http://arclock.local以连接到时钟。从这里您可以尝试各种预设并调整时钟的外观。

2024 年 8 月更新- OpenWeatherMaps v2.5 API 已停用,因此 ArClock 已转而使用出色的open-meteo.org。请从 GitHub 获取最新代码,将其上传到您的时钟,然后输入您的位置。无需 API 密钥!

为了获取天气数据,您需要输入经度和纬度。例如,请参阅https://www.latlong.net/

您可以通过 webhook 自动更改显示内容。例如,要显示一条消息,您可以使用:

curl http://arclock.local/show -d message="您的消息"

或者改变亮度:

curl http://arclock.local/update -d 亮度=10
8

结束语

感谢您阅读到此!我希望您有兴趣构建一个 ArClock,请在下面的评论中告诉我您的进展如何 - 我很乐意回答任何问题!



关于设计的一些想法:






  1. OpenSCAD 代码可以通过各种参数进行调整——应该可以修改它以支持其他主板或改变显示器的曲线。


  2. 我尝试了几种不同的木质贴面,最后选择了枫木。我强烈建议使用浅色木材,只有浅色图案,否则会阻挡大部分光线。即使是橡木也能产生强烈的光泽,过滤掉几乎所有的蓝光。


  3. 代码注释得相当好,因此应该很容易调整行为并添加新功能。但请注意,ESP8266 上的 RAM 非常少,代码已经使用了大部分。


  4. 请注意,ArClock 没有任何身份验证,因此只能在受信任的网络上使用!


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载