【开源】一个基于java语言的物联网中间件,支持常用物联网协议

createh52个月前 (02-01)技术教程11

项目介绍

iot-ucy是使用java语言且基于netty, spring boot, redis等开源项目开发来的物联网网络中间件, 支持udp, tcp, 串口(com)通讯(window、linux、mac)等底层协议和http, mqtt, websocket(默认实现和自定义协议头实现), modbus(tcp,rtu),plc,dtu(支持心跳,设备注册功能以及AT协议和自定义协议支持),dtu for modbus tcp,dtu for modbus rtu组件适配 等上层协议. 主打工业物联网底层网络交互、设备管理、数据存储、大数据处理。(其中plc包括西门子S7系列,欧姆龙Fins) 数据存储将使用taos数据库以及redis消息队列。

已实现功能

  • 西门子和欧姆龙PLC原生协议适配
  • Modbus Tcp协议客户端实现
  • DTU + Modbus(Tcp/RTU)协议的服务端实现
  • Mqtt(3.1+版本)客户端实现(一套默认实现并支持自定义实现)
  • Websocket协议的客户端和服务端实现(一套默认实现并支持自定义实现)
  • 串口通讯(支持平台 mac, windows, linux)
  • DTU模拟器
  • 支持基于TCP协议的设备协议自定义
  • 支持基于UDP协议的设备协议自定义
  • 支持在任意的java环境使用不强制依赖spring框架(V3.0.0+)
  • 支持动态启用和停用组件服务(V3.0.0+)
  • 支持串口+Modbus Rtu(V3.0.0+)

接口主要特性

  • 支持服务端启动监听多个端口, 统一所有协议可使用的api接口
  • 包含一套代理客户端通信协议,支持调用:客户端 -> 服务端 -> 设备 -> 服务端 -> 客户端
  • 支持设备协议对象和其业务对象进行分离(支持默认业务处理器【spring单例注入】和自定义业务处理器)
  • 支持同步和异步调用设备, 支持应用程序代理客户端和设备服务端和设备三端之间的同步和异步调用
  • 服务端支持设备上线/下线/异常的事件通知, 支持自定义心跳事件, 客户端支持断线重连
  • 丰富的日志打印功能,包括设备上线,下线提示, 一个协议的生命周期(请求或者请求+响应)等
  • 支持请求时如果连接断线会自动重连(同步等待成功后发送)
  • 支持客户端发送请求时如果客户端不存在将自动创建客户端(同步等待成功后发送)

模拟工具

  • QtSwissArmyKnife 支持udp、tcp、modbus、websocket、串口等调试
  • IotClient 支持plc(西门子,欧姆龙,三菱),modbus,串口,mqtt,tcp, udp等模拟和调试

项目界面

开源地址:
https://gitee.com/iteaj/iot
#好用的开源软件##开源项目精选#

相关文章

Java 泛型使用(类、方法、接口协议、类型通配符、通配符上下限)

一、简介泛型:是 JDK5 中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型,它的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。一提到参数,最熟悉的就是定...

ThingsBoard物联网平台实践 LoRa协议+node-red+mqtt 实现单灯控制

ThingsBoard是一个基于Java的开源物联网平台,可实现物联网项目的快速开发,管理和扩展。ThingsBoard 使用行业标准物联网协议(MQTT,CoAP和HTTP)实现设备连接,并支持云和...

通过 HTTP/2 协议案例学习 Java & Netty 性能调优:工具、技巧与方法论

作者:梁倍宁 Apache Dubbo Contributor、陈有为 Apache Dubbo PMC摘要AliwareDubbo3 Triple 协议是参考 gRPC、gRPC-Web、Dubbo...

Java 中 SM3 算法的应用与实践探究

一、引言1.1 研究背景与意义在当今数字化时代,信息已成为社会发展的核心要素之一,广泛渗透至金融、政务、医疗、通信等诸多关键领域,成为推动各行业进步的重要驱动力。与此同时,信息安全问题也随之凸显,频繁...

别再到处 new 对象了,试试 3 大工厂模式,真香

你还在到处 new 对象吗?单身狗:我没对象,new 怎么了?new 对象本身是没问题的,但也不能全部 new 关键字走天下,其实有更好的方式,合适的时候可以试试工厂模式,代码会更优雅。什么是工厂模式...