TRMNL:可自定义的低功耗电子墨水显示设备

本文介绍了TRMNL设备的技术架构,包括800×600单色电子墨水显示屏、微控制器和电池供电系统,详细说明了其通过Wi-Fi连接服务器获取图像数据的工作流程,并分享了基于Go语言和Cloud Run的自定义日历显示实现方案。

TRMNL

TRMNL是一款800×600分辨率的单色电子墨水显示屏,连接电池和微控制器,全部封装在一个精致但普通的塑料外壳中。由于微控制器大部分时间处于睡眠状态,且电子墨水屏仅在更新时才需要电力,电池续航可达六个月或更长时间。设备通过USB-C接口充电。

当微控制器唤醒时,它会连接到Wi-Fi网络,并与预设服务器通信以获取800×600的图像进行显示,同时确定下一次睡眠的时长。用户可以在设备上刷写自己的固件,或者将标准固件指向自定义服务器。公司提供了一个示例服务器,但用户可以用任何方式实现基于HTTP的协议。

我考虑过运行自己的服务器,但决定先尝试简便的路径看看是否满足需求。默认服务允许将显示屏分割为多个区域,有许多预构建和社区构建的内容可以在每个区域显示。虽然这些都不太适合我的需求,但这没关系,因为用户可以创建自己的私有内容。这些内容通过轮询指定URL或将数据发布到Webhook来获取数据。布局使用Liquid模板系统渲染,我之前没有使用过这个系统,但它相当直观。

我编写了一个托管在Cloud Run上的Go程序,该程序获取家庭共享日历,并将接下来一周的事件转换为JSON格式,以便在模板系统中轻松渲染。

通过3D打印的支架、强力胶和一些磁铁,它现在牢固地贴在冰箱上,显示当前日期和接下来一周的家庭活动。

默认服务最不方便的部分是管理刷新。设备有睡眠计划,各个显示区域也有定期更新计划。这两者的组合很容易导致显示错误的日期。如果服务能告知设备下次更新的时间以及特定区域下次更新的时间,将会很有帮助。但这并不是大问题,经过一番思考,我成功配置了设备在凌晨更新,并且各个区域也做好了准备。

自我订购以来,价格有所上涨,而且需要额外支付20美元购买开发者版才能进行有趣的操作。因此,对于这个巧妙但并非改变生活的设备来说,最终价格有点昂贵。但也许你能为它想出一些有趣的应用!(或者你可以将旧的Kindle改造成TRMNL设备。)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计