技术实践 ·

我想用 AI 做个电子墨水屏看板

从一个列车信息屏聊起:如果用 AI 做电子墨水屏看板,我会怎么安排云端渲染、刷新间隔、数据过期和第一版开发。

James Devonport 做了个小东西:一块电子墨水屏,放在桌上,定时显示列车出发信息。

我觉得这个挺好。不是什么大项目,但确实有用。想看一眼信息,不用解锁手机,也不用再打开一个网页。

要是我来做,可能会先放点博客相关的东西:网站能不能打开、最近一篇文章什么时候发的、有没有什么需要处理。两三项就够,多了也看不过来。

不过,看完他的文章,我想的倒不是赶紧买设备,而是这个东西怎么做,后面才不折腾。

能放在云端的,就别塞进设备

James 用的是基于 ESP32 的 Note4C,配上 Cloudflare Workers,让 Codex 帮忙开发。

做法很直接:云端取列车数据,排好版,生成一张图片;设备定时下载图片,显示出来。

这个结构我喜欢。

小设备就负责显示,别让它又取数据、又处理业务、又管排版。以后想改字体、换布局,改云端就行,不用动不动重新刷固件。

如果接的是私人数据,我还会多留意一下图片地址。网页加了登录,结果生成的图片谁拿到链接都能看,那等于没防住。图片也是数据,不能因为换了个格式就随便公开。

先别追求实时

做看板,容易顺手加一句:“最好实时更新。”

但真的需要吗?

博客有没有新文章,晚几分钟知道没什么关系。日历更不用一直刷。为了一个半天都不变的数字,让设备不停请求接口,没必要。

James 说,他这台设备完整刷新大约需要 10 秒。照这个特点,就该放一些适合慢慢看的信息,别硬做成行情屏。

我会先把更新间隔放宽一点。数据没变,也不用重新画。真用起来觉得慢,再调。

做个人工具,我更愿意先让它省心,而不是参数看着漂亮。

我比较在意:它显示的还是不是现在的事

电子墨水屏有个特点,断电之后,画面也可能留着。

平时看是优点,做状态看板就得小心。

比如屏幕上一直写着“网站正常”,看着挺放心。实际上设备昨天就断网了,那几个字根本没更新。

所以,更新时间我一定会放上去,不能缩成角落里一行看不清的小字。

而且,设备拿到了新图片,也不代表图片里的数据是新的。可能云端取数失败,又把旧数据画了一遍。

我会把数据时间带到最后这张图里。过了多久还没更新,就标出来,别继续显示一个绿勾。

当然,彻底断电之后,设备连“已过期”都改不了。所以这块屏我会当作一个方便看信息的小工具,不会让它独自承担重要告警。

真动手,我会一段一段做

我不会上来就把设备、接口、云端服务全交给 AI,让它“一次做完”。

这样代码可能出得很快,但最后屏幕不亮,查起来很烦。是网络没通,图片格式不对,还是设备驱动有问题?得一层层拆。

我会先让 AI 用假数据画一张图。在电脑上看着顺眼了,再往下走。

然后接真实数据。接口正常时显示什么,超时了怎么办,没有内容时要不要留空,先处理好。

设备这边,先能稳定显示一张固定图片,再去接云端更新。

最后才加定时任务和失败重试。

这样慢吗?我不觉得。每一步都知道自己做到了哪里,总比最后对着一堆代码猜问题省事。

第一版,少做点

这种小项目最容易越聊越大。

开始只想看列车信息,后来想加天气、日历、网站流量,最后连语音助手都安排上了。AI 又很配合,你提一个,它说能做一个。

我会先收着点。

一个页面,一个数据源,放在桌上用几天。字是不是太小,信息有没有用,断网后会不会误导人,用起来才知道。

真有用,再加。没用,也没必要为了已经写了的代码继续折腾。

我觉得 AI 带来的一个实在变化,就是这种小东西终于值得自己做了。以前光想想要查文档、写接口、调设备,就容易算了。现在可以让它帮着往前推。

至于怎么做才顺手,哪些信息根本不用放,还是得自己拿主意。

微信扫码阅读与分享

本文链接二维码

扫码打开,再从微信右上角分享。