本项目是一套面向中小型机房 / 数据中心的物联网监控系统,采用「端—边—云—端」的典型 IoT 架构,由 固件(firmware)、服务端(server)、Web 后台(web)、移动 APP(app) 四个模块协同组成,实现机房环境数据的实时采集、上传、存储、可视化与远程控制。
目录:computer-room-firmware
运行于 STM32F10x 单片机上的嵌入式程序,负责采集温湿度、烟雾、光照、火焰等传感器数据,通过 ESP8266-01 Wi-Fi 模组接入网络。使用 cJSON / core_json 组包,经 MQTT 将数据上报至 Broker,并接收下发指令(散热器继电器、LED 等),是整个系统的数据源头与执行末端。
主要感知与执行:DHT11 温湿度、MQ2 烟雾、LDR 光敏、火焰传感器、蜂鸣器告警、继电器反控散热器、LED、OLED 显示。
目录:computer-room-server
基于 Spring Boot 2.7 + MyBatis-Plus + MySQL 构建的业务服务。集成 Spring Security + JWT 完成鉴权、Redis 缓存会话与热点权限、spring-integration-mqtt 订阅设备消息、WebSocket 向前端实时推送。按环境监控、设备管理、远程控制、MQTT、权限(Access)等模块划分,对外提供 REST API 与 Knife4j 接口文档。
目录:computer-room-web
基于 vue-admin-template + Vue 2 + Element UI 的 PC 端管理界面。面向运维人员,提供登录鉴权、动态路由、实时环境看板、历史环境数据、设备列表、反控指令、MQTT 收发记录、数据统计与 RBAC 权限管理,是机房统一监控与运营管理的主入口。
目录:computer-room-app
基于 uni-app(Vue 2)跨端框架开发的移动端应用。提供登录、实时监测、历史数据、个人中心与远程操作,便于管理人员随时随地查看机房状态。
传感器 → STM32(固件) → ESP8266 → MQTT/EMQX → 服务端 → WebSocket/REST → Web 后台 / 移动 APP
↑←←←← 控制指令下发 ←←←←←←
ComputerRoomMonitoringSystem/
├── computer-room-firmware/ # STM32 固件
├── computer-room-server/ # Spring Boot 后端
├── computer-room-web/ # Vue 管理后台
├── computer-room-app/ # uni-app 移动端
└── computer_room.sql # 全库建表与示例数据
以下版本来自各工程内部配置(pom.xml、computer_room.sql、package.json、application.yaml、manifest.json 等)。未在仓库中锁定小版本的组件,给出建议区间。
| 组件 | 版本 | 说明 |
|---|---|---|
| JDK | 8(1.8) | computer-room-server/pom.xml 中 java.version |
| Spring Boot | 2.7.18 | 最后一个完整支持 JDK 8 的 2.x 系列 |
| MyBatis-Plus | 3.5.0 | 数据访问 |
| MySQL | 5.7.25 | SQL 导出源库版本;驱动 mysql-connector-java 5.1.47 |
| Redis | 6.x(兼容 5.x / 7.x) | 仓库未锁定小版本;默认 localhost:6379,库 0 |
| EMQX | 4.4.x / 5.x | MQTT Broker,仓库未锁定小版本;默认 tcp://localhost:1883 |
| Node.js | 14.x | Vue CLI 5 要求 ^12 || >=14;前端锁定 sass@1.32.13,建议 14 LTS |
| npm | 6.x+ | 与 Node 14 配套 |
| Vue | 2.6.14 | computer-room-web |
| Vue CLI | 5.0 | @vue/cli-service ~5.0.0 |
| Element UI | 2.12.0 | Web 后台 UI |
| uni-app | Vue 2 / compilerVersion 3 | computer-room-app/manifest.json |
| 单片机 | STM32F10x + ESP8266-01 | Keil 工程 |
本地默认连接(见 computer-room-server/src/main/resources/application.yaml):
- 后端端口:
8080 - 数据库:
computer_room(脚本:根目录computer_room.sql或computer-room-server/computer_room.sql、access.sql) - MQTT:默认关闭(
mqtt.enabled: false),启用后连本机1883 - Web 开发代理:
computer-room-web/.env.development中BASE_API=http://localhost:8080
- 安装并启动 MySQL 5.7、Redis;如需联调设备,再启动 EMQX(1883)。
- 导入 SQL,创建库
computer_room。 - 使用 JDK 8 启动
computer-room-server(Maven / IDE)。 - 使用 Node 14:
cd computer-room-web && npm install && npm run serve。 - 用 HBuilderX 打开
computer-room-app,运行到微信开发者工具或 App。 - 固件用 Keil 打开
computer-room-firmware,编译烧录 STM32。