当前位置: 首页 > news >正文

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

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 = 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.

相关文章:

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

dc3 windows 本地搭建步骤&#xff1a; ​​ 必要软件环境 进入原网页# 务必保证至少需要给 docker 分配&#xff1a;1 核 CPU 以及 4G 以上的运行内存&#xff01; JDK : 推荐使用 Oracle JDK 1.8 或者 OpenJDK8&#xff0c;理论来说其他版本也行&#xff1b; Maven : 推荐…...

VBA Excel自定义函数的使用 简单的语法

一个简单的教程&#xff0c;实现VBA自定义函数。 新建模块 复制后面的代码放进来 函数的入口参数不定义&#xff0c;则认为是一块区域&#xff1b; 反之&#xff0c;如FindChar1 As String&#xff0c;则认为是输入的单值。 循环和分支如下例子&#xff0c;VB比较接近自然语…...

字节跳动 从需求到上线全流程 软件工程流程 需求评估 MVP

走进后端开发流程 整个课程会带大家先从理论出发&#xff0c;思考为什么有流程 大家以后工作的团队可能不一样&#xff0c;那么不同的团队也会有不同的流程&#xff0c;这背后的逻辑是什么 然后会带大家按照走一遍从需求到上线的全流程&#xff0c;告诉大家在流程的每个阶段&am…...

线性代数-矩阵的本质

线性代数-矩阵的本质 线性代数-矩阵的本质...

React基础入门之虚拟Dom

React官方文档&#xff1a;https://react.docschina.org/ 说明 重要提示&#xff1a;本系列文章基础篇总结自尚硅谷课程&#xff0c;且采用类式写法&#xff01;&#xff01;最新的函数式组件写法见高级篇。 本系列文档旨在帮助vue同学更快速的学习react&#xff0c;如果你很…...

C++基础Ⅰ编译、链接

目录儿 1 C是如何工作的1.1 预处理语句1.2 include1.3 main()1.4 编译单独编译项目编译 1.5 链接 2 定义和调用函数3 编译器如何工作3.1 编译3.1.1 引入头文件系统头文件自定义头文件 3.1.2 自定义类型3.1.3 条件判断拓展: 汇编 3.2 链接3.2.1 起始函数3.2.2 被调用的函数 3.3 …...

VMware和ubuntu配置Hadoop环境

目录 一、获取VMware安装包 1、官网获取 1&#xff09;首先先进入官网&#xff0c;官网首页是下面这样&#xff1a; 2&#xff09;接着点击产品选项 3&#xff09;进入后点击查看所有产品&#xff0c;然后在右上角选择排序方式为Z到A&#xff0c;然后向下滑动找到Workstation…...

uview2.0自定义tabbar

tabbar组件 <template><u-tabbar :value"tab" change"changeTab" :fixed"true" :border"true" :placeholder"true":safeAreaInsetBottom"true"><u-tabbar-item text"消息" icon"c…...

Star History 月度开源精选|Llama 2 及周边生态特辑

7 月 18 日&#xff0c;Meta 发布了 Llama&#xff0c;大语言模型 Llama 1 的进阶版&#xff0c;可以自由免费用于研究和商业&#xff0c;支持私有化部署。 所以本期 Star History 的主题是&#xff1a;帮助你快速把 Llama 2 在自己机器上跑起来的开源工具&#xff0c;无论你的…...

修改电脑上路由表使笔记本默认走无线

如果笔记本上即连接了有线&#xff0c;也连接了无线&#xff0c;默认电脑会走有线的&#xff0c;通过route print命令查看路由表就可以看出来&#xff0c;因为无线的“metric”跳数要比有线的高 解决方法&#xff1a; 如果想实现让默认走无线&#xff0c;就需要修改自己电脑的…...

Spring Cache的介绍以及怎么使用(redis)

Spring Cache 文章目录 Spring Cache1、Spring Cache介绍2、Spring Cache常用注解2.1、EnableCaching注解2.2、CachePut注解2.3、CacheEvict注解2.4、Cacheable注解 3、Spring Cache使用方式--redis 1、Spring Cache介绍 Spring Cache是一个框架&#xff0c;实现了基于注解的缓…...

软考高级系统架构设计师系列论文六十九:论信息系统的安全风险评估

一、信息系统相关知识点 软考高级信息系统项目管理师系列之四十三:信息系统安全管理软考高级系统架构设计师:系统安全分析与设计...

Ubuntu系统安装之后首需要做的事情

