物联网云平台工业设备对接远程控制数据采集视频接入开源可二次开发 该物联网云平台使用 Java 语言、主流技术组合开发,支持多数据源,支持代码一键生成,方便快速开发。 1、内含物联网云平台全套源码(源码全部开放,无任何加密,可二次开发)、MQTT服务、数据库设计、相关资料、相关工具软件等; 2、使用基于发布/订阅模式的轻量级通讯协议 MQTT,具有自动重连机制,具有设备上下线提醒功能; 3、支持 Modbus RTU、Modbus TCP 协议03、05功能码,亦可自定义协议接入;支持各类 DTU、透传模块以及各类工业设备接入等; 4、支持云固件升级、远程重启等;可存储各路开关状态,设备断电或重启后可自动同步云端各路开关状态,具有开关状态记忆功能; 5、云平台可对各类传感器管理,适用各种业务场景;对传感器数据有多种展示方式; 6、可配置报警规则,符合报警规则可执行自定义动作、联动报警、报警通知等; 7、控制命令下达后有执行状态反馈,可确保设备控制命令执行成功; 8、具有可视化在线定时任务配置功能,可指定某一时刻执行、周期执行、自定义 Cron 表达式执行等操作; 9、具有场景管理功能,可一键执行设定的动作; 10、具有视频管理功能,支持萤石云协议的摄像头均可接入云平台,可在云平台直接预览视频画面; 11、可记录设备、用户所有操作记录,设备、用户上下线记录等,并具有多种类型的数据统计展示; 12、云平台可对所有用户管理,每个用户可配置不同角色、不同权限,具有权限分配功能;支持对人员进行菜单、按钮及数据权限控制,亦可自定义数据权限; 13、前端采用完全响应式布局,支持电脑、平板、手机等所有主流设备; 14、Maven 多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块; 等等……内容较多,在此无法一一列举

一、项目概述

KSoft物联网云平台是一款基于Java语言开发的企业级物联网系统,集设备管理、数据采集、规则报警、视频监控、用户权限等功能于一体。平台采用Spring Boot作为核心框架,结合MQTT协议实现设备通信,支持多数据源代码一键生成前后端分离等现代化开发特性,适用于智能家居、工业物联网、农业监测等多种场景。


二、核心功能模块

模块名称 功能说明
设备管理 支持设备注册、状态同步、远程控制、固件升级
传感器管理 动态维护传感器类型(温湿度、光照、人体感应等)
报警规则 支持阈值报警、联动动作、邮件/平台通知
场景管理 一键执行多个设备动作,实现自动化场景
视频管理 支持云协议摄像头接入,实时预览视频流
用户权限 基于角色的权限控制(RBAC),支持菜单、按钮、数据权限
定时任务 可视化配置,支持Cron表达式、周期执行
代码生成 一键生成前后端代码,提升开发效率

三、技术架构详解

1. 后端技术栈

组件 说明
Spring Boot 2.2.x 快速开发、内嵌Tomcat、约定优于配置
Apache Shiro 1.7 认证、授权、会话管理、缓存
MyBatis 3.5.x ORM框架,支持动态SQL
Druid 1.2.x 数据库连接池,支持监控
MQTT(EMQX) 轻量级通信协议,支持设备上下线通知
Ehcache 本地缓存,提升系统性能

2. 前端技术栈

组件 说明
Bootstrap 3.3.7 响应式UI框架,支持多端适配
Thymeleaf 3.0.x 模板引擎,支持静态HTML预览
Swagger 接口文档自动生成

四、代码结构与核心流程

项目结构

com.ksoft
├── common          // 通用工具类、注解、常量、异常等
├── framework       // 框架核心:权限、拦截器、数据源、异步处理等
├── ksoft-system    // 系统业务模块
├── ksoft-website   // Web前端模块
├── ksoft-generator // 代码生成模块(可移除)
└── ksoft-quartz    // 定时任务模块(可移除)

关键代码流程示例

1. 设备控制指令下发流程
// 伪代码示例:设备控制服务
@Service
public class DeviceControlService {

    @Autowired
    private MqttGateway mqttGateway;

