需求

作为一个物联网行业的从业者,从事过单片机到后台的开发,对物联网平台的需求也是非常明确:
1.支持的协议需要足够多,对于MQTT和Modbus这种常见的协议必须及支持,而且容易扩展
2.系统的管理要全面:用户管理,权限管理等缺一不可
3.支持简单灵活的规则引擎:支持监控设备的上下线,属性值异常,可以通过消息队列或者http通知其他业务系统,联动其他设备.
4.代码必须开源:不要各种功能都是商业版本才支持,核心代码根本不开放.

EnjoyIot

基于以上的明确需求,对比JetLink,ThingBoard,Fastbee等一系列JAVA阵营的物联网平台,给大家推荐一款-乐联开源-EnjoyIot开源物联网平台

截止发稿在Gitee已经有2000多Star

演示地址
http://8.134.104.234:20080/index 账号 test/123456

物联网功能

首先是物联网功能很完善,协议接入,规则引擎都有.例如:
1.通过页面配置既可以进行消息转发,设备告警及设备联动控制,
2.即可使用内置的mqtt服务器,也可以接入EMQX,ModbusTcp通过页面配置即可接入
3.文档很完善,实属良心,开源群里也很活跃.文档地址
4.采用现在流行的技术栈,前端采用Vue3,TS,后端采用Springboot2/3,MybatisPlus,Vertx等
5.非常好的扩展性兼容性,时序数据库可以选择ES,TdEngine等.支持更换消息队列,比如直接使用spring event,也可换成Kafka,RocketMq,AKKA等,支持水平扩展.

产品管理

方便的定义各类产品,物模型及各种协议组件,统一产品管理
在这里插入图片描述
通过设备详情页,可以读取设备的当前属性值,设置设备的可写属性及调用设备提供的方法

在这里插入图片描述
在这里插入图片描述

规则引擎

规则引擎可以适配不同应用场景,通过配置规则来执行一些场景应用,来完成某种功能或数据输出转发
比如,我们需要监听设备的上线下线,当设备上下线时,给管理员或者维护人员发送通知
再比如,当设备数据大于某个值时,需要告警,或者将数据转发(可以通过http,kafka,mqtt等方式)到其他平台等等
这时候,通过灵活的规则引擎配置来完成上述的应用场景,方便运维,开发等工作。

具体参考官方教程: 官方教程

在这里插入图片描述

协议组件

协议组件是负责解析设备协议的,EnjoyIot协议组件的设计,是我觉得目前这几个平台里最简单,而且具备高扩展能力的.
目前内置了MQTT,Http,Tcp,ModbusTcp的支持.
并且提供了详细的文档: 官方文档-设备接入

ModbusTcp为例:

先配置产品的modbus点位
在这里插入图片描述
然后再启用ModbusTcp插件,插件里即可轮询相关点位,上报对应的信息

系统功能

其次,系统管理功能是基于ruoyi框架框架的,基本的java开发者都很熟悉,而且功能很完善

在这里插入图片描述

功能 描述
用户管理 用户是系统操作者,该功能主要完成系统用户配置
在线用户 当前系统中活跃用户状态监控,支持手动踢下线
角色管理 角色菜单权限分配,设置角色按钮进行数据范围权限划分
菜单管理 配置系统菜单、操作权限、按钮权限限制等,本地缓存将提供性能
部门管理 部门系统组织结构(公司、部门、小组),树结构展现现有数据权限
岗位管理 配置系统用户所承担的职责
租户管理 配置系统租户,支持 SaaS 场景下的多租户功能
用户套餐管理 配置租户套餐,自定每个租户的套餐、操作、按钮权限
字典管理 对系统中经常使用的一些数据为固定数据进行维护
短信管理 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台
邮件管理 邮箱账单、邮件模板、邮件发送日志,支持所有邮件平台
网站消息 系统的消息通知,支持站内信模板、站内信消息
操作日志 系统正常操作日志记录和查询,集成 Swagger 生成日志内容
登陆日志 系统登录日志记录查询,包括登录异常
错误管理 系统所有错误的管理,可在线修改错误提示,无需重启服务
通知公告 系统通知及公告信息发布维护
敏感词 配置系统敏感词,支持标签分组
应用管理 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式
地区管理 展示省份、城市、区县等城市信息,支持 IP 对应城市

基础功能

丰富的基础功能,可以方便的二开
在这里插入图片描述

功能 描述
代码生成 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载
系统接口 基于 Swagger 自动生成相关 RESTful API 接口文档
数据库文档 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式
表单构建 自动生成表单示例的 HTML 代码,支持导出 JSON、Vue 文件
配置管理 允许系统动态配置参数数量,支持 SpringBoot 加载
文件服务 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等
WebSocket 提供 WebSocket 连接示例,支持一对一、一对多发送方式
API 日志 包括 RESTful API 访问日志,异常日志两部分,方便排查 API 相关的问题
MySQL 监控 监视当前数据库连接状态,可以进行分析 SQL 以及系统性能指标
Redis 监控 监控 Redis 数据库的使用情况,使用的 Redis Key 管理
消息队列 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费
Java 监控 基于 Spring Boot Admin 实现 Java 应用的监控
链路追踪 接入 SkyWalking 组件,实现链路追踪
日志中心 接入 SkyWalking 组件,实现日志中心
服务保障 基于 Redis 实现分布式锁、限流功能,满足高并发访问需求
监控管理 轻量级监控中心,查看远程服务端的日志

对比

比较开源版本的内容,而非商业版本

开源平台 开源程度 学习成本 文档完善 二开成本 系统功能 协议支持
EnjoyIot ⭐⭐⭐⭐⭐ 最低 ⭐⭐⭐⭐ 完善 Mqtt,Modbus,Http,Tcp
ThingBoard ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 完善 MQTT、CoAP , HTTP
Jetlinks ⭐⭐⭐⭐⭐ 难度稍大 ⭐⭐⭐⭐⭐ 较高 完善 Mqtt,Http,Tcp

除了以上方面,对于扩展性来说,乐联EnjoyIot是里面最好的

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