IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤

dc3 windows 本地搭建步骤:

​​

必要软件环境 进入原网页#

务必保证至少需要给 docker 分配:1 核 CPU 以及 4G 以上的运行内存!

  • JDK : 推荐使用 Oracle JDK 1.8 或者 OpenJDK8,理论来说其他版本也行;

  • Maven : 推荐使用 Maven 3.8 ,理论来说其他版本也行;

  • IDE : IntelliJ IDEA 或者 Eclipse,理论来说其他 Java IDE 也行;

  • Docker : 需要提供 dockerdocker-compose 指令,至少需要给 docker 分配 4G 的运行内存,建议配置国内镜像加速,下载镜像速度会快一些。

1 管理员权限改hosts:

复制代码
# Added by DC3
127.0.0.1 dc3-mysql
127.0.0.1 dc3-redis
127.0.0.1 dc3-mongo
127.0.0.1 dc3-opentsdb
127.0.0.1 dc3-elasticsearch
127.0.0.1 dc3-rabbitmq
127.0.0.1 dc3-emqx
127.0.0.1 dc3-nginx
127.0.0.1 dc3-influx
# dev
127.0.0.1 dc3-center-register
127.0.0.1 dc3-center-auth
127.0.0.1 dc3-center-manager
127.0.0.1 dc3-center-data
127.0.0.1 dc3-gateway
# End DC3

2 安装好docker后,安装基础组件:

复制代码
cd iot-dc3/dc3

#创建并启动 MySQL、MongoDB、Redis、RabbitMQ、Nacos 服务
docker-compose -f docker-compose-dev.yml up -d mysql mongo redis rabbitmq register

#停止 MySQL、MongoDB、Redis、RabbitMQ、Nacos 服务
docker-compose stop mysql mongo redis rabbitmq register

3 下载dc3源码并依次启动

启动 Auth、Manager、Data、Gateway 服务 进入原网页#

启动待开发的 驱动

复制代码
# 下载iot-dc3源码
git clone https://gitee.com/pnoker/iot-dc3.git
cd iot-dc3/dc3/demo

在 Idea 中依次启动:

  • dc3-center-auth
  • dc3-center-manager
  • dc3-center-data
  • dc3-center-gateway

4 拉取完整源码步骤

注意:以下步骤均在iot-dc3目录下完成

1.首先拉取iot-dc3

复制代码
mkdir iot-dc3
cd iot-dc3
git clone https://gitee.com/pnoker/iot-dc3.git
git checkout main

2.拉取公共模块dc3-common

复制代码
git clone https://gitee.com/pnoker/dc3-common.git

3.拉取API模块dc3-api

复制代码
git clone https://gitee.com/pnoker/dc3-api.git

4.拉取驱动SDK模块dc3-driver-sdk

复制代码
git clone https://gitee.com/pnoker/dc3-driver-sdk.git

5.添加依赖模块

在 iot-dc3 的 pom.xml 中添加 dc3-common、dc3-api、dc3-driver-sdk 即可。

复制代码
<modules>
    <module>dc3-gateway</module>
    <module>dc3-center</module>
    <module>dc3-driver</module>
    <module>dc3-api</module>
    <module>dc3-common</module>
    <module>dc3-driver-sdk</module>
</modules>

以上步骤完成后iot-dc3目录结构如下

复制代码
.
├── dc3 资源文件,如sh,sql等
├── dc3-api gRpc定义的接口结构
├── dc3-center 平台中心模块
├── dc3-common 平台公共模块
├── dc3-driver 平台驱动模块
├── dc3-driver-sdk 平台驱动SDK模块
└── dc3-gateway 平台网关模块

