当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]传统的USB测试仪和直连式电压/电流表通常属于“哑巴”设备。它们仅在基础屏幕上显示数字,却缺乏智能性、连接性和上下文理解能力。作为硬件开发者,我们经常需要测试电池续航能力、评估充电效率、运行自动化生命周期测试,并监控远程功耗情况。

故事与目的

传统的USB测试仪和直连式电压/电流表通常属于“哑巴”设备。它们仅在基础屏幕上显示数字,却缺乏智能性、连接性和上下文理解能力。作为硬件开发者,我们经常需要测试电池续航能力、评估充电效率、运行自动化生命周期测试,并监控远程功耗情况。

我决定打造Quantum VA Meter,将所有这些问题整合到一款旗舰级设备中。

本项目旨在开发一款专业级遥测仪器,它不仅能显示数据,还能进行数据分析。我希望这款设备能够预测电池使用寿命、安全地切换外部负载、实时绘制功耗曲线(如同微型示波器),并将所有数据广播至本地Web服务器——这一切都运行在一个以赛博朋克美学为灵感、精美动画化且专为该设备定制的操作系统之上。

核心功能

这不仅仅是一款仪表,而是一套基于ESP32运行的完整电源管理系统操作系统。双分辨率感应:通过I2C接口使用两个INA226精密传感器,可自动在高电流负载与低电流精密测量之间切换。

“Quantum”定制操作系统:采用完全自定义、无闪烁的图形引擎,利用离屏精灵实现流畅显示。主导航为令人惊艳的9款应用“溢流”轮播界面,配备基于物理的抛物线跳跃动画和动态柔和色调主题(浅色/深色模式)。

实时双通道示波器:一款实时绘图应用,可同时显示电压与功率,并支持可调节的时间轴(每点时间从100毫秒到5秒),并具备暂停/录制切换功能。

智能电池与续航引擎:输入电池容量(mAh),系统将根据实时电流消耗动态计算“充满所需时间”或“剩余续航时间”。具备强劲的节能功能,当电池电量低于5%时,系统会自动触发60秒紧急关机,防止深度放电。

效率分析仪:提供专用模式,可记录充电(Wh/mAh)与放电数据随时间变化,自动计算移动电源或电路的精确效率百分比。安全继电器自动化:内置可编程继电器定时器,用于生命周期测试(例如开启5分钟,关闭10分钟),并配备自定义的4位数PIN码界面,防止未经授权的切换。

本地Web门户与OTA更新:通过WiFi(经由 captive portal)连接,并提供一个美观的网页仪表盘,可实时查看手机端的遥测数据和图表。支持通过浏览器进行空中固件(OTA)更新!

硬件架构(工作原理)

硬件核心基于M5Stack生态系统(ESP32),因其强大的双核处理器和出色的集成显示屏而被选中。

•大脑模块:M5Stack核心模块负责处理主要任务,同时运行用户界面、计算、Web服务器以及I2C轮询。

•遥测数据:两个INA226 I2C电源监测模块分别测量总线电压和分流电压。软件持续读取这些数值,应用自定义的校准系数,从而计算出实时瓦数。

•电源管理:M5Unit定时器电源模块监控内部电池状态(USB输入、电池电压/电流、Grove输出),使系统能够自动追踪自身健康状况。

•用户输入:旋转编码器连接到ESP32的硬件中断。转动旋钮可切换Coverflow菜单或调整数值(如图表时间轴或屏幕亮度),而按下编码器则实现点击/选择操作。

•动作控制:继电器模块连接至GPIO引脚,使VA Meter可作为可编程的智能开关,用于控制外部负载。

软件架构(魔法)

该软件使用Arduino框架以C++编写,大量依赖M5Unified和M5GFX库。

1. 图形引擎

为了在不出现画面撕裂的情况下实现接近60fps的性能,整个用户界面都会被绘制到一个离屏的M5Canvas(即RAM中的Sprite)上。只有当一帧完全绘制完成后,才会将其推送到物理TFT屏幕(canvas.pushSprite(0, 0))。

2. 基于物理的菜单