Ubuntu系统的初步环境搭建 1、换源2、显卡3、浏览器4、输入法5、终端6、ROS7、VSCode8、设置时间与win一致9、 TimeShift10、 Anaconda&#xff08;考虑装不装&#xff09; 1、换源 点开Software&&Update&#xff0c;找到Ubuntu Software中的Download from&#xff0c…...

Qt——QPushButton控件的常见属性、方法和信号

Qt中QPushButton控件的常见属性、方法和信号 一、QPushButton控件常见属性 一、QPushButton控件常见方法 一、QPushButton控件常见信号 一、QPushButton控件常见属性&#xff08;Properties&#xff09; 1. text: 描述&#xff1a;按钮上显示的文本。 用法&#xff1a; butto…...

AUTOSAR规范与ECU软件开发(实践篇)5.5 基于ISOLAR-A的系统级设计与配置方法(上)

目录 前言 1 系统配置输入文件创建与导入 2、 Composition SWC建立 前言 如前所述, AUTOSAR支持整车级别的软件架构设计, 开发人员可以进行整车级别的软件组件定义, 再将这些软件组件分配到各个ECU中, 这就是AUTOSAR系统级设计需要完成的主要任务。 下面结合AUTOSAR方法论…...

mongoDB的CRUD

...

flutter TARGET_SDK_VERSION和android 13

