ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

目录

1、前言

2、Thingsboard Gateway

1.tb-gateway的概念

2.tb-gateway的配置

3.odbc连接器配置

3、ODBC的配置

1.安装window的ODBC驱动程序

2.配置ODBC的驱动程序信息

4、效果展示

1、前言

项目中会出现这样的情况,有个平台搭建在本地,而数据也存在了本地服务器,而不能IOT云平台,远程查看或操控,那么有什么方法去解决呢?

1.可在本地平台的项目中改代码,加入云平台配置属性,但耗时耗力,不利于后期IOT平台的发展;

2.可做数据同步,云平台在己绑定的数据库中拿到数据,但同步数据往往会中断,也不利于IOT平台的后期发展;

3.利用Thingsboard对接ODBC协议,可直接上传到IOT平台,利于后期出现同样情况,可以直接部署,省时省力。

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

这种方式是以数据库通过 ODBC 做数据定时上报给 TB-Gateway, 然后再在 TB 上显示数据库。

2、Thingsboard Gateway

1.tb-gateway的概念

ThingsBoard Gateway是为TB平台提供支持更多协议的数据收集功能和未来扩展的设备管理功能,新版对接的协议都是基于TB-Gateway来对接的,可以说TB-Gateway相当于是大管家,能允许各类设备提交数据至TB平台,能提供基于内存或本地文件两种方式的数据缓存机制,用于连接中断时,暂存数据,当连接恢复时,自动将数据上传到服务器。

而TB支持协议:MQTT协议、HTTP(S)协议、CoAP协议,新版本还支持OPC-UA协议、ModBus协议、BACnet协议、CAN协议、SNMP协议、BLE协议、ODBC协议以及其他扩展对接,都要用tb-gateway做载体来接收、发送数据的,当然,直连除外!

2.tb-gateway的配置

这个可编辑文档tb_gateway.yaml在config文件夹下

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

对其修改编辑:

thingsboard:
  host: localhost     ##连接本地搭建的TB平台
  port: 1883          ##默认端口是1883
  remoteShell: false
  remoteConfiguration: false
  statistics:
    enable: true
    statsSendPeriodInSeconds: 3600
    configuration: statistics.json
  minPackSendDelayMS: 0
  checkConnectorsConfigurationInSeconds: 60
  handleDeviceRenaming: true
  checkingDeviceActivity:
    checkDeviceInactivity: false
    inactivityTimeoutSeconds: 120
    inactivityCheckPeriodSeconds: 10
  security:
    accessToken: A7fxD4c90QA1IYmewjyn   ##必须要连接tb平台上的一个网关设备的令牌,不然创建的设备是接收不到信息
  qos: 1
storage:
  type: memory
  read_records_count: 100
  max_records_count: 100000
 type: file
 data_folder_path: ./data/
 max_file_count: 10
 max_read_records_count: 10
 max_records_per_file: 10000
 type: sqlite
 data_file_path: ./data/data.db
 messages_ttl_check_in_hours: 1
 messages_ttl_in_days: 7
grpc:
  enabled: false
  serverPort: 9595
  keepaliveTimeMs: 10000
  keepaliveTimeoutMs: 5000
  keepalivePermitWithoutCalls: true
  maxPingsWithoutData: 0
  minTimeBetweenPingsMs: 10000
  minPingIntervalWithoutDataMs: 5000
connectors:
 # -
 #   name: MQTT Broker Connector
 #   type: mqtt
 #   configuration: mqtt.json
  ##开启了两个odbc的连接器
  -
    name: ODBC Connector
    type: odbc
    configuration: odbc.json
  -
    name: ODBC Connector
    type: odbc
    configuration: odbc_vb.json

3.odbc连接器配置

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

对其修改编辑:

