ThingsBoard 3.1.1版本在window本地运行:TB-Gateway ODBC数据上传(四)
目录
1、前言
项目中会出现这样的情况,有个平台搭建在本地,而数据也存在了本地服务器,而不能IOT云平台,远程查看或操控,那么有什么方法去解决呢?
1.可在本地平台的项目中改代码,加入云平台配置属性,但耗时耗力,不利于后期IOT平台的发展;
2.可做数据同步,云平台在己绑定的数据库中拿到数据,但同步数据往往会中断,也不利于IOT平台的后期发展;
3.利用Thingsboard对接ODBC协议,可直接上传到IOT平台,利于后期出现同样情况,可以直接部署,省时省力。
这种方式是以数据库通过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:
-
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连接器配置
别忘了,这篇博客的主角是ODBC,而该可编辑文档也在config文件夹中:
对其修改编辑:
-
{
-
"connection": {
-
-
"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": {
-
-
"polling": {
-
"query": "SELECT id, channelName, eu, length, `force` , dataTime FROM t_cbbody1 WHERE id > ? ORDER BY id ASC LIMIT 1",
-
"period": 26,
-
"iterator": {
-
"column": "id",
-
"query": "SELECT Max(id)-1 FROM results1",
-
"persistent": false
-
}
-
},
-
"mapping": {
-
"device": {
-
"type": "'odbc'",
-
"name": "'t_cbdevice'"
-
},
-
"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版本即可
选择与你电脑相匹配的64位还是32位,然后按照默认选项进行安装即可。
2.配置ODBC的驱动程序信息
①打开windows 下的控制面板下的管理工具,找到ODBC数据源。
②在【用户DSN】选项卡中单击【添加】按钮,然后选择“MySQL ODBC 8.0 Unicode Driver”。
【注意】:这里要说明一下“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
此时就算大功告成,与前面的odbc.json里的驱动配置已全部完成,接下来看成果了。
4、效果展示
这是我的表结构:
具体的数据:
在thingsboard_gateway文件夹下运行dos,输入“py tb_gateway.py”即可运行
运行结果:
在 TB平台收到数据:
大功告成,接下来还会有很多实例去验证,等着我吧!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfjbecj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01