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#连接mqtt)

!输入图片说明(/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#构建-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#启动-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.

相关推荐
好好风格19 小时前
把一台 Root 安卓机交给 AI 智能体,会发生什么?
android·人工智能·开源
一个儒雅随和的男子19 小时前
Spring cloud组件gateway网关详细剖析
spring·spring cloud·gateway
unique20 小时前
Agent记忆开源项目调研
开源·ai编程
科技快报21 小时前
打造标杆版本、加速设备上量,开源鸿蒙迈向产业规模化新阶段
华为·开源·harmonyos
仰泳之鹅21 小时前
【物联网】使用ESP8266与云平台通信
物联网
小小程序员mono21 小时前
模型进入「日更时代」:GPT-5.6 泄露、Claude 4.8 逼近、Gemini 3.5 上线、国产杀疯了摘要
人工智能·重构·开源·github
龙亘川21 小时前
物联网数据接入:亘川一网统管平台与各类终端设备的适配逻
物联网·智慧城市·技术架构
火星技术21 小时前
电影台词搜索引擎开源源码
搜索引擎·django·开源
a1117761 天前
html制作的PPT(各种风格)提示词
前端·开源·html
苏渡苇1 天前
微服务间的远程接口调用:OpenFeign 的使用
spring cloud·微服务·架构·springboot·openfeign·sca