整合 https://github.com/dimangopie/just-fun-for-MSU2_MINI 和 https://github.com/dchg43/msu2_mini 的程序。
因为新买的“USB小屏幕0.96寸USB直插式电脑监控小屏”,没有源码,只有exe程序。
https://github.com/dimangopie/just-fun-for-MSU2_MINI 花屏,但是修改一下,也能正常显示,但是退出的时候就一直调频率,退不出来。
https://github.com/dchg43/msu2_mini 能连接,有显示,就是感觉缺点啥。
所以也懒得搞为什么,直接整合一起,再优化,增加一些功能。
等测试好再上传源码。
2026-08-11
**软件截图 v4.5.10
作者:杜玛 版权:© 永久 杜玛,保留所有权利 开源许可证:MIT 项目地址:https://github.com/duma520/MSU2_MINI_V2 问题报告:请通过 GitHub Issues 提交
- 目标读者:本指南旨在服务所有对 USB 副屏感兴趣的用户,无论您是:
- 普通用户:希望为自己的电脑增添一个炫酷、实用的信息显示小屏幕。
- 电脑发烧友/DIY爱好者:热衷于监控硬件状态、定制个性化显示内容。
- 开发者/程序员:希望通过 API 将副屏集成到自己的软件或自动化流程中。
- 主要内容:本指南将带您了解什么是 MSU2_MINI_V2 副屏工具,从零开始完成硬件连接、软件安装与配置,深入探索各项功能,并展示如何通过 API 进行高级开发,最后提供详细的版本更新记录和常见问题解答。
MSU2_MINI_V2 是一款功能强大的 USB 副屏工具。它可以将一块基于特定芯片(如 CH552/CH554)的小型 LCD 屏幕,通过 USB 连接到您的电脑,变成一个可以显示各种信息的智能副屏。
您可以用它来:
- 📊 监控系统状态:实时查看 CPU/GPU 占用率、温度、内存使用率、网络上传/下载速度、磁盘读写速度等。
- ⏰ 显示信息:展示时间、日历、天气、股票/加密货币行情、微博热搜、番茄钟倒计时等。
- 🖼️ 内容展示:显示图片、GIF 动图、自定义文本(如跑马灯)、屏幕镜像、相机画面等。
- 🚀 开发与扩展:通过内置的 Web API,您可以编写程序任意控制副屏显示任何内容。
本项目基于 MIT 开源许可证 发布,这意味着:
- ✅ 您可以自由使用、修改、复制、分发本软件,包括用于商业用途。
- ✅ 您只需在软件或文档的副本中保留原始的版权声明和许可声明。
⚠️ 本项目不提供任何形式的担保或技术支持责任。使用本软件的风险由您自行承担。- 📧 我们不提供私人的邮箱支持。所有问题、建议和讨论,请通过项目 GitHub 仓库的 Issues 板块进行。这样可以让所有用户都能看到解决方案,共同受益。
- ℹ️ 本工具整合自其他优秀的开源项目(
dimangopie/just-fun-for-MSU2_MINI与dchg43/msu2_mini),在此表示感谢!
如果您刚接触 USB 副屏,请按照以下步骤操作,最快 5 分钟即可点亮屏幕!
您需要准备以下硬件:
- 一块 MSU2_MINI 兼容的 USB 副屏:通常是基于 CH552/CH554 芯片的 160x80 或 240x240 分辨率的 LCD 屏幕。市面上常见的“USB 小屏幕”或“MSU2_MINI”设备大多支持。
- 一台运行 Windows 的电脑:目前软件主要支持 Windows 操作系统。
- 一根 Micro-USB 数据线:用于连接副屏和电脑。
连接步骤:
- 将副屏通过 Micro-USB 数据线连接到电脑的 USB 接口。
- Windows 系统会自动识别并安装驱动程序(通常会识别为
COM端口)。 - 您可以在设备管理器的“端口 (COM 和 LPT)”中看到一个新的串行设备,例如
USB-SERIAL CH340 (COM3)。请记住这个端口号(如COM3),后面可能需要用到。
您不需要复杂的安装步骤,下载即用。
- 下载程序:从项目的 GitHub 仓库 Releases 页面下载最新版本的
MSU2_MINI_V2.exe文件。 - 运行程序:双击运行下载的
.exe文件。 - 自动连接:程序启动后,会自动扫描并连接您的副屏设备。如果成功,您会在主界面的“设备信息”状态栏看到“设备已连接”,并且副屏上会开始显示默认内容(通常是屏幕镜像或系统监控)。
- 首次配置:您可以根据需要,在主界面上选择不同的显示页面、调整颜色等。
💡 小提示:
- 如果程序未能自动连接,请检查“设为自动连接”复选框是否勾选,或点击“刷新”按钮。
- 某些硬件传感器(如 CPU 温度)可能需要以 管理员身份 运行程序才能读取。
- 运行时如果提示缺少
.dll文件,通常需要安装 Visual C++ Redistributable。
这是您与副屏交互的主要界面,功能分为以下几个核心板块:
这是程序的主界面,在这里您可以控制副屏显示什么。
- 设备选择:如果您连接了多个副屏,可以通过顶部的下拉菜单在不同的屏幕间切换,对它们进行独立控制。
- 页面切换:
- 通过 “▲上翻” 和 “▼下翻” 按钮或右侧的 “页面” 下拉菜单,您可以切换副屏的显示内容。
- 可用的页面非常丰富,包括:
- 系统监控:CPU/内存/磁盘/电池使用率、网络流量、磁盘读写速度。
- 硬件监控:CPU/GPU 温度、风扇转速、电压、功耗等(需管理员权限)。
- 信息显示:时间、世界时钟、农历、天气、加密货币行情、微博热搜、纪念日/待办事项。
- 娱乐媒体:GIF 动图、图片浏览、屏幕镜像、相机视频、文字跑马灯。
- 自定义:提供强大的自定义显示页面,您可以通过模板编辑任意内容。
- 显示方向:通过“方向”下拉菜单,您可以调整副屏的显示方向(正向/90°/180°/镜像等),方便您以任何角度摆放屏幕。
- 文字颜色:通过 R/G/B 滑块或预设颜色下拉菜单,您可以改变“时间”、“系统监控”等页面文字的颜色。
- 屏幕镜像:在“屏幕镜像窗口”下拉列表中,您可以选择要将哪个程序窗口(或整个桌面)投射到副屏上。
- 相机视频:在“相机名称”下拉列表中,您可以选择已连接的摄像头,将视频画面显示在副屏上。
- 实时预览:主控页面的下方会实时显示副屏上的画面内容,方便您在不看副屏的情况下了解其显示状态。
- 烧写区:高级功能,用于将固件、图片、动图等内容直接写入屏幕的 Flash 存储器中,使其在脱机或特定模式下也能显示。新手请谨慎操作。
这里是深度定制副屏功能的“大本营”。
- 通用设置:
- 防烧屏:开启后,屏幕显示内容会每隔 30 秒进行微小的像素偏移,可以有效防止 OLED 屏幕长时间显示静态画面而“烧屏”。
- 开启实时预览:控制主控页面的预览图是否显示。
- 显示信息框:控制主界面底部的日志信息框是否显示。
- 能效模式:用于优化 CPU 占用率。1 级能效最省资源,适合 24 小时挂机;级别越高,刷新率越高,性能越好,但资源消耗也更大。
- 开机自启动:设置程序是否随 Windows 系统自动启动。
- 界面语言:支持中文和英文切换。
- 自动化:
- 自动翻页轮播:开启后,副屏会像幻灯片一样在您选定的页面间自动切换。
- 无操作息屏超时:设置无人操作时,副屏自动息屏的时间,以节省屏幕寿命和资源。
- 按键:副屏上的物理按键(或触摸区域)可以自定义动作:支持单击、双击、长按,分别映射为“下翻页”、“上翻页”或“切换方向”。
- 页面内容:您可以在这里为不同的页面进行详细配置。
- 跑马灯:设置文字、字号、速度、颜色和背景色。
- 天气与行情:输入城市名(如“北京”或“Beijing”)和加密货币交易对(如
BTCUSDT)。 - 热搜:配置显示的条数、字体大小、滚动速度和刷新间隔。
- 时间:设置番茄钟时长和世界时钟的时区列表。
- 纪念日/待办:直接编辑您的纪念日和待办事项列表。
- 监控显示:对系统监控类页面进行微调。
- 可以设置进程 TOP 的显示数量。
- 配置硬件详情页要显示哪些传感器(温度、风扇、电压等)。
- 仪表盘可以自由开关 CPU、内存、GPU、网络等项目的显示,并自定义每个项目的颜色。
- 磁盘读写和网络流量也提供了“经典”、“经典2”、“网速样式”、“自定义”等多种显示风格和颜色方案。
- 配色方案:软件内置了超过 260 种精心设计的配色方案(马卡龙、莫兰迪、赛博朋克等)。您可以选择一套整体应用,也可以在设置各监控项颜色时,从不同方案中“混搭”颜色,打造独一无二的视觉风格。您也可以将自己搭配好的颜色组合保存为新方案。
- API接入:这里是高级功能的核心,用于开启和配置外部控制接口。我们将在后面详细说明。
- Webhook:用于和聊天机器人(如 Synology Chat)进行联动,实现消息收发。我们将在后面详细说明。
- 数据管理:可以将您当前的所有配置(包括页面、颜色、API 设置等)导出为
.json文件进行备份,或从备份文件中导入配置。
此页面显示副屏硬件的详细信息,包括:
- 连接信息:端口、序列号、VID/PID、固件版本等。
- SFR寄存器:设备内部的寄存器状态(专业信息)。
- Flash芯片与分区:显示 Flash 存储器的布局和使用情况。
- 系统信息:显示电脑的 OS、CPU、内存等基本信息。
如果您连接了 多个副屏,这个功能将非常炫酷!
- 显示墙:在一个大窗口中以网格形式(行×列)同时显示所有已连接副屏的实时画面。
- 显示墙设置:您可以根据副屏数量,快速选择横向或纵向布局,并自由调整行数和列数。
这是 MSU2_MINI_V2 最强大的部分!它提供了一套完整的本地 API 接口,让您可以通过编程的方式,完全控制副屏的显示内容。这意味着您可以把它无缝集成到您的软件、游戏、自动化脚本或任何其他应用中。
- API 服务器:软件启动后,会在您的电脑上开启一个本地的 Web 服务器(默认地址为
http://127.0.0.1:8632)。所有控制指令都是通过向这个服务器发送 HTTP 请求来完成的。 - 命令格式:大部分 API 接口接受 JSON 格式的请求体。
- 统一命令:除了 HTTP,软件还支持通过 WebSocket、TCP、UDP、gRPC、MQTT 等多种协议发送命令,格式与 HTTP 完全一致,您可以按需选择。
- 多屏支持:几乎所有命令都支持一个可选的
device参数,用于指定目标屏幕(如"device": "屏幕2")。如果不指定,则默认控制当前选中的屏幕。
curl 是一个在命令行中发送 HTTP 请求的常用工具。
示例:显示“Hello, World!”文本
- 确保副屏工具已开启并且 API 服务器已运行(默认勾选“启用 API 投屏服务器”)。
- 打开 Windows 的命令提示符 (CMD) 或 PowerShell。
- 输入以下命令:
curl -X POST http://127.0.0.1:8632/api/text -H "Content-Type: application/json" -d "{\"text\":\"Hello, World!\"}"参数解释:
-X POST:指定使用 POST 请求方法。http://127.0.0.1:8632/api/text:API 的地址和端点(/api/text是文本投屏的接口)。-H "Content-Type: application/json":告诉服务器我们发送的是 JSON 数据。-d "{\"text\":\"Hello, World!\"}":要发送的 JSON 数据,text字段就是要显示的文字。
您会看到:副屏上立刻会显示“Hello, World!”的文字。
| 功能 | 端点 (Endpoint) | 方法 | 请求示例 (JSON) | 说明 |
|---|---|---|---|---|
| 文本投屏 | /api/text |
POST | {"text": "你好", "color": "#ff0000", "font_size": 20} |
显示文本,可指定颜色、字号、对齐方式等。 |
| 图片投屏 | /api/screen |
POST | {"image": "base64编码的图片数据"} |
支持 base64 图片或原始 RGB888 数据。 |
| 清屏 | /api/clear |
POST | {} |
清空投屏内容。 |
| 停止投屏 | /api/stop |
POST | {"device": "屏幕1"} |
停止投屏并返回上一级页面。 |
| 切换页面 | /api/page |
POST | {"page": "系统监控"} |
切换到指定的预定义页面。 |
| 窗口投屏 | /api/mirror |
POST | {"hwnd": 123456} |
将指定窗口句柄的窗口内容投射到副屏。 |
| 获取状态 | /api/status |
GET | 无 | 获取程序运行状态、当前页面、设备连接情况等。 |
| 获取截图 | /api/screenshot |
GET | 无 | 获取副屏当前显示画面的 PNG 和 RGB888 数据。 |
| 获取协议列表 | /api/protocols |
GET | 无 | 获取所有可用的接入协议和地址。 |
💡 小提示:您可以在浏览器中访问
http://127.0.0.1:8632/api/openapi.json查看完整的、机器可读的 OpenAPI 3.0 规范文档,这有助于您使用代码自动生成客户端。
除了 HTTP,您还可以选择其他协议以获得更高性能或特定场景的集成。
- WebSocket (
/ws):用于建立持久连接,可以非常高效地以二进制格式(原始 RGB888 数据)传输视频流或高频更新的图像。 - TCP Socket (端口 +1):发送 JSON 格式的命令,每行一个命令,适合用低级语言或网络工具控制。
- UDP (端口 +2):发送 JSON 格式的数据报,适合无需确认响应的高速、低开销场景。
- gRPC (端口 +4):高效的 RPC 框架,提供
Execute(执行命令)和WatchFrame(订阅屏幕帧流)两个服务。适合微服务或高性能应用集成。 - MQTT:作为 MQTT 客户端连接外部 Broker,订阅命令主题执行操作,并发布状态和屏幕帧。非常适合 IoT 或分布式系统集成。
- 热文件夹:将图片或文本文件放入程序目录下的
hotfolder文件夹,即可自动投屏,实现“零代码”控制。
以下是一个用 Python 编写的完整示例,演示了如何连接 API 并执行一系列操作。
import requests
import base64
import json
import time
# --- 配置 ---
API_URL = "http://127.0.0.1:8632"
# 假设我们想控制第二个屏幕
TARGET_DEVICE = "屏幕2"
# --- 1. 准备一张图片 (这里示例从文件读取) ---
def encode_image_to_base64(image_path):
with open(image_path, "rb") as f:
return base64.b64encode(f.read()).decode('utf-8')
# --- 2. 发送命令的通用函数 ---
def send_command(endpoint, data=None, method='POST'):
url = f"{API_URL}/{endpoint}"
headers = {'Content-Type': 'application/json'} if data else {}
# 如果 data 中有 device,则用于控制多屏
if data and 'device' not in data:
data['device'] = TARGET_DEVICE
try:
if method == 'POST':
response = requests.post(url, headers=headers, data=json.dumps(data) if data else None)
else:
response = requests.get(url)
response.raise_for_status() # 检查HTTP错误
return response.json()
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
return None
# --- 主流程 ---
if __name__ == "__main__":
print("=== MSU2_MINI API 控制示例开始 ===")
# 1. 先获取当前状态
print("1. 获取程序状态...")
status = send_command('api/status', method='GET')
if status:
print(f" 当前页面: {status.get('page')}")
# 2. 投屏一段文本
print("2. 投屏文本信息...")
text_payload = {
"text": "Hello from Python!",
"color": "#00ff00",
"font_size": 20,
"background": "#000000"
}
result = send_command('api/text', text_payload)
print(f" 结果: {result.get('ok')}")
# 3. 等待2秒后,切换到一个监控页面
time.sleep(2)
print("3. 切换到系统监控页面...")
result = send_command('api/page', {"page": "系统监控"})
print(f" 结果: {result.get('ok')}")
# 4. 再等3秒后,投屏一张图片
time.sleep(3)
print("4. 投屏图片...")
# 请确保在同级目录下有一张名为 'test.png' 的图片
image_b64 = encode_image_to_base64('test.png')
image_payload = {
"image": image_b64,
"fit": "contain" # 可选: contain, stretch, cover
}
result = send_command('api/screen', image_payload)
print(f" 结果: {result.get('ok')}")
print("=== 控制示例结束 ===")Webhook 功能让您的副屏能成为聊天机器人(如 Synology Chat、Discord、钉钉)的扩展终端。
- 接收消息(副屏显示):在聊天机器人中设置一个“发出的 Webhook”,将其回调 URL 设置为
http://127.0.0.1:8633/webhook/incoming。当有人@机器人或触发关键词时,机器人会把消息转发到这个地址,您的副屏就会自动弹出并显示这条消息! - 发送消息(副屏推送):您可以在“设置 -> Webhook”中填写“传入的 Webhook” URL。然后,您可以通过 API(
POST /api/webhook/send)或直接在设置页面点击“测试发送”按钮,让副屏把消息推送到聊天频道。
这里记录了本项目从诞生到当前版本的所有重要更新,方便您了解软件的发展脉络。
- v5.10.0 (2026-08-27): 🚀 新增 MQTT 协议接入!可以通过标准 MQTT Broker 收发命令、状态和屏幕帧,进一步拓宽集成场景。
- v5.9.0 (2026-08-27): 🚀 新增 gRPC 协议接入!提供高效、类型安全的
Execute和WatchFrame服务,方便微服务集成。 - v5.8.0 (2026-08-27): 🚀 新增 Webhook 对接!实现与聊天机器人的双向通信,副屏可接收并显示消息,也可发送消息。
- v5.7.0 (2026-08-27): ⚡️ 新增 “能效模式” (1~5级),优化资源占用,长期挂机更省电; 静态页不重复刷新 降低 CPU 使用率;API 附加协议支持按需开启。
- v5.6.0 (2026-08-19): 🐛 修复了编译后 exe 无法启动的严重问题,现在打包更稳定。
- v5.5.0 (2026-08-18): 🐛 修复了电视墙布局在设备掉线/重连后被自动重置的 Bug。
- v5.4.0 (2026-08-18): ✨ 优化了配色方案编辑对话框;修复了多屏下自定义配色方案空白的问题。
- v5.3.0 (2026-08-18): ✨ 配色方案全面覆盖;新增画布方式电视墙渲染,更省资源;UI状态持久化(窗口位置、大小等)。
- v5.2.0 (2026-08-17): ⚡️ 电视墙性能大幅优化,多屏不再卡顿。
- v5.1.0 (2026-08-17): ✨ 新增“电视墙” 功能,可同时监控所有副屏画面。
- v5.0.0 (2026-08-16): ✨ 重大重构!主界面从 Tkinter 迁移至 PySide6 (Qt),界面更现代、更稳定、响应更快。
- v4.8.0 (2026-08-16): ✨ 主控页改为“每屏一个标签页”,完美支持多屏独立控制。
- v4.6.x (2026-08-16): ✨ 引入本地 API 服务器,多协议接入,让副屏可编程。
- v4.5.x (2026-08-14 ~ 15): ✨ 引入配色方案系统,260+ 色系任君选择;多屏独立配置彻底实现。
- v4.4.1 (2026-08-13): ✨ 传感器可自由选择,修复多屏识别问题。
- v4.0.1 (2026-08-13): ✨ 功能爆发版本!新增 15+ 个显示页面(跑马灯、硬件详情、天气、热搜、仪表盘等),引入自定义模板编辑器、自动翻页、息屏待机等大量功能。
- v3.0.0 (2026-08-11): ✨ 支持多设备!可同时连接并控制多个副屏。
- v3.1.x (2026-08-11 ~ 13): 🐛 持续修复画面倾斜(“斜45度”)这一关键问题,提升稳定性。
- v3.1.6 (2026-08-13): ✨ 引入 UI 消息队列,新增“自定义显示可视化编辑器”。
- v2.0.0 (2026-08-11): 🎉 首个正式版本!整合两大开源项目,实现动图、时钟、屏幕镜像、系统监控等基础功能。
- v2.1.x (2026-08-11): 持续迭代,增加页面切换、显示方向控制、丰富色卡、防烧屏、LCD看门狗等关键功能和修复。
Q1: 程序无法识别我的副屏设备?
- 检查 USB 连接线是否正常。
- 确保设备驱动已正确安装(在设备管理器中看到 COM 端口)。
- 尝试在“中控”页面的“屏幕分辨率”下拉菜单中选择合适的分辨率。
- 右键点击程序,选择“以管理员身份运行”。
Q2: CPU、GPU 温度或风扇转速显示为 -- 或 0?
- 硬件传感器(特别是主板上的)通常需要管理员权限才能读取。请以管理员身份重启程序。
- 确认您的电脑硬件(如 CPU、主板)支持并提供了这些传感器数据。
Q3: 屏幕镜像画面出现撕裂、倾斜或颜色异常?
- 尝试降低“最大 FPS”值。
- 检查“显示方向”设置是否正确。
- 如果是在窗口投屏时出现问题,尝试切换到“填充”或“适应”模式。
Q4: 程序启动时崩溃 (Crash),如何排查?
- 首先查看程序运行目录下是否生成了
crash_log.txt文件,将其内容提交到 GitHub Issues。 - 尝试以管理员身份运行。
- 安装最新的 Visual C++ Redistributable。
- 确保系统满足最低要求(Windows 10/11)。
Q5: 我想为项目贡献代码或报告 Bug,该怎么做?
- 欢迎!请前往 GitHub 仓库 https://github.com/duma520/MSU2_MINI_V2。
- 您可以通过 Issues 板块报告 Bug 或提出新功能建议。
- 您可以通过 Pull Requests 贡献代码。
希望这份详尽的指南能帮助您充分利用 MSU2_MINI_V2 的强大功能。祝您玩得开心!