dc3 windows 本地搭建步骤:
必要软件环境 进入原网页#
务必保证至少需要给 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 DC3127.0.0.1 dc3-mysql127.0.0.1 dc3-redis127.0.0.1 dc3-mongo127.0.0.1 dc3-opentsdb127.0.0.1 dc3-elasticsearch127.0.0.1 dc3-rabbitmq127.0.0.1 dc3-emqx127.0.0.1 dc3-nginx127.0.0.1 dc3-influx# dev127.0.0.1 dc3-center-register127.0.0.1 dc3-center-auth127.0.0.1 dc3-center-manager127.0.0.1 dc3-center-data127.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.gitcd iot-dc3/dc3/demo
在 Idea 中依次启动:
dc3-center-auth
dc3-center-manager
dc3-center-data
dc3-center-gateway
4 拉取完整源码步骤
注意:以下步骤均在iot-dc3目录下完成
首先拉取iot-dc3
mkdir iot-dc3cd iot-dc3git clone https://gitee.com/pnoker/iot-dc3.gitgit checkout main
拉取公共模块dc3-common
git clone https://gitee.com/pnoker/dc3-common.git
拉取API模块dc3-api
git clone https://gitee.com/pnoker/dc3-api.git
拉取驱动SDK模块dc3-driver-sdk
git clone https://gitee.com/pnoker/dc3-driver-sdk.git
添加依赖模块
在 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 平台网关模块
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客户端 #
连接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.gitcd iot-dc3-web#这步至关重要, 推荐使用 yarnnpm install -g yarn --registry=https://registry.npm.taobao.orgyarn
启动 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 = 1at 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验证模式改成普通密码验证模式
来源地址:https://blog.csdn.net/killmars/article/details/132457028