[开源]Java和Netty开发的通用物联网(IoT)网关系统,支持多协议

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

iboot(物联网网关)

iboot是基于java1.8、springboot2.7、netty等框架开发的物联网网关,支持的网络协议包括tcpudp、mqtt、http、串口等,工业协议包括modbus、plc(欧姆龙西门子)。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

核心功能页面







四、功能概述

iboot是一款java和netty开发的通用物联网(iot)网关系统,作为业务系统和设备之间的网关,用于业务系统方便快速的采集和控制设备。现已支持modbus、plc、串口、mqtt等工业协议以及提供自定义设备驱动的能力。

项目介绍

  1. 这个项目能用来做什么?

iboot是一款通用的物联网关平台,用来连接业务系统和物联网设备的网关;对南向主要用于采集和控制设备对北向主要是提供接口给第三方业务平台操作设备,使得对物联网不熟的个人开发者或者公司可以更加关注业务需求,将设备相关部分交由iboot物联网关

  1. 既然设备的采集和控制交给iboot,那业务系统怎么和设备交互呢?

iboot支持通过http协议以同步的方式以及通过mqtt异步的方式和业务系统交互,业务系统可以间接通过iboot网关采集和控制设备

  1. 如果你们项目不大,设备量也不多不想要太复杂的软件架构,要的是轻装上阵开发效率第一怎么办?

iboot只是一个springboot单体项目,只依赖mysql服务和nginx服务就可以,部署简单,运行效率高

  1. 我们设备种类很多,iboot支持自定义设备接入吗?

iboot支持以自定义jar包的方式提供设备驱动, 理论上可以支持任何设备

  1. 我们设备量大,采集的数据量多就一台mysql肯定扛不住怎么办?

iboot支持多数据源,支持采集的数据切换到时序数据库(默认TDengine)

  1. 有朋友说对TDengine不熟,想使用其他的时序数据源好切换吗 如. influxdb?

iboot系统关键部位架构在插件化的形式所以可以很方便的进行切换和自定义

  1. 如果客户对实时性要求很高,业务系统怎么和iboot网关对接?

首先iboot支持将采集的实时数据(数据、告警、设备上下线等)通过RabbitMq队列的方式向业务系统提供数据其次iboot支持将采集的实时数据(数据、告警、设备上下线等)通过websocket实时向前端推送(方便web前端实时展示或给组态系统提供实时数据)

  1. 支持将系统部署在边缘的网关服务器吗?

iboot使用java跨平台的语言开发,原则上只要边缘服务器支持linux系统即可

  1. 你们的开源产品不会和其他开源产品一样是个半成品吧(害怕用了之后各种问题无奈只能使用高级版)?

iboot的开源产品是收费产品的基础,因为我们只对部分功能收费,收费版本是开发版本的底层分支,核心的功能收费分支都是直接合并的开发分支,所以不需要担心,因为他们是同一套代码,只是收费版本多了一些高级功能

五、技术选型

系统安装环境

iboot是一个springboot单体架构,只需要一台云服务器;安装java运行环境、mysql数据库、nginx代理服务即可

服务器配置

云服务器最低配置在2核8G,cpu密集型、硬盘看采集的数据量(120G+)

语言和框架

  1. 后端:java1.8、spring boot2.7、、mybatismybatis-plus、shiro、satoken、thymeleaf、hikaricp
  2. 前端:vue3、antd、axios、qs、moment、validate
  3. 数据: mysql8.0+
  4. 开发工具:idea

六、源码地址

访问一飞开源:https://code.exmay.com/