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

dc3 windows 本地搭建步骤:

必要软件环境 [进入原网页#](https://doc.dc3.site/docs/code/0-environment.html#必要软件环境)

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

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

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

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

  • Docker : 需要提供 `docker` 和 `docker-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

```

![输入图片说明](/imgs/2023-08-23/RwCzXsbq9cGTMIjv.png)

3 下载dc3源码并依次启动

启动 Auth、Manager、Data、Gateway 服务 [进入原网页#](https://doc.dc3.site/docs/code/3-idea-start.html#启动-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 即可。

```

dc3-gateway

dc3-center

dc3-driver

dc3-api

dc3-common

dc3-driver-sdk

```

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

```

.

├── dc3 资源文件,如sh,sql等

├── dc3-api gRpc定义的接口结构

├── dc3-center 平台中心模块

├── dc3-common 平台公共模块

├── dc3-driver 平台驱动模块

├── dc3-driver-sdk 平台驱动SDK模块

└── dc3-gateway 平台网关模块

```

![输入图片说明](/imgs/2023-08-23/VWh3zGr2G6Fu2EnR.png)

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客户端 [#](https://doc.dc3.site/docs/code/2-start.html#安装mqttx客户端)

点击安装(opens new window)\](https://mqttx.app/zh) ### 连接MQTT \[#\](https://doc.dc3.site/docs/code/2-start.html#%E8%BF%9E%E6%8E%A5mqtt) !\[输入图片说明\](/imgs/2023-08-23/eCBIyw8uqjJDk90J.png) # 7 发送数据 记得按图填写json qos:1 topic: dc3/default/dc3-driver-mqtt/data !\[输入图片说明\](/imgs/2023-08-23/Fxz07b0hiHvayHuy.png) deviceId: 设备ID, 不是设备名, pointId:位号 \`\`\` { "id":"1014", "deviceId":"1694223265544900609", "pointId":"1694223118807175169", "value": 263.0, "createTime": "2022-08-19 14:34:36.111" } \`\`\` mqtt:收到结果并发送到rabbitmq : !\[输入图片说明\](/imgs/2023-08-23/g3y1v0154l5ELK9X.png) data: !\[输入图片说明\](/imgs/2023-08-23/llQGq6kJs1uXdCY8.png) # 8 启动WEB页面查看 ### 构建 IoT DC3 Web UI \[#\](https://doc.dc3.site/docs/code/4-web-ui.html#%E6%9E%84%E5%BB%BA-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 \[#\](https://doc.dc3.site/docs/code/4-web-ui.html#%E5%90%AF%E5%8A%A8-iot-dc3-web-ui) \`\`\` yarn serve \`\`\` !\[输入图片说明\](/imgs/2023-08-23/xnBRGiXIx74OnfE3.png) 2 !\[输入图片说明\](/imgs/2023-08-23/zNvNaRtBvWw7VFQH.png) 新增模板与位号: !\[输入图片说明\](/imgs/2023-08-23/VpdRy0cZyElG0OJH.png) !\[输入图片说明\](/imgs/2023-08-23/d7U7mGeyH40CAWfF.png) 3 新增设备: !\[输入图片说明\](/imgs/2023-08-23/IGJqb9UWQ4Hdkwla.png) !\[输入图片说明\](/imgs/2023-08-23/7TUHyDP7MUy7CnA4.png) 配置topict 和 qos, 与mqtt的页面一一对应。 !\[输入图片说明\](/imgs/2023-08-23/PWmYNtEcGeAFWa9s.png) !\[输入图片说明\](/imgs/2023-08-23/dBNDWpjC07K92If6.png) 发送数据后可以看到线性图: !\[输入图片说明\](/imgs/2023-08-23/Q9vjeBcIA1Wjqf4P.png) 明细数据: 查所有的位号(设备属性) !\[输入图片说明\](/imgs/2023-08-23/N7PHlDNFTANlAgJs.png) 数据: { "deviceId": "1694223265544900609", "pointId": "1694223118807175169", "value": "63.0"} # 9 待以上服务全部正常启动,访问 \[http://localhost:8080 (opens new window)\](http://localhost:8080/)即可进入登陆页面! # 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 \`\`\` !\[输入图片说明\](/imgs/2023-08-23/GUhphy37YSM5wUXd.png) ## 消息发送失败:要注意数据格式与实体类一样。 !\[输入图片说明\](/imgs/2023-08-23/McDV0dH1Y73A5hyI.png) ## 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. ![](https://i-blog.csdnimg.cn/blog_migrate/3bcb90ae08679004c183f364d02d6aaf.png) ![](https://i-blog.csdnimg.cn/blog_migrate/4d39c6f53a4dad84643441ee7b4117a1.png)

相关推荐
万岳科技程序员小金2 小时前
音视频课程上传、加密与播放技术详解:知识付费系统源码开发实践
开源·知识付费小程序·知识付费系统源码·知识付费app开发·开源源码
微学AI2 小时前
面向大数据与物联网的下一代时序数据库选型指南:Apache IoTDB 解析与应用
大数据·物联网·时序数据库
门思科技4 小时前
LoRaWAN通信协议详解:架构、加密机制与核心应用
运维·服务器·网络·嵌入式硬件·物联网
炸裂狸花猫4 小时前
开源CI&CD工具-Drone
ci/cd·云原生·容器·kubernetes·开源·drone
程思扬4 小时前
开源 + 实时 + 无网络限制:Excalidraw 是流程图协作新选择
网络·人工智能·阿里云·ai·开源·流程图
大河qu4 小时前
HCIP-IoT/H52-111 真题详解(章节A),行业解决方案与华为云 /Part1
物联网·华为云·物联网解决方案·hcip-iot·h52-111
zhangfeng11335 小时前
学习文本大模型的学习路径,各种大模型对比和分类以及各个大模型对硬件的要求,开源大模型有哪些
学习·分类·开源
❀͜͡傀儡师5 小时前
docker部署开源监控软件hertzbeat
docker·容器·开源·hertzbeat
北京耐用通信5 小时前
从‘卡壳’到‘丝滑’:耐达讯自动化PROFIBUS光纤模块如何让RFID读写器实现‘零延迟’物流追踪?”
网络·人工智能·科技·物联网·网络协议·自动化