Thingsboard 中“設(she)(she)備(bei)(bei)(bei)配置(zhi)”和“設(she)(she)備(bei)(bei)(bei)”的(de)(de)關系(xi)是(shi)一對多的(de)(de)關系(xi),通(tong)過(guo)設(she)(she)備(bei)(bei)(bei)配置(zhi)為每(mei)個(ge)設(she)(she)備(bei)(bei)(bei)設(she)(she)置(zhi)不(bu)同的(de)(de)配置(zhi),每(mei)個(ge)設(she)(she)備(bei)(bei)(bei)都會有一個(ge)與其關聯的(de)(de)設(she)(she)備(bei)(bei)(bei)配置(zhi)文件。等等,這(zhe)不(bu)就(jiu)是(shi)TDengine 中超(chao)級(ji)表的(de)(de)概念(nian):
超級(ji)表(biao)是一種(zhong)特殊的表(biao)結構,用于(yu)代表(biao)一類具有(you)相同數據模式的數據采集點。一個(ge)超級(ji)表(biao)有(you)多(duo)個(ge)子(zi)表(biao),一個(ge)子(zi)表(biao)只能隸(li)屬于(yu)一個(ge)超級(ji)表(biao)。
因此,將兩者有機(ji)結合起來:TDengine 中(zhong)創建超級表作為“設備配置”,Thingsboard 中(zhong)添加設備則(ze)自(zi)動在(zai)TDengine 中(zhong)創建子表,偉大的設計殊途同歸。

靈魂的碰撞
安裝部署
安裝過程可以(yi)直接參考官(guan)方安裝教程:
但是有兩點(dian)需要注意:
- 請點擊這里,聯系我們獲取適配版本。
- 配置文件增加 TDengine 相關連接配置:
# spring.tdengine
export TDENGINE_URL=jdbc:TAOS-RS://127.0.0.1:6041/thingsboard
export TDENGINE_USERNAME=root
export TDENGINE_PASSWORD=taosdata
export TDENGINE_STR_LEN=1024
export TDENGINE_STR_COL_MAX=65517
export TDENGINE_STR_TAG_MAX=16382
操作步驟
- 創建“設備配置”
以(yi)一(yi)個(ge)車(che)(che)輛管理系統為例,需要記錄車(che)(che)輛的(de)車(che)(che)牌號、數據上(shang)報時間、經度(du)、緯度(du)、車(che)(che)速這幾個(ge)變量(liang)。因此(ci),我們調(diao)用接口(kou)來(lai)創建一(yi)個(ge)新的(de)“設備配(pei)置”。
curl -X POST '//127.0.0.1:8080/api/deviceProfile' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $YOUR_JWT_TOKEN_HERE' \
--data-raw '{
"name": "truck",
"type": "DEFAULT",
"image": null,
"defaultQueueName": null,
"transportType": "DEFAULT",
"provisionType": "DISABLED",
"description": "",
"profileData": {
"configuration": {
"type": "DEFAULT"
},
"transportConfiguration": {
"type": "DEFAULT"
},
"alarms": null,
"provisionConfiguration": {
"type": "DISABLED"
}
},
"tableInfo": {
"columns": [{"name":"longtitude","type":"double","len":10},{"name":"latitude","type":"double"},{"name":"speed","type":"float"}],
"tags": [{"name":"license_plate_number","type":"nchar","len":8}]
}
}'
Thingsboard 中成功創(chuang)建(jian)名稱為“profileStable” 的(de)“設備(bei)配(pei)置”:

數(shu)據(ju)庫中成功創建超級表:

- 添加新設備
選擇已(yi)有配(pei)置(zhi)“profileStable”,創建(jian)新的設備(bei)。

成(cheng)功創建了(le)一個(ge)名叫(jiao)“測(ce)A88888″ 的設備,具(ju)體的子表名稱可以通過(guo)“復制設備ID” 查看。

- 測試寫入數據
直(zhi)接通過訪(fang)問令牌,調(diao)用接口發(fa)送數據
curl -X POST '//127.0.0.1:8080/api/v1/$YOU_DEVICE_TOKEN/telemetry' \
--header 'Content-Type: application/json' \
--data-raw '{"license_plate_number":"京A88888","longtitude":108.938744,"latitude":34.368150,"speed":60}'
界面中更新數據

數據庫中(zhong)也寫入了(le)最新的(de)記錄

業務展示
場景一:車輛實時定位追蹤
- 數據采集:車輛GPS定位信息每秒傳輸到Thingsboard。
- 數據存儲:在TDengine中創建表存儲定位數據。
- 數據展示:在Thingsboard創建地理位置圖表,展示車輛實時位置。

場景二:車隊維護預警
按日(ri)(ri)生(sheng)成車輛每日(ri)(ri)超速次數。
- 創建流計算:在TDengine 中創建流計算
create stream high_speed fill_history 1 into high_speed subtable(concat('tb_', device_name)) as
select
_wstart as 日期,
count(speed) as 超速次數,
device_name as 設備名稱
from
`1e169050-86e6-11ef-a5cf-2de52a1b0351`
where
speed > 90 partition by device_name interval(1d);
- 查看流計算結果

注:本次適配(pei)沒有(you)修改(gai)原有(you)前端(duan)頁面,需要調用HTTP API 來創建設備配(pei)置。感(gan)興趣的小伙伴可以完(wan)善一下,歡迎提交代碼交流(liu)。


























