一个功能完备、高可扩展的物联网平台

🌟 项目简介

一个功能完备、高可扩展的物联网平台,用最少的代码接入设备,基于Ruoyi-vue框架,支持Mysql和pgsql双版本,集成mybatis-plus,集成TCP、MQTT、UDP、CoAP、HTTP、WebSocket、MODBUS等多种网络组件,提供完整的设备接入、管理和数据处理解决方案。具备强大的消息解析、数据转发、规则编排和实时告警能力,帮助企业快速构建物联网应用。

该项目现已纳入若依项目拓展中

演示地址

演示使用,请不要暴力测试和修改密码,谢谢。
http://47.109.145.72:28082/
账号:admin 密码:admin123

使用中如果遇到问题或需要改进的地方,可以加入文档末尾QQ群在群里提问,同时也感谢您宝贵的建议。

技术文档

官方技术文档

最新协议包代码地址

协议包代码地址

🚀 核心特性

1. 设备全生命周期管理

  • 状态监控 - 实时设备在线状态跟踪,多种设备在离线判断方式可配置,断开连接/网关管理/心跳机制
  • 数据清理 - 设备可单独配置消息保存时间,到期自动删除
  • 定位管理 - 设备可配置经纬度坐标以及中文位置,地图上一览设备在离线情况。
  • 设备分组 - 可对产品和设备单独分组,更方便设备类别的管理。

2. 多协议接入支持

  • TCP - 稳定可靠的长连接通信
  • MQTT - 轻量级的发布订阅模式(内置高性能mqtt_broker,可一键开启mqtt服务)
  • UDP - 高效的低延迟数据传输
  • CoAP - 专为受限设备设计的协议
  • HTTP - 标准的RESTful接口
  • WebSocket - 实时双向通信
  • MODBUS - 工业物联网设备协议

3. 智能消息解析

  • 协议适配 - 多种数据格式解析(JSON、二进制、自定义)
  • 数据转换 - 灵活的数据格式转换和归一化
  • 设备自动注册 - 设备上报消息即可自动注册,无需一个设备一个设备手动添加。
  • 规则引擎 - 可视化配置数据处理规则,不再需要修改代码
  • 设备联动 - 可视化配置多设备之间告警执行动作
  • 数据转发 - 可配置数据和告警转发到各种消息队列,HTTP接口
  • 定时执行 - 可视化配置设备自动执行各种指令,动态开关。
  • 数据存储 - 支持mysql/postgresql两种数据库,无需改一行代码随意切换。

4. 实时告警系统

  • 在离线告警 - 多种设备在离线判断方式可配置,断开连接/网关管理/心跳机制都可触发告警。
  • 阈值告警 - 可配置的数据阈值监控
  • 规则引擎 - 灵活的告警规则定义
  • 设备联动 - 灵活的设备联动配置,如A设备触发告警、执行B设备指令
  • 多通道通知(开发中) - 邮件、短信、Webhook等多种通知方式
  • 告警分级 - 多级别告警管理

5. 视频中心(目前仅支持海康平台、其他平台和GB28181还在开发中)

  • 海康平台 - 可配置多个海康平台地址,一键同步所有监控设备。

6. 远程功能下发

  • 指令管理 - 统一的指令下发接口
  • 自动下发 - 触发告警后自动下发相应指令
  • 历史记录 - 手动\告警触发指令执行记录

7、协议开发

协议包在 协议包代码地址
按照以下方法写完解析代码之后打包成jar包上传到平台
开发协议只需要实现对应网络协议的decode和encode方法即可

演示地址

演示使用,请不要暴力测试和修改密码,谢谢。
http://47.109.145.72:28082/
账号:admin 密码:admin123

测试方式

MQTT方式:

1、线上已经开启一个端口,连接即可
2、发送以下消息到任意topic

{

"humidity": 45.7,

"inTemperature": 22.5,

"outTemperature": 31,

"voice": 65.2,

"windSpeed": 13.8,

"deviceSn":"mqtt_001"

}

3、查看对应SN设备数据,消息已经上来

Websocket方式也是如此:

1、线上已经开启一个ws连接地址: ws://47.109.145.72:10883/test1
2、发送消息

{

"humidity": 45.7,

"inTemperature": 22.5,

"outTemperature": 31,

"voice": 65.2,

"windSpeed": 12.8,

"deviceSn":"WS_DEVICE_001"

}

3、查看WS_DEVICE_001设备数据
4、在历史数据按钮里面能够看到上下线和上报的历史数据

其他网络组件也是如此,由于线上环境这两种协议比较方便测试,只添加了这两种数据。

开发协议只需要实现对应网络协议的decode和encode方法即可

decode对应设备上行消息协议

encode对应设备指令下发解析

以mqtt-client为例

1、实现MqttClientProtocol的decode方法,并把解析后的消息组装到DecodeMessage类并返回。

2、实现MqttClientProtocol的encode方法,并把解析后的消息组装到EncodeMessage类并返回。

3、打包成jar包上传到平台,并选择对应的协议分类即可。

注意:更新或者新增协议无需重启项目,上传即生效,平台启动之后,后续任何操作都无需再重启平台。

下面是协议中重要的类截图

MqttClientProtocol接口:

MqttClientDeal实现类:

DecodeMessage解析后的消息实体:

EncodeMessage解析后的指令下发实体:

🏗️ 系统架构

🛠️ 快速开始

1、首页
2、产品管理
3、告警配置
4、实时数据
5、指令下发
6、物模型
7、告警记录
8、其他配置
9、网络组件
10、组件调试
11、协议管理
12、规则引擎-数据转发
13、规则引擎-设备联动
14、规则引擎-定时任务
15、设备管理-地图服务

!

环境要求

JDK >= 1.8
MySQL >= 5.7
Maven >= 3.0
Node >= 12
Redis >= 3

项目地址:https://gitee.com/chinachentao/thinglinks-community

⭐ 支持项目

如果这个项目对您有帮助,请给我们一个 Star!您的支持是我们持续更新的动力。

相关推荐
行者全栈架构师28 分钟前
【鸿蒙心迹】让老照片变清晰:HarmonyOS 7.0 图像超分相册工程化落地与 5 个踩坑解法
架构·前端框架·开源
RFID科技的魅力34 分钟前
2026 年 RFID 资产标签批量制作怎么做?RFID 标签打印机实操指南
运维·人工智能·嵌入式硬件·物联网
青衫嵌入式1 小时前
用 STM32 搞清楚 FreeRTOS 的任务上下文到底是什么
物联网·程序员
paopaokaka_luck1 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_32241428041 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
miofly2 小时前
Kling 4.0 上线 API 调用,支持 30 秒原生音频视频生成
开源·github
DisonTangor2 小时前
FLUX 3 Image Klein 中文全解:5.6B 开源文生图与图像编辑模型实战指南
人工智能·ai作画·开源·aigc·1024程序员节
考虑考虑2 小时前
JDK26的JEP 500属性
java·后端·java ee
LMT流氓兔2 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节
miofly2 小时前
山东大学研究:代码智能体的复杂 harness 主要提升 token 消耗而非性能
开源·github