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





准备工作:
材料:
所需零件如下:
- 一个 8x32 WS2812B LED 矩阵,例如这个https://www.aliexpress.com/item/-/32944813367.html...(约 12 美元)。我使用了“ECO”类型,可以稍微降低功耗。
- Wemos D1 mini v3(或克隆),例如这个https://www.aliexpress.com/item/4001291931302.html...(约 2 美元)。确保您购买的是具有两个安装孔的 v3 型号。
- 至少 330mm x 200mm 的未粘合枫木单板(我用的是这个https://www.ebay.co.uk/itm/283404577831),大约 17 美元。请注意,A4 纸不够大(除非您想尝试连接两块木板,除非您有经验,否则我不建议您这样做)。
- 2.5 毫米面板安装电源插座,例如这个https://www.ebay.co.uk/itm/281955435581(<$1)。
- 额定电流约为 1A 的功率二极管,例如 1N4001。
- 几个 3 针 JST 连接器,例如这些https://www.aliexpress.com/item/32920898043.html
零件总成本约为 32 美元。您还需要:
- 使用具有足够大床的 3D 打印机。我设计它是为了支持 Prusa i3 和 Creality Ender 3 等常见打印机,但如果你有更小的打印机,请在继续操作之前进行检查。
- 一些连接线的额定电流至少为 4A(例如 22 AWG)。
- 带 2.5 毫米插孔的 5V 电源。我建议使用具有过流保护功能的优质 4A 电源,但这取决于您希望显示屏有多亮。2A 在实践中可能就足够了,但我用 8A 电源制作了原型(因为我原来的电源因亮度过高而爆炸了!)。
- 接触胶,例如 Thixofix。
- 聚氨酯木材清漆(我使用了一层游艇清漆和两层清漆)。
- 几种不同粒度的砂纸(约120和200)。
- 烙铁和焊料。
打印






该设计仅打印两半。STL 和 OpenSCAD 源代码可在此处获取:
https://github.com/mattaubury/ArClock
切片机和打印机的设置并不重要,但我选择了:
- 100% 填充
- 0.2mm层高
- 床边粘合
- 白色PLA
- 210°喷嘴
- 60°床
- 40 毫米/秒
这是一个相对较大的设计,因此在这些设置下,打印将需要一天以上的时间。
您应该使用任何可以在机器上清晰打印的设置。表面光洁度并不重要(我们稍后会介绍),但您需要避免出现严重的斑点或条纹,因为这会使插入 LED 矩阵变得困难。
电子设备






该电路相对简单。我们将直流插孔的电源直接接入矩阵。由于矩阵很大,我为所有三个可用点(输入、输出和矩阵中间)供电。电源也通过二极管从插孔供应到 ESP8266 电路板。这样,最终设计可以通过单个插孔供电,但这意味着在通过 USB 对 ESP8266 进行编程时,我们不会将电源从 USB 传输到矩阵(这很容易消耗 >4A,远远超出 USB 连接的限制)。唯一的其他连接是从 ESP8266 到矩阵的单线控制信号。
我在 ESP8266 上使用了 90 度接头,以便更容易地将其焊接在一起,并使用热缩管使一切保持整洁。
互联网上有一些建议(例如https://learn.adafruit.com/adafruit-neopixel-uberg...)建议在矩阵上使用去耦电容器,并在 ESP8266 和矩阵控制线之间添加电阻器。我在这里没有使用它们,但建议至少使用去耦电容器。
此时,我将跳过这一步并对 ESP8266 进行编程以检查一切是否按预期工作,然后再继续组装。
组装










要组装,首先将 ESP8266 板拧到底座上。您需要几个小自攻螺钉 - 我从一些废弃的设备中找到了它们;它们通常用于将 PCB 安装在儿童玩具等物品上。检查是否可以从机箱底部访问 Micro-USB 连接。
现在将 LED 矩阵滑入外壳的主要部分。它有点紧(也许我应该留出更多空间!)但只要轻轻推一下它就会合适。如果您很难,请尝试稍微弯曲矩阵的短端。当您将其滑入时,您可能会发现它卡住了 - 通常这是因为一个或多个 LED 卡在了外壳的一个孔中。用螺丝刀轻轻戳它,同时对矩阵施加压力,您应该会发现它滑入正常。
现在插入直流电插孔。插孔上的凸耳应弯曲成直角,您可能需要轻轻打开外壳一点才能将插孔放入。如果您很难将其穿过孔,只需用刀将其打开一点即可。
安装完成后,确保与矩阵的连接牢固,沿着底座的鳍片涂上一层薄薄的强力胶,然后将底座滑入主体。稳稳握住几秒钟,就大功告成了。
贴面







将单板切成足够大的块,以覆盖机箱的正面、背面、顶部和侧面,边缘留出适当的余地(例如 1 厘米)。在后片上打一个孔,大小刚好足以让电源连接器大致穿过正确的位置。您也可以选择在底部边缘添加单板。
分阶段进行,先涂后层,然后涂两侧,然后涂顶部,最后涂前层。每一步完成后,都需要让胶水干燥,然后修整和打磨,所以这需要一段时间。
在每个阶段,在表壳和单板的“内侧”(较浅的一侧)上涂上一层薄薄的接触胶。这个过程可能很麻烦,所以要戴上手套,确保通风良好。等待十分钟,直到胶水干燥,然后将单板和表壳放在一起,用力按压以确保接触良好,尤其是边缘处。您可以选择在胶水干燥时夹住单板(我没有这样做),但注意不要用力过大,因为单板很容易损坏。
让胶水干燥几个小时,然后用锋利的刀修剪饰面。不要试图修剪得一丝不苟,留出大约 1 毫米的余量。然后,使用中等粒度的砂纸(例如 120 粒度)沿着边缘打磨饰面。
将饰面贴到每一侧(可见)后,就到了最后的修饰时间。
上光






上光之前,先清除边缘处多余的粘合剂,用细砂纸(200 粒度)打磨琴身,并用少量白酒精清除所有灰尘或痕迹。
清漆的选择很大程度上取决于个人品味——值得在单板碎片上进行试验以找到您喜欢的组合。
我发现枫木本身的颜色太浅,所以我涂了一层游艇清漆,它带有橙色色调,使其更接近橡木的色调。然后我涂了两层透明缎面聚氨酯清漆,以获得漂亮的饰面,在两层之间用细砂纸(200 粒度)打磨。按照所选清漆上的说明进行干燥和重新涂漆,并记住在通风良好的地方工作。
让最后一层完全干燥,然后将螺母安装到电源连接器上以将其固定到位。
编程




首先,安装 Arduino IDE 并添加 ESP8266 包,如下所述:https://github.com/esp8266/Arduino
选择“LOLIN(WEMOS) D1 R2 & mini”板。
在库管理器中添加以下库:
- ESP8266-ping
- Adafruit GFX 库
- Makuna 的 NeoPixelBus
- 快速发光二极管
然后从 GitHub(在 ArClock 子目录中)编译草图:
https://github.com/mattaubury/ArClock
如果您以前从未使用过基于 ESP8266 的主板,则需要安装 CH340G 驱动程序,例如从这里https://sparks.gogo.co.nz/ch340.html。
将开发板插入电脑。选择 IDE 中的端口,并将代码下载到开发板。
现在通过 DC 插孔连接 5V 电源。
配置










一旦插入,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 自动更改显示内容。例如,要显示一条消息,您可以使用:
或者改变亮度:
结束语

感谢您阅读到此!我希望您有兴趣构建一个 ArClock,请在下面的评论中告诉我您的进展如何 - 我很乐意回答任何问题!
关于设计的一些想法:
- OpenSCAD 代码可以通过各种参数进行调整——应该可以修改它以支持其他主板或改变显示器的曲线。
- 我尝试了几种不同的木质贴面,最后选择了枫木。我强烈建议使用浅色木材,只有浅色图案,否则会阻挡大部分光线。即使是橡木也能产生强烈的光泽,过滤掉几乎所有的蓝光。
- 代码注释得相当好,因此应该很容易调整行为并添加新功能。但请注意,ESP8266 上的 RAM 非常少,代码已经使用了大部分。
- 请注意,ArClock 没有任何身份验证,因此只能在受信任的网络上使用!











