easyctl开源项目

我要开发同款
汐华2025年12月25日
10阅读

技术信息

语言技术
JavaDockerReactAntdIoT
系统类型
Web
行业分类
智能硬件物联网
开源地址
https://github.com/xihuaxone/easyctlserver#
授权协议
Apache许可

行业场景

一句话总结:这是一个面向 IoT 场景的设备远程控制与管理平台,适用于需要统一管理多设备、支持多用户协作的场景。

立项原因:
1. 解决物联网设备远程控制与管理的统一化问题:
2. 设备分散、协议不统一,需要统一管理平台
3. 降低开发成本,避免为每类设备重复开发控制接口
4. 支持多用户、权限隔离,便于设备共享与协作

行业场景:
1. 智能家居/IoT 设备管理
场景:用户管理多品牌智能设备(灯光、空调、门锁等)
功能:通过 Web 界面统一控制,为不同设备定义操作(开关、调温等)
2. 工业物联网(IIoT)
场景:工厂设备远程监控与控制
功能:设备状态查询、参数调整、故障诊断;支持多用户、权限隔离
3. 农业物联网
场景:大棚/农场设备控制(灌溉、通风、温控)
功能:远程操作,支持设备共享给多个管理员
4. 设备租赁/共享
场景:设备提供方将设备分享给租户
功能:通过 applyExistsTopic 实现设备共享,租户可申请使用已有设备
5. 边缘计算设备管理
场景:管理分布式的边缘计算节点
功能:远程执行命令、查看状态、更新配置

核心价值:
1. 统一协议:基于 MQTT 统一通信
2. 灵活配置:为设备定义自定义 API 操作
3. 多租户:支持用户隔离与设备分享
4. Web 化:通过 Web 界面远程控制,降低使用门槛

功能介绍

功能模块:
1. 用户认证模块:用户注册/登录、JWT Token 认证、用户信息管理
2. Topic 管理模块:Topic 注册、Topic 分享(申请使用已有 Topic)、Topic 更新(修改状态和配置)、Topic 删除、Topic 列表(查看用户拥有的 Topic)
3. API 操作管理模块:添加操作(为 Topic 添加可执行的操作(API))、操作更新(修改 API 参数和名称)、操作列表
4. 设备控制模块:远程调用(通过 MQTT 调用设备执行操作)、参数传递、响应返回(获取设备执行结果)

主要功能描述:
统一 IoT 设备管理平台:用户注册后创建/申请设备主题(Topic),为每个主题定义可执行的操作(API),通过 Web 界面远程调用设备执行操作,支持设备分享给其他用户使用。
核心流程:
注册设备 → 创建 Topic 和 API
申请设备 → 使用他人分享的 Topic
控制设备 → 调用 API 远程执行操作

项目实现

我负责的任务:
1. 系统设计与架构:整体架构设计、数据库设计、API 设计
2. 数据库设计:MySQL 表结构、MyBatis 映射
3. 后端开发:Spring Boot 后端服务、用户认证与权限(JWT + AOP)、Topic 与 API 的 CRUD、MQTT 设备通信集成、异常处理与全局拦截
4. 前端开发:react框架搭建、页面模块实现、与服务端的通信实现(http)、部署策略设计
5. 硬件终端开发:ESP8266芯片的嵌入式编程,实现硬件与服务端的mqtt通信、实现异步通信转同步(简化调用代码,降低开发成本)

项目亮点:
1. 灵活的权限控制:基于 AOP 的注解式权限校验(@UserAuth),自动注入用户信息
2. Topic-API 两级模型:Topic 作为设备抽象,API 作为操作抽象,支持动态扩展
3. MQTT 异步通信:通过 MQTT 实现设备远程调用,适配 IoT 场景
4. 设备分享机制:支持 Topic 分享,实现多用户协作
5. 统一响应封装:Response 统一返回格式,便于前端处理

项目难点:
1. MQTT 集成:与 easymqtt 集成,处理异步通信、超时、异常
2. 权限设计:用户-Topic 关系管理,支持创建者与申请者权限区分
3. AOP 参数注入:通过 AOP 动态注入 User 对象到 Controller 方法参数
4. 事务一致性:Topic 注册涉及多表操作,保证事务一致性
5. 设备状态管理:Topic 状态(ONLINE/OFFLINE)与设备实际状态同步

总结:独立完成从设计到开发的全流程,涵盖后端服务、数据库、MQTT 通信集成与权限体系。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论