写一个开箱即用的物联网项目捐献给Dromara组织
一、平台简介
- MzMedia开源视频联动物联网平台,简单易用,更适合中小企业和个人学习使用。适用于智能家居、农业监测、水利监测、工业控制,车联网,监控直播,慢直播等场景。
- 支持抖音,视频号等主流短视频平台推流直播,提取视频切片等功能
- 系统后端采用Spring boot;前端采用Vue3+Element Plus;消息服务器采用EMQX5.0;数据库采用Mysql、TDengine和Redis;设备端支持OpenWrt,FreeRTOS,RT-Thread等操作系统的接入sdk;
- 本项目使用了多个Dromara组织框架和工具,包括:RuoYi-Vue-Plus,hutool,Sa-Token,LiteFlow,Forest,sms4j,go-view等,取之于Dromara组织,贡献于Dromara组织。
- 系统架构图
RuoYi-Vue-Plus 是重写 RuoYi-Vue 针对 分布式集群与多租户 场景全方位升级
项目代码、文档 均开源免费可商用 遵循开源协议在项目中保留开源协议文件即可
活到老写到老 为兴趣而开源 为学习而开源 为让大家真正可以学到技术而开源
gitee: MzMedia
github: MzMedia
文档地址: MzMedia
系统演示: 传送门
二、系统功能
1.框架系统功能
功能 | 本项目 |
前端项目 | 采用 Vue3 + TS + ElementPlus 重写 |
后端项目结构 | 采用插件化 + 扩展包形式 结构解耦 易于扩展 |
关系数据库支持 | 原生支持 MySQL、Oracle、PostgreSQL、SQLServer 可同时使用异构切换 |
缓存数据库 | 支持 Redis 5-7 支持大部分新功能特性 如 分布式限流、分布式队列 |
ORM框架 | 采用 Mybatis-Plus 基于对象几乎不用写SQL全java操作 功能强大插件众多 例如多租户插件 分页插件 乐观锁插件等等 |
文件存储 | 采用 Minio 分布式文件存储 天生支持多机、多硬盘、多分片、多副本存储 支持权限管理 安全可靠 文件可加密存储 |
云存储 | 采用 AWS S3 协议客户端 支持 七牛、阿里、腾讯 等一切支持S3协议的厂家 |
短信,邮件 | 采用 sms4j 短信融合包 支持数十种短信厂家 只需在yml配置好厂家密钥即可使用 可多厂家共用 |
接口文档 | 采用 SpringDoc、javadoc 无注解零入侵基于java注释 只需把注释写好 无需再写一大堆的文档注解了 |
工具类框架 | 采用 Hutool、Lombok 上百种工具覆盖90%的使用需求 基于注解自动生成 get set 等简化框架大量代码 |
代码生成器 | 只需设计好表结构 一键生成所有crud代码与页面 降低80%的开发量 把精力都投入到业务设计上 框架为其适配MP、SpringDoc规范化代码 同时支持动态多数据源代码生成 |
部署方式 | 支持 Docker 编排 一键搭建所有环境 让开发人员从此不再为搭建环境而烦恼 |
2.物联网系统功能
功能 | 介绍 |
MQTT协议支持 | 集成emqx5.0 mqtt消息中间件,支持MQTT (3.1、3.1.1和5.0)等协议标准 |
视频监控协议支持 | 集成ZLMediaKit流媒体服务器,支持GB28181国标协议,支持RTSP,RTMP,RTP等流媒体协议,支持海康威视,大华等主流监控设备 |
主流modbus,PLC协议支持 | 集成ModbusTCP服务器和ModbusRTU解码器,支持主流工控设备数据上报方式,支持MQTT透传,TCP透传,ModbusTCP等方式,可对接主流PLC设备 |
物模型规范 | 有标准的物模型字段,根据属性,功能,事件来处理设备业务,支持灵活的key-value编码解析 |
消息编码管理 | key-value编码可自定义调整,可使用规则引擎对消息进行简单处理 |
设备接入协议管理 | 支持mqtt,sip,http,tcp,udp,tr069,snmp,lora等网络组件接入,可启停,可横向拓展。 |
细粒度的时序数据库记录 | 集成TDengine时序数据库,可记录每个设备的属性和事件历史数据,可进行大数据处理和展示 |
更加灵活的规则引擎 | 集成 node-red + liteflow 框架,作为业务解耦核心组件,更加方便拓展, |
设备拓扑,设备组态 | 集成 ShadowEditor 框架,动态展示设备实时运行状态,可根据需要开启 |
数据可视化 | 集成GoView框架,可拖拽可视化大屏,项目整体数据展示更加炫酷 |
三方系统对接 | 集成Forest框架,高层的、极简的轻量级HTTP调用API框架。 |
设备sdk开发 | 支持主流物联网操作系统 ESP-IDF,openwrt |
三、技术栈
- 服务端
- 相关技术:Spring boot、Mybatis-Plus、Sa-Token、Jwt、Mysql、Redis、TDengine、EMQX5.0、Vertx等
- Web端
- 相关技术:Vue3、TS、Element Plus、Vite等
- 可视化大屏(GoView)
- 相关技术:Vue、TypeScript4、Vite、NaiveUI、ECharts、Pinia等
- 组态(ShadowEditor)
- 相关技术:Vue、ElementUI、Three.js、Go、MongoDB等
- 规则引擎(node-red+liteflow)
- 相关技术:nodejs、html、js等
- 流媒体服务器(zlmediakit)
- 相关技术:c++、sip、gb28181、rtmp、rtsp、flv、ffmpeg、ffprobe等
- 硬件端
- 相关技术:ESP-IDF、Arduino、openwrt、freeos、rt-thread等
四、本项目业务特性
1.框架业务特性
2.物联网业务特性
五、项目目录
ui --------------------------- 前端项目
devsdk ----------------------- 设备端sdk
script ----------------------- docker部署脚本和sql数据库脚本
六、开源项目持续性规划
- 广告位和厂商赞助
- 技术支持服务
- 应用商店模块售卖,标准模块拓展,协议包,功能包等
- 项目提炼商业版本授权
- 项目成熟后设备托管服务和定制开发服务
七、成员招募
目前缺前端大佬一名,移动端大佬一名 要求:
- 有开源精神,愿意长期献身开源项目,
- 对物联网项目感兴趣,技术栈为“Vue3、TS、Element Plus”最佳,
- 有能力使用主流前端框架重写现有功能页面,能开放移动端小程序最佳
- 会根据贡献共享开源收入。