Coverflow 菜单使用了一个数学平滑变量(smoothMenuScroll)。当你旋转编码器时,卡片不会直接“弹出”;而是通过正弦波数学公式(sin(absDiff * PI) * 25.0)实现物理上的“跳跃”,向上移动25像素,然后放大并淡入其对应的48x48动画图标

。3. 状态机

核心循环基于非阻塞的状态机(当前状态)运行

4. 异步Web服务器

ESP32运行一个异步HTTP服务器。当你访问其IP地址时,它会返回经过压缩且样式精美的HTML/CSS/JS内容。随后,网页会通过JavaScript的fetch()方法每500毫秒轮询一次/data JSON端点,实时更新浏览器中的图表和遥测卡片,而无需重新加载页面。

如何构建

先决条件

•Arduino IDE 或 PlatformIO。

•ESP32 板件支持包(版本 2.x 或 3.x)。

•所需库:M5Unified、INA226_WE、WiFiManager。

本文编译自hackster.io

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

为了让这个项目更易于上手,无需复杂的编码、IDE设置或库安装。我开发了一款极其简单的网页刷机工具,您可以通过浏览器直接将预编译的二进制文件烧录到您的设备上。我还制作了完整的视频教程,一步步指导您完成整个过程!

关键字: SD卡 显示屏 SPI总线 ESP32

ZukiAlert 不仅显示当前气压,更关注短期气压趋势。通过将当前气压与三小时前测量的数值进行比较,设备可估算周围环境的变化,并以简单易懂的风险等级呈现出来。

关键字: 传感器 可穿戴设备 BMP280

Tab5-ADB 是一款固件,可将 M5Stack Tab5 转换为独立的 ADB 主机和安卓远程控制台。它通过 USB 或 TCP/IP 与安卓设备连接,让您无需电脑即可实现屏幕镜像、触控操作、查看设备信息、运行 sh...

关键字: USB Wi-Fi M5Stack Tab5

Meshtastic 是一个基于 LoRa 技术的平台,可构建独立于互联网接入或蜂窝网络的服务通信网络。近年来,它在全球范围内日益流行,被用于创建社区网络,为偏远地区提供基本通信服务,或在紧急情况下作为商业网络的替代方案...

关键字: 传感器 LoRa 蜂窝网络 Meshtastic

该ESP32智能建筑维护监控系统展示了如何利用低成本的物联网硬件来提升设施管理效率。该系统不仅依赖人工检查,还能实时提供环境状况和维护需求的信息。这个项目是一次很好的学习经历。

关键字: 物联网 传感器 ESP32

当我认真思考Tamed实际在做什么时,健康问题就显得再合适不过了。它并非只是管理家务或自动完成某些任务,而是在我外出时监测环境状况,并提醒我该如何照顾自己的身体,以免问题发生。高温、紫外线、湿度——这些在户外悄然累积的因...

关键字: 传感器 Java 26 BME280

在这个项目中,你将构建一个双通道肌电图(EMG)游戏控制器,将前臂肌肉活动转换为键盘输入。通过使用DIY神经科学套件Pro,系统能够检测双前臂的肌肉收缩,并将其映射到不同的键盘按键,从而让你能够自然地操控和驾驶赛车游戏。

关键字: 双通道肌电图 Arduino 传感器

随着机器人逐步进入人机交互的开放场景,明确感知、决策与控制模块的部署位置,对设备的稳定性、安全性、响应能力及使用可信度至关重要。人形机器人存在一项核心的全身控制难题:所有关节、传感器与执行器必须协同运作,以此维持机体平衡...

关键字: 机器人 人机交互 传感器

我们都知道不能把狗留在车内高温的车里。但你的房车或旅行拖车同样存在危险。如果它配有空调,就能保持车内凉爽,让狗狗舒适自在。但如果发电机没油了,或者空调出现故障呢?一旦这种情况发生在你外出徒步或购物时,后果可能非常严重。

关键字: 树莓派 USB 电源 BME280

如果你经常使用 Claude Code 或 Claude 的桌面应用,你一定熟悉这种节奏:你启动一个任务,Claude 开始运行,然后出现提示——“ping”,弹出权限请求。Claude 是否可以执行这个 Bash 命令...

关键字: LED 蓝牙 AI ESP32
关闭