config.gradle ext{SDK_VERSION 33MIN_SDK_VERSION 23TARGET_SDK_VERSION 33COMPILE_SDK_VERSION SDK_VERSIONBUILD_TOOL_VERSION "33.0.0"//兼容库版本SUPPORT_LIB_VERSION "33.0.0"}app/build.gradle里面的 defaultConfig {// TODO: Specify your…...

大数据Flink(六十六):Flink的重要概念和小结

文章目录 Flink的重要概念和小结 一、​​​​​​​​​​​​​​数据流图(Dataflow Graph)...

Rider 添加NuGet软件包 (NuGet Package)

如图&#xff0c;在解决方案中选择自己的项目右键&#xff0c;点击管理 NuGet 软件包即可 在搜索栏中搜索自己要使用的软件包安装即可使用...

什么是JVM ?

一、JVM 简介 JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机。 虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机&#xff1a; JVM 、 VMwave 、 Virtual Box 。 JVM 和其他两个虚拟机的区别…...

【大数据】Hive 中的批量数据导入

Hive 中的批量数据导入 在博客【大数据】Hive 表中插入多条数据 中&#xff0c;我简单介绍了几种向 Hive 表中插入数据的方法。然而更多的时候&#xff0c;我们并不是一条数据一条数据的插入&#xff0c;而是以批量导入的方式。在本文中&#xff0c;我将较为全面地介绍几种向 H…...

【Modbus通信实验三】数据切片问题

在做两个串口相互通信的实验中&#xff0c;当发送频率快一点时偶尔会遇到以下情景&#xff0c;即一次send中把原数据拆成两份发送&#xff0c;就会导致CRC校验错误。下图中6字节数据拆成42是把SetRThreshold()阈值设为2&#xff0c;当设为1的情况下则会拆成51。 一开始以为是缓…...

记录《现有docker中安装spark3.4.1》

基础docker环境中存储hadoop3--方便后续查看 参考&#xff1a; 实践&#xff1a; export JAVA_HOME/opt/apache/jdk1.8.0_333 export SPARK_MASTER_IP192.168.0.220 export SPARK_WORKER_MEMORY4g export SPARK_WORKER_CORES2 export SPARK_EXECUTOR_MEMORY4g export HADOOP_H…...

【3ds Max】练习——制作衣柜

目录 步骤 一、制作衣柜顶部 二、制作衣柜门板 三、制作衣柜底部 四、制作柜子腿部 五、制作柜子底板 步骤 一、制作衣柜顶部 1. 首先创建一个平面&#xff0c;然后将图片素材拖入平面 2. 平面大小和图片尺寸比例保持一致 3. 单机鼠标右键&#xff0c;选择对象属性 勾选…...

Spring-MVC的数据响应-19

在访问服务端MVC的时候&#xff0c;这个controller层进行相应操作之后 他要做两件事&#xff1a;页面跳转和返回字符串&#xff0c;在做完这些操作之后&#xff0c;我们一般进行页面展示:排除页面展示之外&#xff0c;有些需求可能直接回写给我们一些数据&#xff1a; 页面跳…...

(三)行为模式:5、中介者模式(Mediator Pattern)(C++示例)

目录 1、中介者模式&#xff08;Mediator Pattern&#xff09;含义 2、中介者模式的UML图学习 3、中介者模式的应用场景 4、中介者模式的优缺点 &#xff08;1&#xff09;优点 &#xff08;2&#xff09;缺点 5、C实现中介者模式的实例 1、中介者模式&#xff08;Media…...

期权是什么?期权的优缺点是什么?

期权是一种合约&#xff0c;有看涨期权和看跌期权两种类型&#xff0c;也就是做多和做空两个方向&#xff0c;走势标的物对应大盘指数&#xff0c;这也是期权与其他金融工具的主要区别之一&#xff0c;可以用于套利&#xff0c;对冲股票和激进下跌的风险&#xff0c;下文介绍期…...

目标检测任务数据集的数据增强中,图像垂直翻转和xml标注文件坐标调整

需求&#xff1a; 数据集的数据增强中&#xff0c;有时需要用到图像垂直翻转的操作&#xff0c;图像垂直翻转后&#xff0c;对应的xml标注文件也需要做坐标的调整。 解决方法&#xff1a; 使用pythonopencvimport xml.etree.ElementTree对图像垂直翻转和xml标…...

html5提供的FileReader是一种异步文件读取文件中的数据

前言&#xff1a;FileReader是一种异步文件读取机制&#xff0c;结合input:file可以很方便的读取本地文件。 input:file 在介绍FileReader之前&#xff0c;先简单介绍input的file类型。 <input type"file" id"file"> input的file类型会渲染为一个按…...

Linux学习记录——이십오 多线程(2)

文章目录 1、理解原生线程库线程局部存储 2、互斥1、并发代码&#xff08;抢票&#xff09;2、锁3、互斥锁的实现原理 3、线程封装1、线程本体2、封装锁 4、线程安全5、死锁6、线程同步1、条件变量1、接口2、demo代码 1、理解原生线程库 线程库在物理内存中存在&#xff0c;也…...

设计公司名字创意/上海优化seo

区块链技术被誉为第四次工业革命代表性成果之一&#xff0c;“最有潜力触发第五轮颠覆性革命浪潮的核心技术”&#xff0c;代表着互联网的未来&#xff0c;具有划时代意义。它被认为是与1975年的个人计算机、1993年的因特网同样具有革命性的信息技术突破。 日前&#xff0c;全…...

网站首页做的好看/天津百度快速排名优化

原创不易&#xff0c;转载请注明出处 前言 到目前为止&#xff0c;RocketMQ源码解析博文已经发表了20篇&#xff0c;初步打算是从两个维度来解析RocketMQ的源码&#xff0c;分别是整体运行流程的源码解析&#xff0c;某些核心组件源码深度剖析。现在已经初步完成了RocketMQ核心…...

查企业去哪个网站/网络推广员是干嘛的

我的上篇博客【我心目中的Asp.net核心对象】 讲述了一些我认为在Asp.net中比较重要的核心对象&#xff0c;以及演示了直接使用它们也能实现一个简单的服务响应。今天&#xff0c;我将继续把我认为Asp.net的另一些重要的内容拿出来与大家一起分享&#xff0c; 同时将使用本次所讲…...

做绿色软件的网站知乎/橙子建站官网

[url]http://yp.oss.org.cn/blog/show_resource.php?resource_id1069[/url] 一&#xff0e;准备安装CentOS 61&#xff0e;CentOS简介CentOS 是甚么&#xff1f; CentOS 是一个基于Red Hat 企业级 Linux 提供的可自由使用的源代码企业级的 Linux 发行版本。每个版本的 CentOS …...

现在不流行做网站了么/推广app的方法和策略

canal新版本功能介绍&#xff1a;canal-admin web模块canal-server 采集数据&#xff0c;解析binlog 配置实例&#xff0c;mysql的信息canal-adapter 将数据转换为其他组件的数据源的功能。client(新版本已经可以同步kafka,es,hbase&#xff0c;logger,RDB,MongoDB,Redis…...

做采集的网站有流量吗/怎么推广自己的产品

Spring的控制反转&#xff08;IOC&#xff09;和依赖注入&#xff08;DI&#xff09;具体解释 首先介绍下&#xff08;IOC&#xff09;控制反转: 所谓控制反转就是应用本身不负责依赖对象的创建及维护&#xff0c;依赖对象的创建及维护是由外部容器负责的。这样控制器就有应用转…...