当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]如果你整天都在使用 Claude、ChatGPT、Copilot 或 Cursor,那么使用限制通常会在最不方便的时候出现:比如在重构工作进行到一半时,或即将演示前。这些数字存在,却深藏于设置页面或菜单栏弹出窗口中,你根本不会去查看。

如果你整天都在使用 Claude、ChatGPT、Copilot 或 Cursor,那么使用限制通常会在最不方便的时候出现:比如在重构工作进行到一半时,或即将演示前。这些数字存在,却深藏于设置页面或菜单栏弹出窗口中,你根本不会去查看。

我希望它们能出现在我真正关注的地方——桌面上,紧挨着键盘,始终可见。最终,ESP32-2432S028R(更广为人知的“廉价黄色显示屏”CYD)成为理想之选。它价格低廉,配备 2.8 英寸彩色触摸屏和内置 USB 接口,完全无需焊接。

它做什么

•AI Monitor 一次显示一个服务提供商的当前使用限制:Claude、ChatGPT、Gemini CLI、GitHub Copilot、Cursor 或 Antigravity。

•通过环形或条形图展示会话和每周的使用限制(如可用,会按服务提供商分列)。

•实时倒计时,直至各限制重置。

•显示已使用或剩余百分比,任您选择。

•支持竖屏与横屏布局、浅色与深色主题、可调节亮度、语言及时区设置。

•当电脑休眠或应用关闭时,显示待机时钟。

它是如何工作的

显示屏不与任何AI服务通信,也从未看到过API密钥或登录信息。所有这些操作都保留在你的电脑上:

••CodexBar是由Peter Steinberger开发的一款开源工具,可本地读取你的使用限制。其命令行界面(CLI)以JSON格式返回这些数据(codexbar usage --provider claude --json)。在Windows系统上,Win-CodexBar提供了相同的CLI。

•AI Monitor配套应用程序每三分钟调用一次该CLI,应用你的显示设置,并生成一个紧凑的JSON帧。

•通过USB串口将该帧以115200波特率传输至ESP32,使用数据仅通过此线缆传输。

•固件解析该帧,并使用LVGL进行渲染。

以下为帧的一个简化示例:

ESP32会为每个帧发送简短的确认响应:

1:获取设备

购买一块ESP32-2432S028R。有两种面板版本,名称几乎相同:大多数板卡使用ILI9341控制器,部分使用ST7789。你无需预先知道具体型号,应用程序可兼容两者。

2:安装CodexBar

•macOS:下载安装CodexBar,或使用Homebrew安装:brew install --cask steipete/tap/codexbar

•Windows:使用winget安装Win-CodexBar:winget install Finesssee.Win-CodexBar

然后在 CodexBar 中启用你使用的提供商(如 Claude、ChatGPT、Copilot 等),并确保它们能在其中显示数据。

3:安装 AI Monitor 应用程序

macOS:v* 版本的应用程序(AIMonitor.dmg),这是一个已签名且经过 Notarization 的通用二进制文件。

Windows:v* 版本的 Windows 应用程序(AIMonitor-Setup.exe)。此版本为测试版,尚未在真实 Windows 硬件上验证过,安装程序也未进行代码签名,因此首次启动时 SmartScreen 会发出警告。

如果 Windows 没有自动安装 CH340 USB 串行芯片驱动程序,你可能需要手动安装。

4:刷写固件

使用 USB 数据线连接 CYD。打开应用程序设置,选择“刷写固件”,然后选择板型:

•标准型号(ILI9341):ESP32-2432S028R,建议先尝试此选项。

•替代型号(ST7789):ESP32-2432S028

应用程序将从 GitHub 发布页面下载匹配的固件,清除闪存,写入并验证固件。无需 PlatformIO、esptool 或 Arduino IDE。如果屏幕保持白色或出现杂音,请尝试选择另一种型号进行刷写。

5:选择一个提供商

在应用中选择供应商。应用会自动检测USB连接的显示屏,每次插入时都会立即重新发送当前数值,此后显示屏将自动更新。

菜单栏中还有一个可选的快捷菜单,无需打开设置即可切换供应商。

6(可选):打印外壳

CYD 可适配现有的3D打印外壳。我使用了MakerWorld提供的以下两个型号:

横向:Weather Station Pro for ESP32-2432S028 CYD

纵向:Aura Smart Weather Forecast Display

引擎盖下

固件。基于Arduino-ESP32使用PlatformIO构建,面板采用TFT_eSPI,界面使用LVGL v9,解析数据则依赖ArduinoJson。支持两种构建目标:esp32dev(ILI9341)和esp32dev-st7789。界面可适配每个供应商最多三行的使用内容。

串口协议。应用程序打开端口,发送{"cmd":"get_info"}并等待固件返回版本号和最大帧大小。亮度或方向等短命令以单行JSON格式发送;使用帧则带有长度前缀的头部(AIM1),以便ESP32准确知道需要读取的字节数,并对每帧进行确认。若数据过期,显示屏会显示该数据,而非假装数值为最新状态。

配套应用。Mac版应用使用Swift和AppKit开发,采用纯POSIX串口I/O;Windows版应用使用Tauri 2框架,后端为Rust语言(通过serialport实现通信,通过espflash完成刷机),前端为React。两者均从GitHub Releases检查应用和固件更新,并根据显示器保存设置。

可选Wi-Fi功能。使用数据始终不依赖Wi-Fi。如果希望在电脑关闭时保持待机时钟的准确性,可为显示屏提供Wi-Fi凭据,此时系统仅通过NTP同步时间。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