- Mark Ren
-
-
-
面向工程师的实用指南:从触摸屏到工业控制,从 C++ 到 Qt、Electron 和触控协议,一次性梳理清楚 HMI 背后的核心技术选型。
一、什么是 HMI?它不只是“点点屏幕”那么简单
HMI,全称 Human-Machine Interface,即“人机界面”。你可以把它简单理解为:
让人看得懂、能操作的 设备“前台”。
从工业触控屏、车载中控,到医疗仪器和智能家居控制面板,几乎所有涉及“人 + 机器”的产品都需要一个 HMI 界面。
📦 举几个你可能熟悉的 HMI 应用场景:
- 工厂自动化产线的触摸屏操作面板
- 智能空调 / 冰箱 / 热水器上的液晶控制界面
- 智能电梯、机器人手臂的控制台
- 车载中控系统、充电桩操作屏
- 医疗设备上的参数设置和图表显示
不管你是做嵌入式开发、上位机应用,还是 AIoT 产品,HMI 都是设备与用户之间最关键的交互桥梁。
二、HMI开发技术分类:不是只有 Qt 和 PLC
HMI开发并不是一个“单一技术”,而是一个包含 UI 框架、通信协议、运行平台、部署方式的技术组合。一般我们可以按两种类型来理解:
2.1 按平台分:嵌入式 vs 上位机
类型 | 运行环境 | 开发语言 | 典型场景 |
---|---|---|---|
嵌入式 HMI | Linux/RTOS/裸机 + MCU/ARM | C / C++ / Qt / Micropython | PLC面板、IoT控制屏 |
上位机 HMI | Windows / Linux PC | C# / WPF / Electron / PyQt | 工控机、远程控制台 |
2.2 按架构分:本地渲染 vs Web 远程
架构 | 描述 | 技术栈 |
---|---|---|
本地 HMI | 应用与显示运行于同一设备上 | Qt、LVGL、WPF、TGUI |
Web HMI | 界面在浏览器运行,通过网络与设备通信 | HTML5 + Vue/React + WebSocket/MQTT |
📌 小贴士:
现代 HMI 越来越倾向“UI 与逻辑分离”,甚至出现“微前端 HMI”、“容器化可部署 UI”,其核心是提高可扩展性与维护效率。
2.3 常见HMI开发技术一览表
mindmap root((HMI开发技术)) 嵌入式HMI C/C++ + UI库 QT / QML LVGL TouchGFX emWin T-Kernel / CODESYS PC/桌面端HMI QT / QML C# / WPF (.NET) JavaFX / Swing Electron / Web前端 LabVIEW WinCC / FactoryTalk / Wonderware Web HMI HTML5 + JS + CSS3 React / Vue / Angular D3.js / Echarts / Canvas Node.js / WebSocket WebAssembly SCADA Web系统 移动端HMI Flutter / React Native Android / iOS原生 Cordova / Ionic / Uniapp MQTT / HTTP / WebSocket 技术选型建议 MCU/ARM优先LVGL等 高端/美观选QT/Web 工业自动化选SCADA平台 移动优先Flutter等
HMI开发技术路线思维导图
三、主流 HMI 开发技术选型指南
虽然“画个界面”听起来简单,但在实际工程中,每一项选择都直接关系到你的产品成本、上线周期和维护成本。下面我们来盘一盘几类主流方案的真实技术优劣。
3.1 嵌入式触摸屏开发技术
适用于:工业设备、PLC面板、充电桩主控、医疗仪器控制界面等
✅ Qt for Embedded Linux
- 特点:图形能力强、跨平台、开源/商用双许可证
- 优点:控件丰富,动画流畅,适配主流ARM平台
- 缺点:占资源偏多,嵌入式移植需配合Yocto/OpenEmbedded
- 推荐场景:高分辨率电容屏 + Linux系统
📌 工具链:Qt Creator + QML + C++
✅ LVGL(Light and Versatile Graphics Library)
- 特点:超轻量级 GUI 库,适合 MCU 和 RTOS
- 优点:资源占用小(几十KB),支持动画、中文字体、触摸事件
- 缺点:不自带操作系统,需开发者自己集成任务调度
- 推荐场景:低成本单芯片方案(STM32、ESP32 等)
📌 工具链:SquareLine Studio(所见即所得)
✅ 专用模块开发(Nextion、DWIN 等)
- 特点:模块内置控制器和触摸UI引擎
- 优点:屏幕、驱动、工具一体化;用串口与主控通信
- 缺点:可定制性弱,界面效果有限
- 推荐场景:简单交互需求,如开关控制、状态查看
📌 工具链:Nextion Editor / DWIN Smart Editor
3.2 上位机开发技术(工业/桌面侧)
适用于:Windows 平台工控机、运维工具、工厂管理系统等
✅ C# + WPF
- 优点:开发效率高、社区丰富、绑定 Windows API
- 缺点:跨平台能力弱
- 适合:企业内部工业软件、MES 终端、厂务监控
📌 工具链:Visual Studio + XAML + .NET Framework
✅ Electron(Node.js + Web)
- 优点:跨平台、UI 美观、Web 技术栈
- 缺点:占用内存高,不适合资源紧张场景
- 推荐:需要部署在 Win/Linux 桌面、交互要求较高的 B2B 客户端
📌 框架建议:Electron + Vue3 + WebSocket
✅ PyQt / PySide6
- 优点:适合科研/自动化脚本工具嵌 GUI
- 缺点:大型项目可维护性较差
- 推荐:设备调试工具、工程师助手类软件
3.3 Web 远程 HMI:浏览器就是界面
适用于:远程工控、IoT平台、SaaS系统嵌入控制台
- 核心技术:Vue3 / React + WebSocket/MQTT
- 特点:
- 前端部署在浏览器,后端通过 MQTT 或 HTTP 与设备通信
- 适合多终端接入(PC + 移动 + 平板)
- 优势:
- 部署维护成本低,快速升级
- UI 与控制解耦,安全策略更灵活
- 典型场景:
- 智慧能源监控平台
- 远程网关配置界面
- 工业物联网门户
3.4 可视化开发平台(低代码/无代码 HMI)
适合对开发能力要求低的用户,快速完成界面构建与数据对接。
工具 | 特点 | 使用门槛 | 是否开源 |
---|---|---|---|
Codesys HMI | PLC集成好、工业协议支持强 | 需配合PLC | ❌ |
DashIO | 类似 Node-RED 的可视化数据HMI | 中等 | ✅ |
Crank Storyboard | 动画强、支持MCU | 商用 | ❌ |
Wecon LeviStudioU | 国内广泛使用的触控屏设计工具 | 低 | ❌ |
TAURI + Svelte | 新兴 Web 桌面框架(比 Electron 轻) | 高 | ✅ |
好的,以下是标准技术博客《HMI 开发主要用什么技术?一文看懂人机界面开发栈》的第三部分(3/3),包含典型场景选型建议、可视化架构图与 TDK 元信息,帮助读者快速完成决策或规划项目架构。
四、典型场景下的 HMI 技术选型建议
让我们以实际业务为导向,对应不同需求场景,推荐合适的 HMI 技术方案:
场景 | 推荐方案 | 技术说明 |
---|---|---|
🌡 工业触摸屏面板 | Qt Embedded + Yocto | 图形强、适配性好,适合 ARM SoC |
📟 小尺寸MCU触控 | LVGL / Nextion | 内存占用小、开发效率高 |
🖥 车间上位机控制 | C# + WPF 或 PyQt | 开发快,支持图表与 Modbus 控制 |
🌐 智能工厂大屏 | Electron + Vue3 | 跨平台 + Web UI,美观易更新 |
📲 远程运维控制台 | Web HMI(Vue/MQTT) | 可嵌入 IoT 平台,远程维护更方便 |
🧪 工程调试助手 | PyQt + 串口通信 | 适合研发使用,逻辑简单直接 |
🧰 轻量级 SaaS 控制台 | Tauri + Svelte / Vue | 性能轻快,适合桌面App内嵌Web界面 |
五、选对技术栈,让交互更流畅
技术选型总览:
flowchart TD Start[你要开发哪种人机界面?] --> Panel[嵌入式触摸屏设备] Start --> Desktop[上位机 / 工业电脑软件] Start --> WebUI[远程可访问的Web控制台] Panel -->|复杂动画/UI要求高| Qt[Qt Embedded + Linux] Panel -->|轻量,资源受限| LVGL[LVGL + MCU/RTOS] Panel -->|快速集成| Module[Nextion / DWIN模块] Desktop -->|快速开发,工程师用| PyQt[PyQt / PySide] Desktop -->|需要图形与硬件绑定| CSharp[C# + WPF] Desktop -->|跨平台 + UI 要好看| Electron[Electron + Vue3] WebUI -->|工业平台集成| VueMqtt[Vue3 + MQTT + WebSocket] WebUI -->|轻量级桌面集成| Tauri[Tauri + Svelte]
HMI开发技术选型流程示意图
HMI 开发远不只是“拖几个按钮、写几个事件”那么简单,它是连接人与机器的体验引擎,是系统是否“可用、好用、值得用”的第一关。
📌 快速决策建议:
- 高性能 + 丰富交互 → Qt Embedded
- 极限资源 + 成本敏感 → LVGL
- 调试工具 or 快速交付 → PyQt / Electron
- 大屏看板 + SaaS平台 → Web + MQTT
- 一人项目 or 产品 MVP → Tauri + Vue/Svelte
你选的不只是技术,更是一个未来可迭代的系统基础。
典型应用介绍