Serial-Studio/Serial-Studio
GitHub: Serial-Studio/Serial-Studio
一款功能强大的跨平台开源遥测仪表盘工具,支持多种通信协议,为嵌入式与物联网设备提供零代码的实时数据可视化与回放分析。
Stars: 6644 | Forks: 996
#  Serial Studio
[](https://github.com/Serial-Studio/Serial-Studio/releases/)
[](https://deepwiki.com/Serial-Studio/Serial-Studio)
[](https://instagram.com/serialstudio.app)
[](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
[](https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec)
[](https://app.codacy.com/gh/Serial-Studio/Serial-Studio/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
**Serial Studio** 是一款面向嵌入式开发者的开源仪表盘工具,专为厌倦了盯着滚动终端的人设计。只需在 **项目文件** 中描述一次您的数据格式,它就会为您构建一个实时仪表盘。
它兼容 **Arduino**、**ESP32**、**STM32**、**Raspberry Pi**、**Teensy**,以及任何通过 **UART**、**Bluetooth LE**、**TCP/UDP** 或 **CAN Bus** 进行通信的设备。**Modbus TCP/RTU** 涵盖了工业和 PLC 设置。**Audio** 驱动程序可用于分析模拟信号。**MQTT** 既可以用作发布者也可以用作订阅者,这对于数据需要跨越本地网络传输的 IoT 设置非常有用。
一旦数据传入,Serial Studio 就可以使用多种小部件对其进行可视化,包括 **图表**、**仪表** 和 **表格**。导出为 **CSV** 或 **MDF4** 以供进一步分析,或稍后重新加载以在仪表盘中回放会话。**Actions** 允许您定义将命令发送回设备的按钮,并带有用于轮询或周期性控制的可选定时器。
Serial Studio 可在 **Windows**、**macOS** 和 **Linux**(包括适用于 Raspberry Pi 的 **ARM64**)上运行,使其成为机器人团队、IoT 开发者、创客、教育工作者和研究人员的一个实用选择,让他们可以将时间花在硬件上,而不是围绕它的工具上。
📚 **新用户?** 查看 [常见问题](FAQ.md)、[用例](USE-CASES.md) 和 [与替代方案的比较](COMPARISON.md)。

## 下载
Serial Studio 提供源代码以及适用于 Windows、macOS 和 Linux 的官方预编译二进制文件。
- [最新稳定版](https://github.com/Serial-Studio/Serial-Studio/releases/latest)
- [预发布版本](https://github.com/Serial-Studio/Serial-Studio/releases/continuous)
#### Microsoft Windows:
需要安装 [Microsoft Visual C++ Redistributable (x64)](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#latest-microsoft-visual-c-redistributable-version)。首次启动时,Windows 可能会显示关于未知开发人员的警告,点击 _“更多信息 → 仍要运行”_ 以继续。
#### macOS:
以通用 DMG 形式分发。打开 DMG 文件并将 **Serial Studio** 拖入 **Applications** 文件夹。
或者,您可以尝试通过 Homebrew 安装:
```
brew install --cask serial-studio
```
**注意:** Homebrew cask 由社区维护。它可用,但并非由我官方开发或测试。
#### Linux:
在 Linux 上安装 Serial Studio 的推荐方式是使用官方预构建的 [AppImage](https://appimage.org/)。赋予其可执行权限并运行:
```
chmod +x SerialStudio-Pro-3.2.4-Linux-x64.AppImage
./SerialStudio-Pro-3.2.4-Linux-x64.AppImage
```
如果 AppImage 无法启动,您的系统可能缺少 `libfuse2`:
```
sudo apt install libfuse2
```
**提示:** 为了更好的桌面集成(菜单项、更新、图标),请使用 [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher)。
##### Flatpak (通过 Flathub)
Serial Studio 也可在 [Flathub](https://flathub.org/apps/com.serial_studio.Serial-Studio) 上获取。此版本定期接收更新,并可能为 ARM64 系统提供更好的支持。但是,某些桌面环境可能会出现轻微的图形故障——尤其是在 Wayland 下(例如,缺少窗口阴影)。
##### Raspberry Pi / ARM64:
为 Raspberry Pi 和类似设备提供了 ARM64 AppImage。性能因硬件和 GPU 驱动程序而异,因为 UI 依赖于 GPU 加速。ARM64 AppImage 需要:
- 等同于或高于 **Ubuntu 24.04** 的 64 位 Linux 操作系统(由于 `glibc 2.38` 依赖性)
- 已安装 `libfuse2`
在运行 AppImage 之前,请确保您的系统满足这些要求。
## 功能
#### 工作原理:
- **项目文件模式(推荐):** 使用 **项目编辑器** 通过拖放小部件创建自定义仪表盘。无需编码。
- **快速绘图模式:** 立即显示来自 Arduino 的逗号分隔值。无需设置。
- **设备定义模式:** 让您的设备通过 JSON 发送其自己的仪表盘布局。
#### 它能做什么:
- **无需编码:** 使用简单的可视化界面构建仪表盘
- **多种协议:** Serial/UART, Bluetooth LE, MQTT, Modbus TCP/RTU, CAN Bus, TCP/UDP, 和音频输入
- **15+ 小部件:** 折线图、仪表、条形图、GPS 地图、FFT 频谱、加速度计、陀螺仪、指南针、数据网格
- **保存为 CSV:** 自动保存所有数据,以便稍后在 Excel, Python, MATLAB, 或 R 中进行分析
- **MDF4 回放与导出:** 播放和导出 MDF4/MF4 文件,支持 CAN Bus, LIN, FlexRay 和模拟通道 (Pro)
- **全平台支持:** Windows 10/11, macOS 11+ (Intel + Apple Silicon), Linux x64, 和 Raspberry Pi ARM64
- **兼容 Arduino/ESP32:** 兼容任何通过 serial, BLE, 或 network 发送数据的设备
- **快速更新:** 60 FPS 仪表盘,低延迟(<50ms)
- **自定义解析:** 使用 JavaScript 解码二进制数据、校验和和复杂格式
- **Modbus TCP/RTU:** 连接到工业 PLC 和设备 (Pro)
- **CAN Bus 支持:** 导入 DBC 文件用于汽车和工业应用 (Pro)
- **MQTT for IoT:** 连接到 MQTT brokers 用于分布式传感器 (Pro)
- **API Server (TCP port 7777):** 使用 182+ API 命令以编程方式控制 Serial Studio(见 [API Client 示例](./examples/API%20Test))
- **AI 集成 (MCP):** 通过 Model Context Protocol 连接 Claude 等 AI 模型,以进行自动化分析和控制(见 [MCP Client](./examples/MCP%20Client))
- **双重许可:** 开源 GPL-3.0 核心,专有 Pro 功能(见 [LICENSE.md](LICENSE.md))
## 快速入门
在 5 分钟内开始使用 Serial Studio:
### 1. 下载并安装
- 下载适用于您平台的最新版本(见 [下载](#download) 部分)
- **Windows:** 运行安装程序,如果出现提示,允许“未知开发者”
- **macOS:** 拖到 Applications,首次右键单击 → 打开
- **Linux:** 对 AppImage 执行 `chmod +x` 并运行(可能需要 `sudo apt install libfuse2`)
### 2. 连接您的设备
- 启动 Serial Studio
- 选择您的 **serial port** 和 **baud rate**(常用:9600, 115200)
- 点击 **Connect**
### 3. 可视化数据
- **快速绘图模式:** 从您的设备发送逗号分隔值并查看即时图表
- **项目模式:** 使用项目编辑器构建带有仪表、地图等的自定义仪表盘
- **示例:** 浏览 [`/examples`](./examples) 文件夹以获取 Arduino sketches, ESP32 代码和 Python 脚本
### Arduino 快速示例
```
void setup() {
Serial.begin(9600);
}
void loop() {
int temperature = analogRead(A0);
int humidity = analogRead(A1);
Serial.print(temperature);
Serial.print(",");
Serial.println(humidity);
delay(100);
}
```
上传到 Arduino → 连接 Serial Studio → 启用 Quick Plot → 完成!
**初次使用者:** 请参阅 [FAQ](FAQ.md) 以获取故障排除和常见问题解答。
📚 **了解更多:**
- [FAQ](FAQ.md) - 常见问题和故障排除
- [Use Cases](USE-CASES.md) - 跨行业的实际应用
- [Comparison](COMPARISON.md) - Serial Studio vs. alternatives (Arduino Plotter, MATLAB, Processing, etc.)
- [Examples](./examples) - Arduino/ESP32/Python code and project templates
- [Wiki](https://github.com/Serial-Studio/Serial-Studio/wiki) - Complete documentation
## 文档与资源
### 官方文档
- 📖 [Wiki](https://github.com/Serial-Studio/Serial-Studio/wiki) - 完整的指南和教程
- ❓ [FAQ](FAQ.md) - 常见问题和故障排除
- 🎯 [Use Cases](USE-CASES.md) - 实际示例:机器人、IoT、无人机、教育、研究
- ⚖️ [Comparison](COMPARISON.md) - Serial Studio vs. Arduino Plotter, MATLAB, Processing, LabVIEW, Python
- 🤖 [AI Agent Guide](AGENTS.md) - 适用于 ChatGPT, Claude, 和其他 AI 助手
- 🔌 [API Reference](https://github.com/Serial-Studio/Serial-Studio/wiki/API-Reference) - 完整的 TCP API 文档和自动化指南
- 💡 [Examples](./examples) - Arduino, ESP32, Python 代码及示例项目
### 关键主题
- **安装:** Windows, macOS, Linux, Raspberry Pi 的特定平台设置
- **快速入门:** 连接 Arduino/ESP32 并在 5 分钟内可视化数据
- **仪表盘创建:** 使用项目编辑器构建自定义布局(无需编码)
- **协议支持:** Serial/UART, Bluetooth LE, MQTT, Modbus TCP/RTU, CAN Bus, TCP/UDP, Audio
- **帧解析:** 处理二进制协议、校验和、自定义数据格式
- **CSV 导出与回放:** 记录传感器数据并重放 CSV 文件以供分析
- **MDF4 回放与导出:** 播放和导出 MDF4/MF4 文件 (CAN Bus, LIN, FlexRay, analog)
- **TCP API:** 使用 116 个 API 命令以编程方式控制 Serial Studio(见 [API Client](./examples/API%20Test))
## 构建 Serial Studio
### 系统要求
**最低要求:**
- **Qt:** 版本 6.7 或更高版本(推荐 6.9.2)
- 必需模块:QtCore, QtGui, QtWidgets, QtSerialPort, QtNetwork, QtCharts, QtSvg, QtBluetooth, QtQuick
- **C++ 编译器:** 兼容 C++20
- GCC 10+ (Linux)
- Clang 12+ (macOS)
- MSVC 2019+ (Windows)
- **CMake:** 版本 3.16 或更高版本
- **构建工具:** 特定于平台的工具链(见下文)
**特定平台要求:**
#### Linux
```
sudo apt install libgl1-mesa-dev build-essential
```
#### macOS
- Xcode Command Line Tools: `xcode-select --install`
- Qt 可以通过 Homebrew 安装:`brew install qt@6`
#### Windows
- Visual Studio 2019 或更高版本,带有 C++ 开发工具
- Qt 通过官方安装程序安装
### 构建说明
安装 Qt 后,您可以通过在首选 IDE 中打开 `CMakeLists.txt` 或使用终端来编译项目:
```
mkdir build
cd build
cmake ../ -DPRODUCTION_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)
```
默认情况下,构建系统生成完全符合 GPLv3 的 Serial Studio 版本。
此版本包含大多数核心功能,但不包括商业模块,例如 MQTT、3D 可视化、XY 绘图以及其他依赖于专有 Qt 组件的高级工具。
如果您是 Pro 用户或拥有商业许可证,请[联系项目维护者](mailto:alex@serial-studio.com)以获取构建说明和激活要求。
## 许可
Serial Studio 采用 **双重许可模式**,区分开源使用和商业分发:
- [LICENSE.md](LICENSE.md): 双重许可结构和使用条款摘要
- [LICENSES/GPL-3.0-only.txt](LICENSES/GPL-3.0-only.txt): 开源源代码的完整 GNU GPLv3 文本
- [LICENSES/LicenseRef-SerialStudio-Commercial.txt](LICENSES/LicenseRef-SerialStudio-Commercial.txt): 专有功能和官方二进制文件的完整条款
源文件单独标记有 SPDX 标头,指示它们是否为:
- 在 `GPL-3.0-only` 下许可
- 在 `LicenseRef-SerialStudio-Commercial` 下许可
- 或双重许可为 `GPL-3.0-only OR LicenseRef-SerialStudio-Commercial`
这种结构允许开发者构建和分发符合 GPL 的版本,同时保护商业功能。
## 选择合适版本的 Serial Studio
下表概述了每个版本的许可、功能访问和义务:
| 功能 / 用例 | GPL 版本 *(自行构建)* | 试用版 *(官方二进制)* | Pro 版 *(已激活的官方二进制)* |
|-----------------------------|------------------------------------------|---------------------------------------|----------------------------------------------|
| **商业用途** | ✅ 如果完全符合 GPL | ❌ 仅限评估 | ✅ 完全授权 |
| **官方支持** | ❌ 仅限社区 | ❌ 无 | ✅ 优先支持 |
| **Pro 功能** | ❌ 未包含 | ✅ 已包含 | ✅ 已包含 |
| **使用限制** | 必须遵守 GPL 和 Qt 条款 | 14 天试用,不可再分发 | 受商业许可条款约束 |
| **预编译二进制** | ❌ 必须从源代码构建 | ✅ 仅作为试用提供 | ✅ 已提供 |
| **Qt 许可** | 需要兼容 GPL 的 Qt | Qt 许可由供应商覆盖 | Qt 许可由供应商覆盖 |
| **激活系统** | ❌ 不适用 | ✅ 试用在 14 天后禁用 | ✅ 需要有效的许可证密钥 |
| **商业用途** | ✅ 如果严格遵守 GPL | ❌ 禁止 | ✅ 完全允许 |
| **最适合** | OSS 开发者、学生、贡献者 | 爱好者、个人评估 | 企业、团队、商业产品 |
**提醒:** Pro 功能和官方二进制文件是专有的,任何超出个人评估的使用都需要商业许可证。源代码的可见性**并不**暗示 GPL 权利,除非明确许可。
## 贡献
欢迎贡献!无论您是修复错误、添加功能还是改进文档,我们都感谢您的帮助。
**在贡献之前:**
- 检查现有的 [issues](https://github.com/Serial-Studio/Serial-Studio/issues) 和 [pull requests](https://github.com/Serial-Studio/Serial-Studio/pulls)
- 查看 [CLAUDE.md](CLAUDE.md) 文件以获取代码风格指南
- 专注于 GPL 许可的代码(避免修改商业模块)
**代码风格:**
- 遵循项目的 clang-format 配置(LLVM 基础风格)
- 为变量和函数使用有意义的名称
- 避免行尾内联注释(见 [CLAUDE.md](CLAUDE.md#comments-policy))
- 为新的公共 API 添加 Doxygen 文档
**提交更改:**
1. Fork 仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 使用描述性消息提交更改
4. Push 到您的 fork 并提交 pull request
5. 确保 CI 检查通过
对于重大更改,请先打开一个 issue 来讨论您的建议。
标签:Arduino, Bash脚本, BLE, CAN总线, ESP32, IoT, MDF4, PLC, STM32, TCP/UDP, UART, 串口调试, 信号分析, 实时仪表盘, 嵌入式开发, 工控, 数据可视化, 波形绘制, 物联网, 蓝牙低功耗, 遥测仪表盘