1、ThingsBoard 的边缘计算软件产品
ThingsBoard Edge 用例
- 自动驾驶汽车 边缘计算使收集、处理和响应道路事件成为可能,几乎没有延迟。现代自动驾驶汽车每天产生 5 TB 到 20 TB 的数据。4G 或 5G 无法提供该网络吞吐量,但使用 ThingsBoard Edge,您可以过滤数据。这些数据的大部分应该在本地处理,只有这些数据的子集会被推送到云端。
- 智能农业 对远程站点的筒仓曝气系统的故障做出快速反应,即使目前从现场位置到云的连接是纯粹的。
- 智能住宅 使处理和分析数据更接近智能家居,从而有可能在边缘保护敏感的用户信息。此外,由于智能家居解决方案的低延迟,它提供了良好的用户体验 - 与将边缘设备连接到云以做出一些决策相比,用户将从终端设备获得响应的速度要快得多。
- 安全解决方案 有必要在几秒钟内对安全违规和威胁做出反应,而 Edge 提供了这种可能性。您无需关心与云的连接质量 - 决策将由远程站点上的本地边缘引擎实时做出。
- 院内监测 为了保护医疗保健设备中的数据隐私,必须在边缘完成这些数据的处理。推送到云端只需要医疗设备的读数,同时将所有其他敏感数据存储在边缘。 在此用例中,边缘处理的额外好处 - 由于实时处理来自边缘医疗设备的数据,因此可以尽快对关键的医疗案例做出反应。
- 预测性维护 使边缘设备读数的处理和存储更接近设备。在本地分析大量数据,并在故障发生之前检测生产线的变化。根据您的业务需求,仅将生产线的平均读数发送到云端。 2、创建边缘管理
2、下载源码 gitee.com/onionCircle…
# 使用 thingsboard/openjdk17:bookworm-slim 作为基础镜像
FROM thingsboard/openjdk17:bookworm-slim
# 添加维护者信息
LABEL maintainer="thingsboard-edge"
# 创建必要的目录
RUN mkdir -p /opt/project/thingsboard-edge/data
RUN mkdir -p /opt/project/thingsboard-edge/conf
RUN mkdir -p /opt/project/thingsboard-edge/var/log/tb-edge
# 设置工作目录
WORKDIR /opt/project/thingsboard-edge
# 暴露端口
EXPOSE 18081
# 设置环境变量
ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms512m -Xmx1024m"
# 将 JAR 文件复制到容器中
ADD ./tb-edge-3.8.0EDGE-boot.jar ./thingsboard-edge.jar
# 容器启动命令
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar thingsboard-edge.jar ${JAVA_OPTS}
version: '3.8'
services:
thingsboard-edge:
build:
context: .
dockerfile: Dockerfile
args:
BUILD_VERSION: latest
container_name: thingsboard-edge
network_mode: "host"
ports:
- "18081:18081"
- "11883:11883"
- "15683-15688:15683-15688/udp"
volumes:
- ./data:/opt/project/thingsboard/data
- ./conf:/opt/project/thingsboard/conf
- ./log:/opt/project/thingsboard/var/log/tb-edge
environment:
TZ: Asia/Shanghai
# 避免thingsboard端口冲突
HTTP_BIND_PORT: 18081
MQTT_BIND_PORT: 11883
COAP_BIND_PORT: 15683
COAP_DTLS_BIND_PORT: 15684
LWM2M_BIND_PORT: 15685
LWM2M_SECURITY_BIND_PORT: 15686
LWM2M_BS_BIND_PORT: 15687
SNMP_BIND_PORT: 11620
LWM2M_BS_SECURITY_BIND_PORT: 15688
DEVICE_CONNECTIVITY_HTTP_PORT: 18081
DEVICE_CONNECTIVITY_MQTT_PORT: 11883
DEVICE_CONNECTIVITY_COAP_PORT: 15683
CLOUD_ROUTING_KEY: e4ed59c8-8830-6078-2133-2a1d4e029553
CLOUD_ROUTING_SECRET: 1z3xibo463lf48kevwdi
CLOUD_RPC_HOST: 106.119.162.97
CLOUD_RPC_PORT: 7070
CLOUD_RPC_SSL_ENABLED: false
SPRING_DATASOURCE_URL: jdbc:postgresql://106.119.162.97:5432/tb_edge
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: password
# 创建租户会报错Not valid working directory: /opt/project/thingsboard. Please use either root project directory, application module directory or specify valid "install.data_dir" ENV variable to avoid automatic data directory lookup!
# 在thingsboard.yml最下面增加
#install:
# data_dir: "${INSTALL_DATA_DIR:/opt/project/thingsboard}"
# load_demo: "${INSTALL_LOAD_DEMO:true}"
INSTALL_DATA_DIR: /opt/project/thingsboard-edge/data
# caffeine or redis(7.2 - latest compatible version)
CACHE_TYPE: redis
REDIS_DB: 11
# redis密码
REDIS_PASSWORD: password
# 默认 10分钟不活动超时
DEFAULT_INACTIVITY_TIMEOUT: 600
# 一分钟扫描一次设备是否在线状态
DEFAULT_STATE_CHECK_INTERVAL: 60
# 最大队列数,如果设备很多,数据频繁可以调大一下
TB_SERVER_WS_DEFAULT_QUEUE_MESSAGES_PER_SESSION: 10000
thingsboard-edge1:
build:
context: .
dockerfile: Dockerfile
args:
BUILD_VERSION: latest
container_name: thingsboard-edge1
network_mode: "host"
ports:
- "28081:28081"
- "21883:21883"
- "25683-25688:25683-25688/udp"
volumes:
- ./data:/opt/project/thingsboard/data
- ./conf:/opt/project/thingsboard/conf
- ./log:/opt/project/thingsboard/var/log/tb-edge
environment:
TZ: Asia/Shanghai
# 避免thingsboard端口冲突
HTTP_BIND_PORT: 28081
MQTT_BIND_PORT: 21883
COAP_BIND_PORT: 25683
COAP_DTLS_BIND_PORT: 25684
LWM2M_BIND_PORT: 25685
LWM2M_SECURITY_BIND_PORT: 25686
LWM2M_BS_BIND_PORT: 25687
SNMP_BIND_PORT: 21620
LWM2M_BS_SECURITY_BIND_PORT: 25688
DEVICE_CONNECTIVITY_HTTP_PORT: 28081
DEVICE_CONNECTIVITY_MQTT_PORT: 21883
DEVICE_CONNECTIVITY_COAP_PORT: 25683
CLOUD_ROUTING_KEY: aca86310-f2be-b669-27cd-2942e2ac0540
CLOUD_ROUTING_SECRET: ekzs3k10o2gjx4ahkhi2
CLOUD_RPC_HOST: 106.119.162.97
CLOUD_RPC_PORT: 7070
CLOUD_RPC_SSL_ENABLED: false
SPRING_DATASOURCE_URL: jdbc:postgresql://106.119.162.97:5432/tb_edge1
SPRING_DATASOURCE_USERNAME: postgres
SPRING_DATASOURCE_PASSWORD: password
# 创建租户会报错Not valid working directory: /opt/project/thingsboard. Please use either root project directory, application module directory or specify valid "install.data_dir" ENV variable to avoid automatic data directory lookup!
# 在thingsboard.yml最下面增加
#install:
# data_dir: "${INSTALL_DATA_DIR:/opt/project/thingsboard}"
# load_demo: "${INSTALL_LOAD_DEMO:true}"
INSTALL_DATA_DIR: /opt/project/thingsboard-edge/data
# caffeine or redis(7.2 - latest compatible version)
CACHE_TYPE: redis
REDIS_DB: 12
# redis密码
REDIS_PASSWORD: password
# 默认 10分钟不活动超时
DEFAULT_INACTIVITY_TIMEOUT: 600
# 一分钟扫描一次设备是否在线状态
DEFAULT_STATE_CHECK_INTERVAL: 60
# 最大队列数,如果设备很多,数据频繁可以调大一下
TB_SERVER_WS_DEFAULT_QUEUE_MESSAGES_PER_SESSION: 10000
docker-compose up -d thingsboard-edge thingsboard-edge1
启动完成之后,点击同步(云服务器记得开放一下 7070 端口,当然 ip 写 localhost 则不需要开端口,主要是边缘跟 tb 不在一个服务的话,需要写 ip)
资产配置和设备配置是自动同步的,资产、设备、规则链、实体视图、仪表盘需要手动绑定
边缘创建同步到 tb
在边缘创建的设备,不会自动同步到其他边缘,之后同步到 tb 里面
边缘上传实时数据,会自动同步到 tb 中
管理边缘设备上的警报和 RPC 请求
说明切换成功了
例如一个设备 100 个遥测,通过边缘给主站上传有用的遥测,减少流量