IoT-DC3 开源物联网平台使用手册
🚀 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
更多推荐

所有评论(0)