    public void sendControlCommand(String deviceId, String command) {
        // 1. 校验设备状态
        Device device = deviceMapper.selectById(deviceId);
        if (device == null || !device.isOnline()) {
            throw new RuntimeException("设备不在线");
        }

        // 2. 构造MQTT消息
        MqttMessage message = new MqttMessage(command.getBytes());
        message.setQos(1);

        // 3. 发布到设备主题
        mqttGateway.publish("device/" + deviceId + "/control", message);

        // 4. 记录操作日志
        logService.saveControlLog(deviceId, command);
    }
}
2. Shiro权限校验流程
// 自定义Realm
public class UserRealm extends AuthorizingRealm {

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
        String username = (String) principals.getPrimaryPrincipal();
        Set<String> roles = roleService.getRolesByUsername(username);
        Set<String> permissions = permissionService.getPermissionsByUsername(username);

        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
        info.setRoles(roles);
        info.setStringPermissions(permissions);
        return info;
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) {
        UsernamePasswordToken upToken = (UsernamePasswordToken) token;
        String username = upToken.getUsername();
        User user = userService.findByUsername(username);
        if (user == null) {
            throw new UnknownAccountException("用户不存在");
        }
        return new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), getName());
    }
}

五、环境搭建与部署

1. 环境要求

  • JDK 1.8+
  • MySQL 5.7+
  • Maven 3.0+
  • MQTT服务(如EMQX)

2. 启动步骤

  1. 执行 db_ksoft.sql 初始化数据库
  2. 修改 application.yml 中的数据库和MQTT连接信息
  3. 运行 KSoftApplication.java 启动项目
  4. 访问 http://localhost:8097,使用 admin/123456 登录

3. 部署方式

支持 JARWAR 两种部署方式。War包部署时,将 ksoft-website.war 重命名为 ROOT.war 放入Tomcat的 webapps 目录即可。


六、特色功能亮点

1. 设备状态记忆

设备断电重启后,自动从云端同步开关状态,确保状态一致性。

2. 可视化定时任务

支持Cron表达式配置,任务执行日志可追溯。

3. 代码一键生成

基于数据库表结构,自动生成Controller、Service、Mapper、前端页面等代码。

4. 多数据源支持

轻松配置多个数据源,适用于分库分表或读写分离场景。

5. 完善的监控体系

提供数据监控、服务监控、缓存监控等功能,便于系统运维。


七、总结

KSoft物联网云平台是一款功能完备、技术先进、易于二次开发的企业级物联网解决方案。其模块化设计、代码生成能力、权限控制机制和多种设备协议支持,使其具备高度的灵活性和扩展性。无论是用于教学演示还是商业项目,都具有很高的参考和使用价值。


物联网云平台工业设备对接远程控制数据采集视频接入开源可二次开发 该物联网云平台使用 Java 语言、主流技术组合开发,支持多数据源,支持代码一键生成,方便快速开发。 1、内含物联网云平台全套源码(源码全部开放,无任何加密,可二次开发)、MQTT服务、数据库设计、相关资料、相关工具软件等; 2、使用基于发布/订阅模式的轻量级通讯协议 MQTT,具有自动重连机制,具有设备上下线提醒功能; 3、支持 Modbus RTU、Modbus TCP 协议03、05功能码,亦可自定义协议接入;支持各类 DTU、透传模块以及各类工业设备接入等; 4、支持云固件升级、远程重启等;可存储各路开关状态,设备断电或重启后可自动同步云端各路开关状态,具有开关状态记忆功能; 5、云平台可对各类传感器管理,适用各种业务场景;对传感器数据有多种展示方式; 6、可配置报警规则,符合报警规则可执行自定义动作、联动报警、报警通知等; 7、控制命令下达后有执行状态反馈,可确保设备控制命令执行成功; 8、具有可视化在线定时任务配置功能,可指定某一时刻执行、周期执行、自定义 Cron 表达式执行等操作; 9、具有场景管理功能,可一键执行设定的动作; 10、具有视频管理功能,支持萤石云协议的摄像头均可接入云平台,可在云平台直接预览视频画面; 11、可记录设备、用户所有操作记录,设备、用户上下线记录等,并具有多种类型的数据统计展示; 12、云平台可对所有用户管理,每个用户可配置不同角色、不同权限,具有权限分配功能;支持对人员进行菜单、按钮及数据权限控制,亦可自定义数据权限; 13、前端采用完全响应式布局,支持电脑、平板、手机等所有主流设备; 14、Maven 多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块; 等等……内容较多,在此无法一一列举

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