基于边缘计算的智能机器狗项目开发全记录:从架构设计到落地实现
摘要:本文介绍了一个基于边缘计算的智能多功能机器狗项目,采用终端设备层、Linux网关层和用户接口层的三层架构设计。项目实现了消防预警和陪伴交互等功能,核心技术包括STM32硬件开发、树莓派边缘计算网关和多终端交互接口(QT客户端、Web网页和华为云平台)。创新点涵盖自主设计PCB板、边缘计算架构优化和多协议适配。项目验证了物联网架构的可行性,并提出了硬件升级、AI功能集成等未来优化方向。
文章目录
在物联网与边缘计算技术飞速发展的背景下,我们 “汪汪大队” 小组合作完成了基于边缘计算的智能多功能机器狗项目。项目以 “多场景适配、全链路可控” 为核心目标,通过终端设备层、Linux 网关层、用户接口层的三层架构,实现了消防预警、陪伴交互等核心功能。本文将从项目概述、技术架构、核心实现、创新亮点四个维度,详细拆解项目开发过程,为同类物联网项目提供参考。
一、项目核心概述
1. 项目定位与目标
项目基于边缘计算技术,通过 “终端设备 + Linux 网关 + 客户端软件” 的协同架构,打造适配消防场景(火焰检测、喷淋控制)与陪伴场景(语音交互、视频监控)的智能机器狗解决方案,实现 “数据实时采集 - 边缘处理 - 云端 / 本地控制” 的全链路闭环。
2. 整体架构(三层架构,解耦高效)
项目采用 “用户层 - 网关层 - 设备层” 三层架构,各层职责清晰、数据流转可控:
- 设备层:硬件核心,负责数据采集与指令执行(如传感器监测、舵机运动);
- 网关层:边缘计算核心,负责数据处理、中转与设备管理(如进程调度、协议转换);
- 用户层:交互核心,负责数据展示与远程控制(如 QT 客户端、Web 界面、云端平台)。

