20260507:README.md
This commit is contained in:
parent
584da2867b
commit
982ab8a56a
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -1,4 +0,0 @@
|
|||||||
* text=auto
|
|
||||||
*.xml text eol=lf # 所有 XML 文件强制使用 LF 作为行结束符(提交和拉取都为 LF)
|
|
||||||
*.yml text eol=lf # YAML 文件同理
|
|
||||||
*.java text eol=lf # Java 文件同理
|
|
||||||
273
README.md
273
README.md
@ -1,86 +1,213 @@
|
|||||||
|
# FastBee 物联网平台
|
||||||
|
|
||||||
|
基于 **若依(RuoYi)v3.8.5** 框架构建的开源物联网平台,提供设备接入、数据采集、协议解析、规则引擎、告警监控、视频接入等一站式 IoT 解决方案。
|
||||||
|
|
||||||
## 平台简介
|
## 平台简介
|
||||||
|
|
||||||
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
|
FastBee 是一个功能完备的企业级物联网基础平台,支持多协议设备接入、海量时序数据处理、可视化场景编排与数据展示。
|
||||||
|
|
||||||
* 前端采用Vue、Element UI。
|
- 后端采用 Spring Boot 2.5.14 + Spring Security + Redis + JWT,多模块化架构
|
||||||
* 后端采用Spring Boot、Spring Security、Redis & Jwt。
|
- 前端包含三个独立应用:Vue 2 管理后台(yack-web)、Vue 3 低代码可视化(yack-view)、UniApp 移动端(yack-app)
|
||||||
* 权限认证使用Jwt,支持多终端认证系统。
|
- 设备接入支持 MQTT、TCP、CoAP、HTTP、WebSocket、SIP(GB28181)等多种协议
|
||||||
* 支持加载动态权限菜单,多方式轻松权限控制。
|
- 内置 MQTT Broker(Netty 实现),可选择内嵌模式或连接外部 EMQX
|
||||||
* 高效率开发,使用代码生成器可以一键生成前后端代码。
|
- 时序数据存储支持 MySQL 及 TDengine
|
||||||
* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://github.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。
|
- 通知系统支持多渠道推送(邮件、短信等)
|
||||||
* 提供了单应用版本[RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://github.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。
|
- 内嵌 LiteFlow 规则引擎,支持 IoT 场景自动化编排
|
||||||
* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
|
|
||||||
* 特别鸣谢:[element](https://github.com/ElemeFE/element),[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin),[eladmin-web](https://github.com/elunez/eladmin-web)。
|
|
||||||
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)
|
|
||||||
* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)
|
|
||||||
|
|
||||||
## 内置功能
|
## 技术栈
|
||||||
|
|
||||||
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
|
### 后端
|
||||||
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
|
|
||||||
3. 岗位管理:配置系统用户所属担任职务。
|
|
||||||
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
|
|
||||||
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
|
|
||||||
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
|
|
||||||
7. 参数管理:对系统动态配置常用参数。
|
|
||||||
8. 通知公告:系统通知公告信息发布维护。
|
|
||||||
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
|
|
||||||
10. 登录日志:系统登录日志记录查询包含登录异常。
|
|
||||||
11. 在线用户:当前系统中活跃用户状态监控。
|
|
||||||
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
|
|
||||||
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
|
|
||||||
14. 系统接口:根据业务代码自动生成相关的api接口文档。
|
|
||||||
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
|
|
||||||
16. 缓存监控:对系统的缓存信息查询,命令统计等。
|
|
||||||
17. 在线构建器:拖动表单元素生成相应的HTML代码。
|
|
||||||
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
|
|
||||||
|
|
||||||
## 在线体验
|
| 组件 | 技术 |
|
||||||
|
|:---|:---|
|
||||||
|
| 核心框架 | Spring Boot 2.5.14 |
|
||||||
|
| 安全框架 | Spring Security + JWT |
|
||||||
|
| ORM | MyBatis(若依框架集成) |
|
||||||
|
| 数据库连接池 | Druid |
|
||||||
|
| 缓存 | Redis(Redisson) |
|
||||||
|
| MQTT Broker | Netty 自研 / EMQX |
|
||||||
|
| 消息队列 | RocketMQ |
|
||||||
|
| 规则引擎 | LiteFlow |
|
||||||
|
| 时序数据库 | MySQL / TDengine |
|
||||||
|
| 协议服务器 | Netty |
|
||||||
|
| 代码生成器 | Velocity 模板 |
|
||||||
|
| 项目管理 | Maven(多模块) |
|
||||||
|
|
||||||
- admin/admin123
|
### 前端
|
||||||
- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。
|
|
||||||
|
|
||||||
演示地址:http://vue.ruoyi.vip
|
| 应用 | 技术 | 用途 |
|
||||||
文档地址:http://doc.ruoyi.vip
|
|:---|:---|:---|
|
||||||
|
| yack-web | Vue 2 + Element UI + Vuex | 管理后台 |
|
||||||
|
| yack-view | Vue 3 + TypeScript + Vite + Naive UI + Pinia | 低代码可视化设计器 |
|
||||||
|
| yack-app | UniApp + uView 2.0 | 移动端(iOS/Android/微信小程序) |
|
||||||
|
|
||||||
## 演示图
|
## 架构
|
||||||
|
|
||||||
<table>
|
### 数据流
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
|
|
||||||
<td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
```
|
||||||
|
设备 → 协议服务器(Netty,端口因协议而异)
|
||||||
|
→ iot-server-core 消息分发器
|
||||||
|
→ RocketMQ
|
||||||
|
→ fastbee-record 持久化
|
||||||
|
→ MySQL / TDengine
|
||||||
|
→ WebSocket 推送至前端
|
||||||
|
```
|
||||||
|
|
||||||
## 业务记录
|
### 模块结构
|
||||||
|
|
||||||
1、建立每个设备的轮询iot_modbus_job任务之前会查看是否存在设备任务iot_device_job;
|
```
|
||||||
|
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-20260316.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-20260316.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)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user