{"code":1,"msg":"成功","time":"1793358395","data":{"title":"清道夫——公共区域智能消杀移动装置","content":"[【智能消杀机器人】https:\/\/www.bilibili.com\/video\/BV1SRJe6wEaY?vd_source=45be073ac1671c304b86dabf1b9e9235](【智能消杀机器人】https:\/\/www.bilibili.com\/video\/BV1SRJe6wEaY?vd_source=45be073ac1671c304b86dabf1b9e9235)[https:\/\/github.com\/Allin-JO\/GD32\/actions\/runs\/39018119027](https:\/\/github.com\/Allin-JO\/GD32\/actions\/runs\/39018119027)一）项目简介\r\n\"清道夫——公共区域智能消杀移动装置是一套面向教室、楼道、公共座椅等公共区域的智能消杀解决方案，核心载体为一台集雾化喷洒、移动控制、消毒液余量实时监测、视频实时传输、预约消杀等功能于一体的智能消杀小车，并配套后端服务、PC管理端与Web多端管理平台。系统采用\"下位机（GD32）+ ESP8266（WiFi\/MQTT）+ 云服务器 + 上位机多端\"的物联网架构，形成\"采集—传输—处理—控制\"的完整业务闭环，能够以无人化、可预约、可追溯的方式完成公共区域消毒作业。\r\n（二）项目定位\r\n本项目属于科技创新类项目，面向学校、办公楼、商场等公共场景的常态化消毒需求，提供\"移动消杀小车 + 多端管理平台\"的一体化产品方案。项目已完成原理样机与三端软件系统的开发与联调，具备参加创新创业大赛、申报大学生创新创业训练计划项目并进一步产品化的基础。\r\n（三）项目核心亮点\r\n1.无人化、可预约、可追溯：支持扫码预约消杀与任务闭环，消毒作业过程（状态、余量、视频）全程可视可查；\r\n2.低成本物联网架构：基于\"GD32 + ESP8266（MQTT）+ 云服务器 + 多端\"自研方案，整体成本显著低于主流商用消毒机器人（此为项目自身定位，具体价格以市场报价为准）；\r\n3.一体化设计：移动控制、雾化喷洒、余量监测、自动补液、视频回传集于一身，无需固定安装、即点即用；\r\n4.多端协同：后端服务、C++管理端（PC）、Web用户端\/管理端与下位机协同工作，角色分权、统一管理。\r\n\r\n二、项目背景与意义\r\n（一）社会背景\r\n公共区域（教室、楼道、食堂、候车厅、商场等）人流量大、接触频繁，是传染病防控与环境卫生管理的重点场所。近年来，公共卫生意识的提升与常态化消毒管理要求，使\"高效、安全、可持续\"的消毒方式成为刚性需求。据行业研究机构数据，2025年中国消毒机器人市场规模约48.6亿元，同比增长19.3%，显著高于服务机器人整体增速；全球消毒机器人市场2025年约16.1亿美元，预计2031年将达53.7亿美元，年复合增长率约22.27%（数据来源见第四章末注①、②）。\r\n（二）现有消毒方式的痛点\r\n1.人工消毒：依赖人力逐点喷洒擦拭，效率低、覆盖不均，存在漏消死角，且人员长期接触消毒剂存在健康与安全风险；\r\n2.固定式消毒设备（紫外线灯、壁挂式雾化机等）：覆盖范围固定、无法移动，难以兼顾多点位与复杂空间，部分设备使用时需人员撤离；\r\n3.商用消毒机器人：功能完善但整机与部署成本较高，多面向大型医院、机场等场景，校园、中小型办公楼等场所难以普及；\r\n4.过程不可控、不可追溯：多数传统方式缺乏余量监测、作业记录与远程管理能力，消毒效果难以量化评估。\r\n（三）项目意义\r\n本项目以较低成本实现\"移动＋喷洒＋监测＋通信\"一体化的智能消杀，具有三方面意义：一是社会价值，缓解公共区域消毒对人力的依赖，提升消毒覆盖率与一致性，降低人员暴露风险；二是应用价值，通过预约消杀、余量监测、自动补液与视频回传，实现消毒作业的标准化、可视化与可追溯；三是教育价值，项目涵盖嵌入式、物联网通信、后端服务、桌面端与Web前端全栈技术，是团队工程实践与创新创业能力培养的完整载体。\r\n后端服务设计\r\n后端（李梦杰负责）负责处理数据的流向、业务逻辑的设计与指令下发的中转，是上位机与下位机之间的核心枢纽。技术方案上，后端采用C++11基于原生Socket轻量级Web服务器（不依赖第三方Web框架）：通过accept监听线程配合“每连接一线程”的并发模型，以method+path两级路由表映射请求，并在单进程内同时承载RESTful API与WebSocket实时控制服务，实现零运行时依赖、可容器化部署的高性能服务端。\r\n服务端采用分层架构设计：路由处理层负责HTTP请求解析、Bearer Token鉴权与统一JSON响应封装；业务逻辑层按业务领域划分为用户、设备（机器人）、地图、任务（预约消杀）、遥控、自动巡航等模块；数据访问层通过MySQL连接池以RAII方式借还连接，所有SQL均采用预处理语句（占位符）完成参数化查询，从源头避免SQL注入。\r\n数据与通信中间件：MySQL作为业务数据（用户、设备、任务、消毒记录与状态数据等）的持久化引擎；Redis用于Token会话与验证码等缓存；后端通过libmosquitto作为MQTT客户端，订阅下位机上报的状态、告警、消毒液余量等主题，并向设备下发电机控制、喷雾开关、任务执行等指令。\r\nWebSocket实时控制：后端内置WebSocket服务（约9100端口），浏览器端硬件控制面板通过WebSocket连接后，将方向、调速、喷雾等操作指令实时转换为MQTT消息下发至小车；预约\/巡航任务模板统一存入MySQL数据库，实现多端共享与历史可回溯。\r\n部署运维：项目使用CMake构建，采用Docker多阶段镜像构建并配合docker-compose编排，部署于云服务器；配置、上传文件与面板页面通过数据卷挂载持久化。（后端接口设计与数据库设计详见下文。接口表与数据表较多，可按章节索引查阅。）\r\n（1） 系统架构及平台部署\r\n系统架构采用B\/S架构，即Web端与服务端。系统的服务端主要由云服务器包括后端服务器Java、前端服务器tomcat、Mysql 数据库服务器构成。如图所示\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/b3ac3969349a9864e7e63e1c80d085ea.png.webp)\r\n云服务器：\r\n后端服务器：部署后端服务的C++服务器，负责处理来自前端和消息服务器的请求，并进行业务逻辑处理和数据交互。\r\nMysql数据库服务器：用于存储和管理系统中的各类数据，包括用户信息、监测数据、控制参数等。 \r\n图3.20 上位机系统架构\r\n登录鉴权模块\r\n登录模块采用无边框窗口 + 自定义标题栏，借助 DWM API 实现窗口阴影，并以半透明背景 + 圆角 + 投影模拟毛玻璃效果。标题栏支持拖拽、八向缩放与最小化 \/ 最大化 \/ 关闭，并提供 sun.svg \/ moon.svg 一键明暗主题切换。左侧以 QPainter 自绘紫色网格，并放置四个卡通动画小人（AnimatedCharacters）：其眼睛实时跟随鼠标转动，输入密码时会“捂眼 \/ 偷瞄”，配合 60fps 定时器、缓动插值与 2× 离屏缓冲抗锯齿，显著提升交互趣味。\r\n登录验证当前走本地演示逻辑：内置账号 tset123 \/ 123456，并支持通过 QSettings 注册本地账号；提供“记住密码”（明文写入注册表）、“注册新账号”与“找回密码”（手机号校验）功能。登录成功后隐藏登录窗、显示主工作台。下图为登录界面示例。\r\n\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/d3bd77e20decf7b0ecd1e91f29ed76d6.png.webp)\r\n![screenshot_undefined](undefined)\r\n\r\n3.3.3.4 联网状态与通信诊断模块\r\nPC端与下位机的通信链路基于自实现 MQTT 3.1.1 客户端。连接参数（Broker 地址、端口、订阅 \/ 指令 \/ 离线 \/ 告警主题）来自程序目录 config.ini 的 [MQTT] 段；客户端自动订阅 robot\/upload（状态上报）、robot\/offline（遗嘱 \/ 离线通知）与 robot\/alarm（告警）主题，并对报文字节流做变长剩余长度编解码与 TCP 分包处理。\r\n可靠性方面：实现遗嘱消息（LWT）、断线指数退避重连（5s → 10s → 30s 封顶）与按 keepAlive 半周期发送的心跳（PINGREQ）；发布仅使用 QoS 0，接收支持 QoS 0 \/ 1 并自动回复 PUBACK。配套的 MQTT 调试面板（MqttPanel）可手动连接 \/ 订阅 \/ 发布，提供“启动 \/ 停止 \/ 上传地图 \/ 下载地图”快捷指令，并以绿 \/ 灰 \/ 橙 \/ 红四色状态标签与带时间戳的日志区直观呈现链路诊断信息，是联调阶段的重要工具。下图为联网状态 \/ 通信诊断界面示例。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/766b8bcba6d13fcbdfe06455d70b9d85.png.webp)\r\n3.3.3.5 监控视频管理模块\r\n监控视频页面接收 K230 视觉模块经 Socket 实时上行的视频流并显示。页面左侧为机器人列表（以在线 \/ 告警 \/ 离线状态点区分），中间为黑色播放器（带 LIVE 标签与控制栏），并提供录像与 AI 分析按钮。AI 分析结合 OpenCV 对画面进行目标识别（如座椅等公共区域目标），并将识别 \/ 分析结果回传至管理端展示，形成“视频采集—传输—显示—分析”的闭环。下图为监控视频管理界面示例。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/a69bc1bbf3b4cb1cf01624f469a4c7e9.png.webp)\r\n3.3.3.6 用户管理模块\r\n用户管理页面支持操作人员（用户 \/ 设备 \/ 地图 \/ 任务 \/ 遥控 \/ 评价等）的检索与维护，提供新增用户弹窗，落库至 MySQL 的 user 表。user 表含 user_name、hash_password、salt、role、real_name、phone、email、avatar、status 等字段，角色划分为管理员 \/ 操作员 \/ 维护员 \/ 普通用户。个人中心（ProfileDialog）可修改昵称、手机号、邮箱与头像（圆形裁剪），数据经 QSettings 本地持久化。下图为用户管理界面示例。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/f1ad71a04cf0ed856ff53c4fda02833b.png.webp)\r\n3.3.3.7 设备状态监控模块\r\n设备状态监控由多个联动页面组成：首页总览以设备追踪卡、地图预览、任务状态与通栏告警表呈现整体运行态势；地图中心集成任务设置（巡航速度 \/ 消杀剂量 \/ 任务时长）、大地图、方向控制（DirectionPadWidget）与设备控制面板（DeviceControlPanel），支持远程方向遥控、喷雾开关、补液指令等一键下发；告警中心按设备、等级、状态、类型多维筛选并提供图表趋势分析；消毒用品（消毒液）页面独立维护消毒剂种类、当前余量、入库\/出库记录与一键补液，确保消毒液库存可追溯。设备列表与详情页支持在线\/离线状态点、告警标签页、详情弹窗与详情页跳转，所有变更落库后通过信号槽实时刷新首页。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/f1ad71a04cf0ed856ff53c4fda02833b.png.webp)\r\n\r\n3.3.3.8 消杀任务与预约控制模块\r\n消杀任务与预约控制实现完整的业务闭环。任务（disinfection_task）支持单次 \/ 每日 \/ 每周周期；PC端以每分钟定时器轮询到期预约，自动下发启动指令并更新预约状态。远程控制方面：方向指令 forward \/ backward \/ left \/ right \/ stop（可带 speed 参数）、喷雾与水泵开关、补液指令等均通过 device_gateway 封装后由 MQTT 统一下发；执行过程支持模板录制与一键回放。配套的消毒效果对比页面基于K230定时抓拍前后画面（数据存入 ai_image 表），支持消杀前后效果可视化比对与历史回溯，便于运维人员评估不同区域、不同消毒剂浓度下的实际消杀效果。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/15d447f3d877424f366e131348b62e90.png.webp)\r\nWeb前端各页面均通过FluxaAPI接口层从后端实时拉取数据并渲染，主要页面功能与界面设计如下：\r\n（1）登录界面：支持账号密码登录与手机验证码注册，并内置“演示账号一键登录”便于演示；登录页背景为基于three.js自实现后处理管线生成的像素噪点动态效果，如图3.23所示。\r\n \r\n图3.23 Web前端登录界面\r\n（2）首页（Dashboard）：Hero主视觉区展示平台品牌与系统简介（背景为原生WebGL2手写GLSL实现的等离子流体动态效果），下方以“扫码预约→智能规划→自动执行→报告生成”四步流程和核心功能卡片介绍系统整体能力，如图3.24所示。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/6ac1cfc02c8e19385e6552a2dd80fe18.png.webp)\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/0a9a1ee4cfaf58cf802c34fbf2de713c.png.webp)\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/6c4f6be64f4a411df405e375e3a3fe15.png.webp)\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/fd56eb64545e16166436d7d994269ef7.png.webp)\r\n图3.24 首页Dashboard主界面\r\n（3）设备中心：顶部统计卡片展示今日消杀次数、覆盖面积、待处理告警与在线\/总数；中部为机器人卡片网格（在线状态、电量、地图ID、更新时间），支持管理员录入机器人；底部集成天气、消毒液余量与执行中任务等小组件，如图3.25所示。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/4f2f6a563c12e9b8e637d4dc635671f4.png.webp)\r\n图3.25 设备中心界面\r\n（4）任务管理：支持任务的创建（管理员）、状态筛选、关键词搜索与停止操作，以表格展示任务ID、机器人、地图、模板、执行时间、周期与状态，如图3.26所示。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/6bf967272a13daf3b8138c9dcbf784d8.png)\r\n图3.26 任务管理界面\r\n（5）地图中心：左侧为地图列表，右侧为SVG矢量地图预览（支持缩放、重置、图例、指北针），并统计地图尺寸、覆盖面积、标记点位与关联机器人，如图3.27所示。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/1e7db35e0859cded4f4e60c9ca2179e0.png.webp)\r\n图3.27 地图中心界面\r\n（6）远程控制：左侧实时地图监控小车行进轨迹（坐标、速度、电量、已行驶距离），右侧为手机风格硬件控制面板，支持电机方向控制（前进\/左转\/停止\/右转\/后退）、调速、喷洒等指令下发，如图3.28所示。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/067ff06711bfa7d7164d370156ba16f9.png.webp)\r\n图3.28 远程控制界面\r\n（7）告警管理：统计卡片展示总告警、未处理、已处理与处理率，支持按状态筛选及批量处理告警，如图3.29所示。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/dbc35e0d50cb976b626924ad54d5ac7c.png)\r\n图3.29 告警管理界面\r\n（8）扫码预约：支持扫描机器人机身二维码或手动创建预约，并管理“我的预约”列表，如图3.30所示。\r\n\r\n![screenshot_undefined](undefined)\r\n![screenshot_image.png](https:\/\/oss-club.rt-thread.org\/uploads\/20261017\/3fe67eafe4dc94847f913fbb299f0a67.png)\r\n图3.30 扫码预约界面\r\n3.3.4.3 前后端交互设计（HTTP\/WebSocket）\r\n前后端交互采用RESTful HTTP与WebSocket两种方式。接口层由api.js中的FluxaAPI统一封装（fetch + async\/await，请求头携带Authorization: Bearer Token，兼容{code,msg,data}与{success,message,data}两种响应格式，并统一处理401登录过期与错误提示），对接后端REST服务（http:\/\/101.35.214.25:8888），覆盖用户认证、机器人管理、地图与点位、路线模板、消杀任务、消杀记录、远程控制、告警管理、消毒液管理、用户评价、天气、AI图片、仪表盘、文件上传、扫码预约共16个模块、85个接口。\r\n远程控制页通过WebSocket全双工长连接（ws:\/\/iotbit.top:9101）与后端实时通信，控制指令（方向、调速、喷洒、去皮、轨迹录制与巡航回放）经服务端桥接MQTT下发至小车；前端按消息驱动维护机器人位置、电量、速度、朝向等状态并映射到SVG渲染，同时实现断线自动重连。登录Token、巡航模板与地图富数据（walls\/paths\/markers）等以localStorage本地缓存，弥补接口能力缺口。","updatetime":"2026-10-18 21:19:37","author":"Anze"}}