1. thingsboard 网关功能点分析和环境搭建

The IoT Gateway 是一个基于 Linux 的支持 Python 3.7+ 的微机上运行的软件组件。

为了将物联网网关连接到 ThingsX 服务器,首先需要提供网关凭据。我们将使用访问令牌凭证作为最简单的凭证。有关详细信息,请参阅设备身份验证选项。

版本说明:以 3.0.1 版本进行演示。

功能点分析

功能说明

  • OPC-UA 连接器,从连接到 OPC-UA 服务器的设备收集数据。
  • MQTT 连接器来收集发布到外部 MQTT 代理的数据。
  • Modbus 连接器从 Modbus 服务器和从服务器收集数据。
  • BLE 连接器从 BLE 设备收集数据。
  • 请求连接器从 HTTP API 收集数据。
  • CAN 连接器采用 CAN 协议进行数据采集。
  • BACnet 连接器从使用 BACnet 协议的设备收集数据。
  • ODBC 连接器从 ODBC 数据库收集数据。
  • 从自定义协议收集数据的自定义连接器。
  • 收集到的数据的持久性,以保证在网络和硬件故障情况下的数据传输。
  • 自动重新连接到 ThingsX 集群。
  • 简单而强大的传入数据和消息到统一格式的映射。
  • 远程日志记录功能,通过 ThingsX WEB 接口监视网关状态。
  • RPC 网关通过 ThingsX WEB 接口控制和获取网关信息的方法。

网关架构

架构物联网网关是一个基于组件的软件工程,设计用于运行在基于 Linux 的支持 Python 3.7+ 的微型计算机上。ThingsX 物联网网关的主要组件如下。

连接器
此组件的用途是连接到外部系统(例如 MQTT 代理或 OPC-UA 服务器)或直接连接到设备(例如 Modbus、 BLE 或 CAN)。一旦连接,连接器就是来自这些系统的轮询数据或订阅更新。轮询与订阅取决于协议能力。例如,我们对 MQTT 连接器使用订阅模型,对 Modbus 和 CAN 使用轮询。连接器还可以直接或通过外部系统将更新推送到设备。可以使用自定义指南定义自己的连接器。

转换器
转换器负责将数据从协议特定格式相互转换为 ThingsX 格式。转换器由连接器调用。转换器通常特定于连接器支持的协议。有上行和下行转换器。上行转换器用于将特定协议的数据转换为 ThingsX 格式。下行转换器用于将来自 ThingsX 的消息转换为特定的协议格式。可以使用自定义指南定义自己的转换器。

事件存储
事件存储用于临时存储连接器生成的遥测和其他事件,直到它们被传送到 ThingsX。事件存储支持两种实现: 内存中队列和持久文件存储。这两种实现都确保在网络中断的情况下最终交付设备数据。内存中队列使 IO 操作最小化,但是在网关进程重新启动的情况下可能会丢失消息。持久性文件存储在进程重新启动后仍然存在,但是会对文件系统执行 IO 操作。

ThingsX 客户端
网关通过 MQTT 协议与 ThingsX 通信,并使用这里描述的 API。ThingsX 客户端是一个单独的线程,它在与 ThingsX 的连接处于活动状态时轮询 Event Storage 并传递消息。ThingsX 客户端支持监视连接、批处理事件以提高性能和许多其他特性。

网关服务
网关服务负责连接器、事件存储和 ThingsX 客户端的引导。此服务收集并定期向 ThingsX 报告有关传入消息和已连接设备的统计数据。网关服务持久化连接的设备列表,以便在网关重新启动时能够重新订阅设备配置更新。

在这里插入图片描述

thingsboard 网关快速安装

通过 docker 安装

Windows 用户运行

docker run -it  ^
-v %HOMEPATH%\tb-gateway\config:/thingsboard_gateway/config  ^
-v %HOMEPATH%\tb-gateway\extensions:/thingsboard_gateway/extensions  ^
-v %HOMEPATH%\tb-gateway\logs:/thingsboard_gateway/logs  ^
--name tb-gateway  ^
-p 5000:5000 ^
--restart always thingsboard/tb-gateway

运行(使用 ENV 变量)

docker run -it 
-e host=thingsboard.cloud 
-e port=1883 
-e accessToken=ACCESS_TOKEN

Linux or Mac 用户也是同理。

通过 Linux 安装包的方式进行安装

根据是 ubuntu 还是 CentOS 系统,拿到对应平台的安装包文件进行安装。

通过 pip 进行安装

通过源码搭建环境

Linux 系统通过源代码安装

以 Ubuntu 系统进行操作,从源代码安装 ThingsX 网关,见以下步骤:

1. 使用 apt 将所需的库安装到系统中:

sudo apt install python3-dev python3-pip libglib2.0-dev git

2. 克隆指定版本的网关源代码:

克隆最新版本

git clone --depth 1 --recurse-submodules https://github.com/thingsboard/thingsboard-gateway.git

或者 curl 特定版本

curl -LJO https://github.com/ThingsX/ThingsX-gateway/archive/refs/tags/3.0.1.tar.gz

3. 进入 ThingsX-gateway 目录:

cd ThingsX-gateway

4. 进入项目根目录,使用 setup.py 脚本安装 python 模块:

python3 setup.py install

5. 创建“日志”文件夹:

mkdir logs

6. 将网关配置为与您的 ThingsX 平台实例一起使用
这一步需要自行配置 connector 连接器。

7. 运行网关,检查安装结果:

python3 ./ThingsX_gateway/tb_gateway.py

问题记录

运行报错 AttributeError: module ‘google.protobuf.descriptor’ has no attribute ‘_internal_create_key’

解决方案:尝试升级 protobuf 包 pip install --upgrade protobuf

参考文档

https://thingsboard.io/docs/iot-gateway/what-is-iot-gateway/

  • 45
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值