最近在抖音刷到了一个大佬制作的黄金价格看板,询问后得知硬件是微雪的RLCD开发板,淘宝搜了一下只要150。 于是萌生了我也要一个的想法,立刻下单。由于我对嵌入式一窍不通,所以本次全程是VibeCoding的。

设备介绍

官方图片

设备介绍

内置了温湿度传感器,WiFi、蓝牙、还有喇叭和麦克风,处理器选用的ESP32-S3处理器配8M的PSRAM,16M的Flash可以放下一套还可以的ttf字体。

第一版

首先考虑我的需求,我日常使用OpenCode进行开发,每次Vibe期间我都会并行去做其他内容,经常会发生AI完成后我不知道,等很久回来才发现AI结束出错了(或者等待我给出权限)。所以我需要实现一个消息提示面板,AI完成工作后发送振铃通知给我。

于是有了第一版设计, 基调是使用WiFi链接,MQTT推送消息线给板子,实现主板和控制解耦。这样我在开发过程中可以使用现有的MQTT服务器和工具链进行调试,而不用准备对应的业务服务器。

第一版时钟页面 第一版消息页面

第二版

在使用了一段时间后,我发现大字时钟非常浪费显示内容,而且集成的Unifont只有16px,放在办公桌上并不能一眼看出来。所以我就有了重构的想法。

新的重构计划是,画面分成四个部分,底部显示消息,左上角显示时钟,右上角显示一些金融相关信息,方便实时查看资产情况。 第二版界面

后来发现还有改造空间,底部的消息区太大了,所以重新调整显示布局,于是有了最终版本

第二版改

调整字号图标这些细节后得到了

第二版改二

左侧展示时钟、日期,下面两组Agent红绿灯展示不同OpenCode的状态,WORK时灯会闪烁。右侧展示我关心的金融数据。底部是可以自定义推送的三行文本消息。

技术细节上来说,右侧INFO区是一个自动翻页的多行文本最长支持48行,底部是一个三行文本消息区,会自动计算位置居中显示。超出的也会滚动显示并且支持timeout和按键已读/召回消息。

由于板子性能有限,MQTT只提供不同组件的直接操控。一些定制逻辑我开发了一个服务端进行编排,包括OpenCode插件上报的状态、金融数据的配置和刷新。

现在的版本我开源并放在 GitHub 可以直接去仓库中打开查看。

board中存储的是设备固件,可以使用idf.py build flash直接构建。 plugin中存储的是OpenCode插件,可以复制到~/.config/opencode/plugins,修改上报的服务器即可。 server中存储的是Go编写的服务,封装插件上报状态和金融定时逻辑转化为MQTT消息进行推送。

后记

本来我是想用MicroPython实现一版本的,为此我还移植了一套MicroPython,后来想来我也是用OpenCode代工,不如直接让AI写ESP-IDF C/C++。

这个我自己移植的版本也可以看看 MicroPython For RLCD

整个开发过程中,最重要的就是官方样例代码,让AI去读官方怎么实现的,然后抄到你的项目来,这样才能顺利驱动所有底层硬件设备。有些不清楚的内容也可以把原理图截图给AI来读图识别,把结论交给CodeAgent施工。

链接

  1. 官方文档
  2. 官方原理图
  3. 官方样例代码
  4. 我的看板项目源码
  5. 我的MicroPython移植