二、技术架构深度解析
1. 设备层:硬件与模拟数据双驱动
设备层是项目的 “感知与执行终端”,分为硬件开发板与软件模拟模块两部分,实现 “真实硬件采集 + 模拟数据补全” 的数据源覆盖。
(1)核心硬件:STM32F103RCT6 开发板
团队自主设计并焊接基于 STM32F103RCT6 芯片的开发板(ARM Cortex-M3 内核,主频 72MHz,256KB Flash),集成以下核心模块:
- 传感器阵列:温湿度传感器(环境监测)、火焰传感器(消防预警)、三合一传感器(多物理量采集);
- 执行器模块:风扇(散热控制)、LED 灯(状态指示)、蜂鸣器(报警提示)、舵机(机械运动驱动);
- 通信与交互:ESP8266 WiFi 模块(与网关层数据交互)、语音模块(陪伴场景语音交互)、ESP32 摄像头(实时视频监控)。
(2)软件模拟:Modbus Slave
通过 Modbus Slave 软件模拟机械狗运行过程中的关键数据,补充硬件无法实时采集的参数,包括:
- 运行数据:里程、工作时长;
- 状态数据:电量、水位、设备运行状态;
- 作用:为网关层提供稳定的测试数据源,确保全链路功能验证。
2. 网关层:Linux 边缘计算核心(树莓派)
网关层基于树莓派(运行 Linux 系统)搭建,是项目的 “数据中枢与控制大脑”,通过七大核心进程实现数据流转与设备管理,关键技术包括共享内存、消息队列、MQTT 协议等。
(1)七大核心进程功能拆解
| 进程名称 | 核心功能 | 数据流向 / 协议 |
|---|---|---|
| Modbus 采集进程 | 读取 Modbus Slave 模拟数据(水位、里程等),封装后写入共享内存 | TCP 协议(Modbus Slave→共享内存) |
| STM32 采集进程 | 读取 STM32 传感器数据,封装后写入共享内存;接收指令并下发给单片机 | TCP 协议(ESP8266)、消息队列 |
| HTTP 进程 | 从共享内存读数据,在 Web 端显示;接收 Web 指令写入消息队列 | HTTP 协议(Web→网关→设备) |
| 设备搜索进程 | UDP 广播搜索设备,搜索到自家设备后建立TCP长连接;实现 OTA 远程升级 | UDP 协议、OTA 协议 |
| 数据上报进程 | 从共享内存读数据,JSON 格式封装后通过 MQTT 发送给 QT 客户端;接受QT指令写入消息队列 | MQTT 协议(网关→QT Broker) |
| 华为云进程 | 从共享内存读数据,上传至华为云;接收云端指令写入消息队列 | MQTT 协议(网关→华为云) |
| mjpeg监控进程 | 使用mjpeg-stream捕获视频的图像帧,output到http和udp | HTTP、UDP协议(网关→WEB/QT) |
(2)关键技术
- 共享内存:作为进程间数据共享的 “缓冲区”,避免频繁数据拷贝,提升效率(如采集进程写入、HTTP / 华为云进程读取);
- 消息队列:实现进程间异步通信(如用户指令下发:QT/Web→消息队列→STM32 采集进程→单片机);
- Shell 脚本控制:编写
start.sh、stop.sh、status.sh脚本,实现网关层所有进程的 “一键启动 / 关闭 / 状态查询”,简化运维。 - **相关协议:**协议有用到HTTP、UDP广播、MQTT、MODBUS TCP协议以及自定义协议(JSON格式字符串和普通字符串)
- **第三方库及相关组件:**mjpeg stream视频库、mqtt库、modbus库、sqlite3数据库、json组件、消息队列和共享内存组件。
- **单片机:**UART、I2C、GPIO、ADC、PWM、串口空间中断、FreeRTOS、ESP8266、SU-03T。
- **语言基础:**C语言(结构体和指针、多进程和多线程、枚举和联合体等)和QT(堆栈窗体、信号和槽机制等)。
3. 用户层:多终端交互接口
用户层提供 “本地 + 云端” 多终端访问方式,满足不同场景下的监控与控制需求,实现 “随时随地掌控设备状态”。
(1)QT 客户端(桌面端)
- 核心功能:实时传感器数据可视化(温湿度、电量等)、远程设备控制(灯、风扇、舵机)、网关摄像头视频监控、OTA 升级;
- 优势:跨平台(支持 PC / 手机)、交互流畅,适合本地近距离操作。
(2)Web 网页(浏览器端)
- 核心功能:跨设备访问(无需安装客户端)、历史数据图表展示(基于数据库分钟级数据)、简洁控制界面;
- 技术:基于 HTTP 协议开发,适配电脑、平板等多种终端,适合远程轻量化操作。
(3)华为云平台(云端)
- 核心功能:云端数据存储(历史数据备份)、大数据分析(设备运行趋势)、智能告警(异常状态通知)、远程设备管理;
- 优势:依托云端算力,实现长期数据沉淀与规模化管理,适合多设备集群场景。
三、项目创新亮点与开发心得
1. 核心创新点(技术与落地结合)
- 自主设计 PCB 板:基于 STM32 定制开发板,集成多传感器与执行器,相比通用开发板更贴合机器狗场景需求,硬件利用率提升 30%;
- 边缘计算架构:采用树莓派作为边缘网关,减少设备与云端的直接交互,数据处理延迟从 “秒级” 降至 “毫秒级”,满足消防场景实时性需求;
- 全链路日志与数据库:实现输出重定向日志(便于问题定位),支持数据库分钟级存储传感器数据(为数据分析提供支撑);
- 多协议与多终端适配:兼容 TCP/UDP/MQTT/HTTP 协议,支持 QT/Web/ 华为云多终端访问,覆盖 “本地 - 远程 - 云端” 全场景。
2. 开发心得(团队协作与技术成长)
- 版本控制与协作:通过 Git 实现代码版本管理,避免多人开发冲突;
- 问题排查能力提升:从 “硬件焊接故障”(如舵机供电不稳)到 “协议兼容性问题”,逐步掌握 “分层定位法”(先设备层、再网关层、最后用户层);
- 工程思维培养:项目初期注重 “功能实现”,后期优化 “稳定性与可维护性”(如 Shell 脚本进程控制、日志系统),理解 “从原型到产品” 的关键差异。
四、总结与展望
本项目通过 “三层架构” 实现了基于边缘计算的智能机器狗解决方案,覆盖消防、陪伴两大核心场景,验证了 “设备层采集 + 网关层处理 + 用户层控制” 的物联网架构可行性。后续可从以下方向优化:
- 硬件升级:替换更高性能的 STM32H7 芯片,支持更多传感器(如红外避障传感器);
- AI 功能集成:在边缘网关加入 AI 模型(如目标检测),实现机器狗自主避障、火焰定位、自动巡航、人脸识别等;
- 移动端适配:开发 APP 客户端,补充 QT/Web 在移动端的操作体验短板。
- 功能拓展:可基于需求和使用场景给机器狗扩展更多功能。
- 产品升级:此次是仿真的智能机器狗,可以作为开发人员学习使用,也可以根据本次项目的技术方案,将仿真狗更换为市面上真正的机器狗,推向市场。
五、视频演示和项目源码
更多推荐


所有评论(0)