# FastBee 物联网平台 基于 **若依(RuoYi)v3.8.5** 框架构建的开源物联网平台,提供设备接入、数据采集、协议解析、规则引擎、告警监控、视频接入等一站式 IoT 解决方案。 ## 平台简介 FastBee 是一个功能完备的企业级物联网基础平台,支持多协议设备接入、海量时序数据处理、可视化场景编排与数据展示。 - 后端采用 Spring Boot 2.5.14 + Spring Security + Redis + JWT,多模块化架构 - 前端包含三个独立应用:Vue 2 管理后台(yack-web)、Vue 3 低代码可视化(yack-view)、UniApp 移动端(yack-app) - 设备接入支持 MQTT、TCP、CoAP、HTTP、WebSocket、SIP(GB28181)等多种协议 - 内置 MQTT Broker(Netty 实现),可选择内嵌模式或连接外部 EMQX - 时序数据存储支持 MySQL 及 TDengine - 通知系统支持多渠道推送(邮件、短信等) - 内嵌 LiteFlow 规则引擎,支持 IoT 场景自动化编排 ## 技术栈 ### 后端 | 组件 | 技术 | |:---|:---| | 核心框架 | Spring Boot 2.5.14 | | 安全框架 | Spring Security + JWT | | ORM | MyBatis(若依框架集成) | | 数据库连接池 | Druid | | 缓存 | Redis(Redisson) | | MQTT Broker | Netty 自研 / EMQX | | 消息队列 | RocketMQ | | 规则引擎 | LiteFlow | | 时序数据库 | MySQL / TDengine | | 协议服务器 | Netty | | 代码生成器 | Velocity 模板 | | 项目管理 | Maven(多模块) | ### 前端 | 应用 | 技术 | 用途 | |:---|:---|:---| | yack-web | Vue 2 + Element UI + Vuex | 管理后台 | | yack-view | Vue 3 + TypeScript + Vite + Naive UI + Pinia | 低代码可视化设计器 | | yack-app | UniApp + uView 2.0 | 移动端(iOS/Android/微信小程序) | ## 架构 ### 数据流 ``` 设备 → 协议服务器(Netty,端口因协议而异) → iot-server-core 消息分发器 → RocketMQ → fastbee-record 持久化 → MySQL / TDengine → WebSocket 推送至前端 ``` ### 模块结构 ``` fastbee-admin/ # Spring Boot 入口,Web 层 fastbee-framework/ # 安全配置、拦截器、核心框架 fastbee-common/ # 公共工具类、领域模型、注解、常量 fastbee-open-api/ # 对外 REST API fastbee-service/ fastbee-iot-service/ # IoT 业务逻辑 fastbee-system-service/ # 系统管理(用户、角色、菜单) fastbee-server/ base-server/ # 服务器抽象基类 iot-server-core/ # 消息分发核心 mqtt-broker/ # 内嵌 MQTT Broker http-server/ # HTTP 设备接入(端口 8081) tcp-server/ # TCP 服务器(端口 8888) coap-server/ # CoAP 服务器(端口 5683) sip-server/ # SIP/GB28181 视频监控 boot-strap/ # 服务器启动引导 fastbee-protocol/ # 协议编解码 base/ # 协议抽象层 collect/ # 数据采集协议实现 fastbee-iot-data/ # 时序数据存储(TDengine) fastbee-mq/ # RocketMQ 集成 fastbee-notify/ # 多渠道通知 fastbee-record/ # 设备数据记录/持久化 fastbee-plugs/ generator/ # 代码生成器 quartz/ # 定时任务 ruleEngine/ # LiteFlow 规则引擎 oss/ # 对象存储(S3/阿里云 OSS) mqtt-client/ # MQTT 客户端 oauth/ # OAuth 2.0(JustAuth) pay/ # 支付集成 http/ # HTTP 客户端(Forest) ``` ## 核心功能 - **多协议接入**:MQTT、TCP、CoAP、HTTP、WebSocket、SIP(GB28181) - **设备管理**:注册、分组、共享、固件升级 - **产品管理**:产品定义、物模型、分类管理、授权码 - **数据采集**:Modbus 轮询、自定义协议解析 - **告警监控**:告警规则、告警历史、通知推送 - **场景编排**:LiteFlow 规则引擎、数据桥接(HTTP/MQTT/数据库) - **时序数据**:支持 TDengine 高性能时序存储 - **视频监控**:GB28181 国标协议接入、PTZ 控制、录像回放 - **可视化**:低代码拖拽式大屏设计 - **规则引擎**:图形化场景编排,支持脚本 - **通知系统**:多渠道消息推送 - **多租户**:内置多租户数据隔离 - **代码生成**:一键生成前后端 CRUD 代码 ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.6+ - MySQL 5.7+ - Redis - RocketMQ(可选) - TDengine(可选) - EMQX(可选,使用外部 MQTT Broker 时) ### 本地开发 ```bash # 1. 初始化数据库 执行 sql/yack-init.sql # 2. 修改配置 编辑 application-dev.yml,配置 MySQL、Redis 连接信息 # 3. 启动后端 mvn clean package -DskipTests cd fastbee-admin/target java -jar fastbee-admin.jar --spring.profiles.active=dev # 4. 启动管理后台(yack-web) cd yack-web npm install npm run dev # 5. 启动可视化设计器(yack-view) cd yack-view pnpm install pnpm dev # 6. 启动移动端(yack-app) cd yack-app npm install # 使用 HBuilderX 打开并运行 ``` ### API 文档 启动服务后访问:`http://localhost:8080/swagger-ui/index.html` ### 协议端口 | 协议 | 端口 | 说明 | |:---|:---:|:---| | MQTT | 1883 | 未加密 TCP | | MQTTS | 8883 | 加密 TCP | | WS | 8083 | WebSocket | | WSS | 8084 | 加密 WebSocket | | HTTP 设备接入 | 8081 | HTTP 协议 | | TCP | 8888 | TCP 协议 | | CoAP | 5683 | CoAP 协议 | ## 部署 ### Docker 部署 ```bash cd docker docker-compose up -d ``` ### 前端部署 - **yack-web**:`npm run build:prod`,产物部署至 Nginx - **yack-view**:`pnpm build`,产物部署至 Nginx `/var/data/nginx/view/` ## 数据库 FastBee 共使用 117 张表,涵盖以下业务领域: - 设备管理、产品管理、物模型 - 告警监控、场景编排、规则引擎 - 网关与子设备、Modbus 配置 - 固件升级、SCADA 可视化 - SIP 视频监控、OAuth 认证 - 系统管理(若依 RBAC)、通知系统 - 对象存储、代码生成、Quartz 定时任务 完整的数据库初始化脚本位于 `sql/yack-init.sql`。 ## 相关项目 | 项目 | 技术栈 | 说明 | |:---|:---|:---| | yack-web | Vue 2 + Element UI | 管理后台 | | yack-view | Vue 3 + Vite + Naive UI | 低代码可视化 | | yack-app | UniApp + uView | 移动端 | ## 开源协议 本项目基于 [MIT 许可证](LICENSE) 开源。 ## 致谢 - [若依(RuoYi)](https://gitee.com/y_project/RuoYi) — 提供优秀的后台开发框架 - [Element UI](https://github.com/ElemeFE/element) - [Naive UI](https://github.com/tusen-ai/naive-ui) - [GoView](https://github.com/dromara/GoView)