{
  "connection": {
##数据库连接信息,包括数据库驱动,ip,端口,数据库名称,用户名,密码
    "str": "Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Port=3306;Database=mysql;Uid=root;Pwd=123456;",
    "attributes": {
      "autocommit": true,
      "timeout": 0
    },
    "encoding": "utf-8",
    "decoding": {
      "char": "utf-8",
      "wchar": "utf-8",
      "metadata": "utf-16le"
    },
    "reconnect": true,
    "reconnectPeriod": 60
  },
  "pyodbc": {
    "pooling": false
  },
  "polling": {
##从数据库中获取相关的数据,获取当前最新的一组数据,ps:如果有与数据库某些特殊字符相冲突,如这个force,一定要用 来标识,不然会出现数据错误。
    "polling": {
    "query": "SELECT id, channelName, eu, length, force , dataTime FROM t_cbbody1 WHERE id > ? ORDER BY id ASC LIMIT 1",
    "period": 26,   ##上报给TB的频率,这里设置每隔26s就上报一次
    "iterator": {
      "column": "id",  ##从自增的ID判断最新的数据
      "query": "SELECT Max(id)-1 FROM results1",
      "persistent": false
    }
  },
  "mapping": {
    "device": {
      "type": "'odbc'",   ##连接器的连接方式是odbc
      "name": "'t_cbdevice'"   ##tb平台上的设备名称
    },
    "sendDataOnlyOnChange": false,
    "timeseries": "*"
  },
  "serverSideRpc": {
    "enableUnknownRpc": false,
    "overrideRpcConfig": false,
    "methods": [
    ]
  }
}

注意看这句:”str”: “Driver={MySQL ODBC 8.0 Unicode Driver};Server=localhost;Port=3306;Database=mysql;Uid=root;Pwd=123456;”,

这里的”MySQL ODBC 8.0 Unicode”就是我们接下来要详细说的。

3、ODBC的配置

1.安装window的ODBC驱动程序

下载安装包:https://dev.mysql.com/downloads/connector/odbc/

选择window版本即可

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

选择与你电脑相匹配的64位还是32位,然后按照默认选项进行安装即可。

2.配置ODBC的驱动程序信息

①打开windows 下的控制面板下的管理工具,找到ODBC数据源。

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

②在【用户DSN】选项卡中单击【添加】按钮,然后选择”MySQL ODBC 8.0 Unicode Driver”。

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

【注意】:这里要说明一下”MYSQL ODBC 8.0 ANSI Driver”和”MySQL ODBC 8.0 Unicode Driver”的区别:

MySQL ODBC 8.0 ANSI Driver 只针对有限的字符集的范围;

MySQL ODBC 8.0 Unicode Driver 提供了更多字符集的支持,也就是提供了多语言的支持。

填写完后可点击【Test】按钮,测试一下连接是否配置成功!如果成功会有成功提示!

④在用户DSN处即可查看到最新创建的ODBC

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

此时就算大功告成,与前面的odbc.json里的驱动配置已全部完成,接下来看成果了。

4、效果展示

这是我的表结构:

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

在thingsboard_gateway文件夹下运行dos,输入”py tb_gateway.py”即可运行

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

运行结果:

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

在 TB平台收到数据:

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

大功告成,接下来还会有很多实例去验证,等着我吧!

Original: https://blog.csdn.net/qq_18235445/article/details/128239023
Author: 软硬兼施虾米
Title: ThingsBoard 3.1.1版本在window本地运行之TB-Gateway ODBC数据上传(四)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/787346/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python表白玫瑰花绘制——情人节表白

    python表白玫瑰花绘制——情人节表白 搬运不易,路过的各位大佬请点个赞 python表白玫瑰花绘制——情人节表白 * – python表白玫瑰花绘制——情人节表白 …

    Python 2023年9月3日
    049
  • 面试官:断网了,还能 ping 通 127.0.0.1 吗?

    你 女神爱不爱你,你问她,她可能不会告诉你。 但 网通不通,你 ping 一下就知道了。 可能看到标题,你就知道答案了,但是你了解背后的原因吗? 那如果把 127.0.0.1 换成…

    Python 2023年10月11日
    039
  • 【翻译】rocksdb调试指引

    基本调试建议 rocksdb是可以灵活地高度地进行配置的。另一方面,rocksdb多年来一直在提高它的自适应性。如果你的应用在SSD上正常运行,我们完全不建议你对rocksdb进行…

    Python 2023年10月13日
    040
  • pandas中数据基础操作

    具体可参考pandas官方文档 1.使用pandas库载入表格数据首先数据路径存在两种情况,一种是相对路径(ps:就是相对当前代码文件的路径位置);一种是绝对路径(ps:即在整个盘…

    Python 2023年8月19日
    046
  • Django(二)Django的基本使用

    文章目录 ORM * ORM基本原理 模型类和表的生成 通过模型类操作数据表 模型关系和关系查询 Django后台管理页面 * 设置流程 视图的使用 模板的使用 MVT交互的综合案…

    Python 2023年8月6日
    040
  • pytest框架的小知识(一)- 安装+命名规则+运行方式

    pytest安装命令: pip install pytest 查看安装是否成功 pip –version 1、pytest命名规则pytest文件:必须以test开头或…

    Python 2023年9月10日
    046
  • 计算机视觉项目-人脸识别与检测

    😊😊😊 欢迎来到本博客😊😊😊本次博客内容将继续讲解关于OpenCV的相关知识🎉 作者简介:⭐️⭐️⭐️ 目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉深度学…

    Python 2023年10月27日
    033
  • VSCODE设置conda环境自动加载

    文章目录 CONDA环境在VSCODE自动加载 CONDA环境在VSCODE自动加载 1、添加环境变量打开电脑属性,在path添加conda安装路径的目录:比如:C:\Users\…

    Python 2023年9月9日
    031
  • 用python实现猜数字游戏

    ✅作者简介:大家好我是hacker707,大家可以叫我hacker📃个人主页:hacker707的csdn博客🔥系列专栏:python💬推荐一款模拟面试、刷题神器👉点击跳转进入网站…

    Python 2023年8月1日
    036
  • 归纳推理测试没做完_Pandas50道练习题,Numpy100道没做完的同学不许点开!

    ——本文依旧转载自Datawhale社区 Pandas 是基于 NumPy 的一种数据处理工具,该工具为了解决数据分析任务而创建。Pandas 纳入了大量库和一些标准的数据模型,提…

    Python 2023年8月7日
    046
  • openCV实践项目:银行卡卡号识别

    本文用于对之前openCV知识点学习的复习及实践。要求达到以下效果: 一、基本流程思路分析 本项目本质上就是进行模板匹配。 注:为多用到所学知识,为了加深理解多加了些步骤,实际上本…

    Python 2023年8月1日
    042
  • 【论文写作】闵帆老师论文写作课程心得体会30篇

    我的博客一直记录代码,还是第一次记录心得体会。谢谢我闵帆老师。此次博客记录了我在这学期上闵帆老师《论文写作》后的一些心得体会。在这节课上,我学习了写论文的注意事项、写论文所用的工具…

    Python 2023年10月8日
    035
  • 【JAVA高级】——Druid连接池和Apache的DBUtils使用

    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。🍎个人主页:Java Fans的博客🍊个人信条:不迁怒,不贰过。小知识,大智慧。💞当前专栏:JAVA开发者成长之路✨特…

    Python 2023年9月15日
    030
  • 树莓派安装matplotlib

    python3 deepTrainGLZGT_DNN.pyTraceback (most recent call last):File “deepTrainGLZGT_…

    Python 2023年9月5日
    039
  • Python+Yolov5人脸口罩识别

    程序示例精选Python+Yolov5人脸口罩识别如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 Yolov5比较Yolov4,Yolov3等其他识…

    Python 2023年9月5日
    053
  • Pandas数据分析——常用操作

    引言 Pandas是一种常见且便捷的数据处理库,为便于使用和复习,个人针对一些常用操作进行了总结。 目录 引言 一、pandas是什么? 二、pandas常用操作有哪些? * 1….

    Python 2023年8月17日
    054
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球