IoT DC3物联网平台本地部署步骤详解

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验证模式改成普通密码验证模式

    物联沃分享整理
    物联沃-IOTWORD物联网 » IoT DC3物联网平台本地部署步骤详解

    发表评论