🚀 IoT-DC3 开源物联网平台使用手册

基于Spring Cloud的分布式物联网平台

📖 平台简介

IoT-DC3 是一个完全开源的分布式物联网(IoT)平台,基于Spring Cloud构建。该平台加速IoT项目开发,简化设备管理,为构建强大的IoT系统提供全面解决方案。所有组件和代码均开源,确保透明性、灵活性和社区驱动创新。

🏗️ 架构设计

四层架构体系

层级

核心功能

技术特点

驱动层 (Driver Layer)

提供标准SDK,支持多种协议的物理设备接入

负责南向数据采集和命令执行,通过全面的SDK实现快速驱动开发

数据层 (Data Layer)

设备数据的收集、存储和检索管理

提供强大的数据管理接口服务,确保高效数据处理

管理层 (Management Layer)

微服务交互的核心枢纽

提供微服务注册、设备命令接口、设备注册配对、集中数据管理系统

应用层 (Application Layer)

高级功能服务

数据开放、任务调度、报警通知、日志管理、第三方平台集成能力

🌟 核心特性

🔧 高可扩展性:基于Spring Cloud,支持水平扩展•🛡️ 故障容错:无单点故障,集群节点可互替•⚡ 高性能:单节点支持数千设备连接•🔌 协议可扩展:轻松集成新设备协议•🌐 跨平台兼容:完全兼容Java环境•☁️ 部署灵活:支持私有云、公有云、边缘部署•🔒 安全可靠:数据传输加密,设备权限验证•🏢 多租户支持:支持命名空间和多租户架构•⚙️ 云原生优化:针对Kubernetes优化设计•🐳 容器化部署:完全Docker化,简化部署管理

🚀 快速开始

环境要求

JDK 21+Maven 3.6+Docker & Docker Compose

🐳 Docker容器化部署

方式一:Docker Hub(全球访问)
# 克隆项目git clone https://gitee.com/pnoker/iot-dc3.gitcd iot-dc3/dc3# 启动数据库服务docker-compose -f docker-compose-db.yml up -d# 启动核心服务docker-compose -f docker-compose.yml up -d
方式二:阿里云镜像(国内优化)
# 克隆项目git clone https://gitee.com/pnoker/iot-dc3.gitcd iot-dc3/dc3# 启动数据库服务docker-compose -f docker-compose-db-aliyun.yml up -d# 启动核心服务docker-compose -f docker-compose-aliyun.yml up -d

🔧 手动部署

1. 构建项目
# 加载环境变量source dc3/env/dev.env.sh# 清理打包mvn clean package
2. 启动服务(按顺序)
# 网关服务java -jar dc3-gateway/target/dc3-gateway.jar# 认证中心java -jar dc3-center/dc3-center-auth/target/dc3-center-auth.jar# 数据中心java -jar dc3-center/dc3-center-data/target/dc3-center-data.jar# 管理中心java -jar dc3-center/dc3-center-manager/target/dc3-center-manager.jar# 虚拟驱动java -jar dc3-driver/dc3-driver-virtual/target/dc3-driver-virtual.jar# 其他驱动:Modbus TCP、MQTT、OPC DA、OPC UA、西门子S7等

📊 服务组件一览

核心服务组件

服务名称

Docker Hub镜像

阿里云镜像

功能描述

Gateway

pnoker/dc3-gateway registry.cn-beijing.aliyuncs.com/dc3-gateway

API网关服务

Auth Center

pnoker/dc3-center-auth registry.cn-beijing.aliyuncs.com/dc3-center-auth

认证授权中心

Data Center

pnoker/dc3-center-data registry.cn-beijing.aliyuncs.com/dc3-center-data

数据处理中心

Manager Center

pnoker/dc3-center-manager registry.cn-beijing.aliyuncs.com/dc3-center-manager

设备管理中心

Virtual Driver

pnoker/dc3-driver-virtual registry.cn-beijing.aliyuncs.com/dc3-driver-virtual

虚拟设备驱动

协议驱动组件

驱动类型

支持协议

适用场景

Modbus TCP

Modbus TCP协议

工业设备、PLC设备

MQTT

MQTT协议

IoT传感器、智能家居

OPC DA/UA

OPC经典/统一架构

工业自动化、MES系统

Siemens S7

西门子S7协议

西门子PLC设备

🔌 设备接入指南

1. 设备注册

# 通过管理接口注册设备POST /api/device/register{"deviceId":"device_001","deviceName":"温度传感器","protocol":"modbus-tcp","connectionInfo":{"host":"192.168.1.100","port":502}}

2. 数据采集配置

# 配置数据采集点POST /api/point/config{"deviceId":"device_001","pointName":"temperature","address":"40001","dataType":"FLOAT","interval":5000}

3. 数据订阅

# 订阅实时数据WebSocket:/ws/data/subscribe{"deviceId":"device_001","points":["temperature","humidity"]}

🛠️ 开发指南

添加自定义驱动

1.创建驱动模块

# 在dc3-driver目录下创建新驱动mkdir dc3-driver-myprotocolcd dc3-driver-myprotocol

1.实现驱动接口

@ComponentpublicclassMyProtocolDriverimplementsDriver{@Overridepublicvoid connect(ConnectionConfig config){// 实现连接逻辑}@OverridepublicObject read(Point point){// 实现数据读取return;}}

1.注册驱动

# 在配置文件中注册dc3:  driver:    protocols:- name: myprotocolclass: com.example.MyProtocolDriver

📈 监控与运维

健康检查

# 检查服务状态curl http://localhost:8080/actuator/health# 检查具体服务curl http://localhost:8081/center/auth/actuator/healthcurl http://localhost:8082/center/data/actuator/health

日志管理

# 查看容器日志docker logs -f dc3-gatewaydocker logs -f dc3-center-auth# 查看特定时间日志docker logs --since="2024-01-01T00:00:00" dc3-gateway

🔧 故障排查

常见问题

1.服务启动失败•检查端口占用:netstat -tlnp | grep 8080•检查Java版本:java -version•检查内存配置:free -h2.设备连接失败•验证网络连通性:ping 设备IP•检查防火墙设置•验证协议配置3.数据采集异常•检查设备响应:modpoll -m tcp -a 1 -r 40001 -c 1 设备IP•查看驱动日志•验证数据点配置

📚 API文档

RESTful API

认证接口/api/auth/**设备管理/api/device/**数据查询/api/data/**驱动管理/api/driver/**

WebSocket接口

实时数据/ws/data/subscribe告警通知/ws/alarm/subscribe系统状态/ws/system/status

🤝 贡献指南

开发流程

1.Fork项目:点击右上角Fork按钮2.创建分支git checkout -b feature/your-feature3.提交代码git commit -am 'Add some feature'4.推送分支git push origin feature/your-feature5.提交PR:创建Pull Request到develop分支

代码规范

•遵循阿里巴巴Java开发规范•提交信息格式:type(scope): description•单元测试覆盖率不低于80%

📄 许可证

本项目采用 AGPL 3.0 开源许可证,详情请查看 LICENSE-AGPL.txt[1]


💡 快速提示:遇到问题可以先查看Issues页面[2],或加入技术交流群获取帮助。

本文档基于IoT-DC3最新版本编写,具体功能请以实际代码为准。

相关链接

[1] LICENSE-AGPL.txt: ./LICENSE-AGPL.txt[2] Issues页面: https://gitee.com/pnoker/iot-dc3/issues

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