5 启动驱动

  • driver.mqtt.url: ${MQTT_BROKER_URL:ssl://dc3-rabbitmq:8883} # MQTT Broker URL
  • auth-type: X509 # 认证方式
  • username: dc3 # 用户名
  • password: dc3 # 密码

注意 : 以上配置是开启MQTT SSL认证的配置,如果你的MQTT Broker没有开启SSL认证,请将auth-type设置为NONE或者注释掉,同时将url设置为普通的tcp://dc3-rabbitmq:1883
这里要改为: auth-type: username 。因为配置了用户名

复制代码
driver:  
  schedule:  
    # 定时读数据  
    read:  
      corn: '0/5 * * * * ?'  
  mqtt:  
#    url: ${MQTT_BROKER_URL:ssl://dc3-rabbitmq:8883}  
#    auth-type: X509  
    url: ${MQTT_BROKER_URL:tcp://dc3-rabbitmq:1883}  
    auth-type: username  
    username: dc3  
    password: dc3  
    receive-topics:  
      - qos: 1  
        name: data  
    default-send-topic:  
      qos: 1  
      name: command  
    keep-alive: 15  
    completion-timeout: 3000  
    batch:  
      speed: ${MQTT_BATCH_SPEED:100}  
      interval: ${MQTT_BATCH_INTERVAL:5}

6 配置mqtt驱动

安装MQTTX客户端 #

点击安装(opens new window)

连接MQTT 官方文档#

这里host可以写IP,也可以写上面配置host的域名映射。

7 发送数据

记得按图填写json qos:1

topic: dc3/default/dc3-driver-mqtt/data

deviceId: 设备ID, 不是设备名, pointId:位号

复制代码
{

"id":"1014",

"deviceId":"1694223265544900609",

"pointId":"1694223118807175169",

"value": 263.0,

"createTime": "2022-08-19 14:34:36.111"

}

mqtt:收到结果并发送到rabbitmq :

data:

8 启动WEB页面查看

构建 IoT DC3 Web UI #

复制代码
git clone https://github.com/pnoker/iot-dc3-web.git
cd iot-dc3-web

#这步至关重要, 推荐使用 yarn
npm install -g yarn --registry=https://registry.npm.taobao.org
yarn

启动 IoT DC3 Web UI #

复制代码
yarn serve

新增模板与位号:

3 新增设备:

明细数据: 查所有的位号(设备属性)

配置topict 和 qos, 与mqtt的页面一一对应。

数据: { "deviceId": "1694223265544900609", "pointId": "1694223118807175169", "value": "63.0"}

9 待以上服务全部正常启动,访问 http://localhost:8080 (opens new window)即可进入登陆页面!

10 启动问题解决:

启动不了

复制代码
Caused by: java.nio.charset.MalformedInputException: Input length = 1
	at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
	at java.io.InputStreamReader.read(InputStreamReader.java:184)
	at org.yaml.snakeyaml.reader.UnicodeReader.read(UnicodeReader.java:118)
	at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:179)
	... 43 common frames omitted

消息发送失败:要注意数据格式与实体类一样。

3 密码报错

修改yml: auth-type: username

4 yarn 安装web依赖

找不到yarn命令。

要配置环境变量: path: 安装时带有的路径:

yarn serve

error marked@5.1.1: The engine "node" is incompatible with this module. Expected version ">= 18". Got "14.21.3"

error Found incompatible module.

info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

​## 5 cipher - please check password and data.

确认密码没问题那就是开了ssl认证: X509验证模式改成普通密码验证模式

相关推荐
瑶山38 分钟前
Spring Cloud微服务搭建五、集成负载均衡,远程调用,熔断降级
spring cloud·微服务·负载均衡·远程调用·熔断降级
wukangjupingbb40 分钟前
AI在靶点识别(Target Identification)中的关键作用与开源工具生态
人工智能·开源
一只大侠的侠41 分钟前
Flutter开源鸿蒙跨平台训练营 Day19自定义 useFormik 实现高性能表单处理
flutter·开源·harmonyos
一只大侠的侠6 小时前
Flutter开源鸿蒙跨平台训练营 Day 10特惠推荐数据的获取与渲染
flutter·开源·harmonyos
猫头虎10 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
草梅友仁11 小时前
墨梅博客 1.4.0 发布与开源动态 | 2026 年第 6 周草梅周报
开源·github·ai编程
金牌归来发现妻女流落街头14 小时前
【从SpringBoot到SpringCloud】
java·spring boot·spring cloud
冬奇Lab15 小时前
一天一个开源项目(第16篇):Code2Video - 用代码生成高质量教学视频的智能框架
开源·aigc·音视频开发
一只大侠的侠15 小时前
Flutter开源鸿蒙跨平台训练营 Day7Flutter+ArkTS双方案实现轮播图+搜索框+导航组件
flutter·开源·harmonyos