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

news/2024/7/10 20:59:01 标签: 物联网, spring cloud, 开源

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 #

在这里插入图片描述

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.


http://www.niftyadmin.cn/n/4963333.html

相关文章

MVC OR DDD

MVC OR DDD 说明&#xff1a;这篇是标题党&#xff0c;不包含相关概念说明 前段时间跟随师兄学习了解了DDD领域驱动模型&#xff0c;觉得这个思想更好&#xff0c;进行下面解析和学习方面的思考和实践&#xff0c;觉得很好&#xff0c;耐心读下去。希望对您有所帮助。 首先&am…

贪心算法:简单而高效的优化策略

在计算机科学中&#xff0c;贪心算法是一种简单而高效的优化策略&#xff0c;用于解决许多组合优化问题。虽然它并不适用于所有问题&#xff0c;但在一些特定情况下&#xff0c;贪心算法能够产生近似最优解&#xff0c;而且计算成本较低。在本文中&#xff0c;我们将深入探讨贪…

vs2017实现linux远程编译报错“CMake 缺少以下功能:serverMode“解决方案

背景 window系统vs2017使用cmake实现linux远程调试和编译时&#xff0c;搭建的环境报CMake 缺少以下功能:“serverMode”。请参阅 https://aka.ms/linuxcmakeconfig 了解详细信息错误&#xff0c;如何解决&#xff1f;经排查&#xff0c;发现远程开发环境的cmake版本不支持ser…

智能井盖传感器,物联网智能井盖系统

随着城市人口的不断增加和城市化进程的不断推进&#xff0c;城市基础设施的安全和可靠性变得愈发重要&#xff0c;城市窨井盖作为城市基础设施重要组成部分之一&#xff0c;其安全性事关城市安全有序运行和居民生产生活安全保障。 近年来&#xff0c;各地都在加强城市窨井盖治理…

ssm+vue游戏攻略网站源码和论文

ssmvue游戏攻略网站源码和论文052 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 一、主要内容和基本要求 游戏攻略网站分为管理员与用户两种角色。 管理员的功能包括登录&#xff0c;用户管理&#xff0c;游…

虚拟机中Ubuntu 16.04 设置网络

1、打开虚拟机的“编辑”选项&#xff0c;选择“虚拟网络编辑器”&#xff0c;修改网络配置 2、同时打开 Windows下面的命令行&#xff0c;输入ipconfig&#xff0c;看到虚拟网络适配器的地址 1-虚拟机-设置-网络适配器 2-编辑-虚拟网络编辑器-VMnet0 3-编辑-虚拟网络编辑…

记录protocol buffers Mac安装

使用brew安装最新的protobuf 在Mac 上安装&#xff0c;使用brew 可以安装最新的protobuf。这个也比较简单&#xff0c;简单说一下。 首先先检查一下是否安装了brew。如果没有安装brew的话&#xff0c;请先安装brew.可以通过brew --version来检查 使用brew install protobuf 来…

『SEQ日志』在 .NET中快速集成轻量级的分布式日志平台

&#x1f4e3;读完这篇文章里你能收获到 如何在Docker中部署 SEQ&#xff1a;介绍了如何创建和运行 SEQ 容器&#xff0c;给出了详细的执行操作如何使用 NLog 接入 .NET Core 应用程序的日志&#xff1a;详细介绍了 NLog 和 NLog.Seq 来配置和记录日志的步骤日志记录示例&…