1. 簡介
本文以電動汽車監控為例,詳細介紹通過MQTT,輕松采集電動汽車電門開度、驅動電機功率、空調功率、車速、SOC、電池電壓/電流等監控指標,將數據寫入 TDengine TSDB 時序數據庫,然后通過 TDengine IDMP,利用 AI 自動生成可視化面(mian)板(ban)和實(shi)時分析(xi),幫助(zhu)您幾分鐘(zhong)就構建一(yi)套穩(wen)定、高效的服(fu)務器監控(kong)解決(jue)方案。
在(zai)這個方案中,TDengine TSDB + TDengine IDMP 的組合能夠為您帶來四(si)大好(hao)處:
- 輕松完成數據導入:TDengine IDMP 與 TDengine TSDB 無縫集成,當監控數據寫入 TSDB 后,能夠快速導入 IDMP 并以樹形結構的方式展現被監控的電動汽車,IT 資產一目了然。
- 無問智推,數據自己說話:不用在 TDengine 側做任何配置,不用腳本,不用提問,IDMP 會基于采集的數據,自動判斷為 IT 監測場景,自動為您推薦面板和實時預警,服務器的運行狀態盡在掌控之中。
- 智能問數,隨問隨答:不用 SQL,不用任何腳本語言,你只要用自然語言說出感興趣的數據分析或監測面板,IDMP 將會自動幫您創建,把數據可視化與分析的使用門檻降為 0;
- 如果添加新的被監測的電動汽車,只要配置好 MQTT, 在 TDengine 側不用做任何設置和操作,電動汽車就被自動的加入到監測的對象中,最大程度節省人力。
2. 環境準備
2.1 基礎環境
本次(ci) TDengine TSDB 和 IDMP 演示使(shi)用 docker 形式(shi)進行部署,MQTT 作為演示環境數據源。
具體數據流如下:

2.2 前提條件
- Docker(20.10+)
- Docker Compose(v2.0+)
3. 配置指南
3.1 快速啟動服務
- 克隆 倉庫
git clone //github.com/taosdata/tdengine-idmp-deployment.git
- 使用 Docker Compose 啟動 TDengine IDMP,TDengine TSDB,MQTT 服務
cd tdengine-idmp-deployment/examples/electric_vehicle
docker compose up -d
- 確認服務均已啟動
docker compose ps

- 至此,所有服務已成功啟動。您可以在瀏覽器輸入
//localhost:6042訪問 IDMP 服務,輸入//localhost:6060訪問 TSDB 服務。更多細節請參見 。
說明:TDengine IDMP 服務默認(ren)使用(yong) TDengine TSDB 作為其數(shu)據(ju)源(yuan),IDMP 實例會自動(dong)創建到上述 TSDB 的連(lian)接。
3.2 創建數據寫入任務并進行模擬數據寫入
3.2.1 創建數據庫
- 瀏覽器輸入 進入 Explorer 界面,在注冊頁完成注冊,默認用戶名 root,密碼 taosdata。
- 點擊【數據瀏覽器】,在數據瀏覽器頁面點擊【創建數據庫】。
- 設置數據庫名稱為
ev,完成 DB 創建。

3.2.2 創建數據寫入任務
- 點擊【數據寫入】標簽,進入任務配置頁面,點擊 【導入任務】。

- 選擇
tdengine-idmp-deployment/examples/electric_vehicle/ev-task.json文件,在彈出的導入任務對話框中,選擇當前任務,選擇數據庫ev,點擊【確定】。

- 點擊啟動任務按鈕,啟動當前任務

- 任務啟動成功后,狀態顯示【運行中】

3.2.2 生成模擬數據
- 進入
ev-mqtt容器
docker compose exec -it ev-mqtt /bin/sh
- 啟動數據模擬器,發送模擬數據
~ # ./mqtt_pub --schema ev-history.toml --interval 0ms
client_id: mqtt_pub_tool_91ZTZU424w
client_id: mqtt_pub_tool_xbLu82Nolb
client_id: mqtt_pub_tool_X5SdYp8CDb
client_id: mqtt_pub_tool_4Oe00ePc65
client_id: mqtt_pub_tool_RI06X0JbUi
client_id: mqtt_pub_tool_GhHh2ZMp4G
client_id: mqtt_pub_tool_p4F2TdW3X1
client_id: mqtt_pub_tool_8WND7eY2GY
client_id: mqtt_pub_tool_580cvLtSPd
client_id: mqtt_pub_tool_40kd6ebBB6
client_id: mqtt_pub_tool_SP4KjAMa5U
client_id: mqtt_pub_tool_aABIknMB1N
published 10066, speed: 28680/s, avg speed: 402640/s
published 114348, speed: 20957/s, avg speed: 22860/s
published 216489, speed: 20436/s, avg speed: 21647/s
published 300894, speed: 16851/s, avg speed: 20046/s
- 進入
//localhost:6060【數據瀏覽器】頁面,看到電動汽車模擬數據已經生成

3.3 初始化 IDMP、體驗AI分析
3.3.1 從 TDengine TSDB 導入資產模型與數據
TDengine TSDB 設計之初就考慮了靜態標簽支持樹狀結構,層級(ji)之間(jian)用“.”進行分割。
在本示例中,location 靜態(tai)標簽列(lie)被(bei)用于存(cun)放樹狀(zhuang)層級關系。
- 瀏覽器進入
//localhost:6042,在注冊頁完成注冊激活 - 點擊用戶頭像,進入【管理后臺】

- 點擊【連接】 標簽下面的 【TDengine】,點擊右側三個點菜單,選擇“數據導入”。

- 從下拉框中選擇數據庫
ev,將標簽location在資產模型中設為路徑;其余列全部設為“屬性”,將location字段重命名為Electric Vehicle,點擊“完成”進行導入。(此處重命名僅僅為了后續展示時的美觀)

- 點擊【下一個超級表】,點擊【忽略】,忽略掉除了【electric_vehicle】外的其它超級表。此處可以給字段進行重命名,在這里我們使用字段的本名進行演示。

- 點擊【完成】,開始導入數據。

- 進入【元素瀏覽器】頁面,在左側資源瀏覽器中選中
Electric Vehicle,在右側選擇【通用】

3.3.2 體驗 AI 生成面板
- 在左側資源瀏覽器中,點擊
Electric Vehicle> 北京 > 東城 -> 東華門街道 -> ev-17元素,通過上方路徑導航菜單選擇【面板】,跳轉至該元素的 AI 推薦面板頁面。 - 等待 AI 生成面板推薦后,您可根據需求進行選擇,例如:“過去1天每小時的電池電壓不平衡度”,在您感興趣的面板右上方的菜單中,點擊【生成】按鈕。等待面板生成后,可以【查看】該面板。

- 面板生成后,您還可以在該面板的詳情頁面中選擇【高級】,查看 AI 創建面板時使用的 SQL 語句:
SELECT _wstart,AVG(`cell_max_voltage` - `cell_min_voltage`) AS `EV_Equipment_Battery_Voltage_Imbalance` FROM `idmp`.`vt_ev-17_569050` WHERE _c0 >= now-1d and _c0 <= now INTERVAL(1h) SLIDING(1h) ;
- 點擊【保存】,即可在下方面板列表中查看
ev-17元素下對應的面板。

3.3.3 體驗 AI 分析
- 在左側資源瀏覽器中,點擊
Electric Vehicle > 北京 > 東城 -> 東華門街道 -> ev-17元素,通過上方路徑導航菜單選擇【分析】,跳轉至該元素的 AI 推薦分析頁面。 - 等待 AI 生成分析問題推薦后,您可以根據需求進行選擇,例如:“electric_vehicle:ev-17的soc低于20%時,發出次要報警,計算當時平均battery_current,狀態窗口”,點擊您感興趣的問題鏈接,以進入分析編輯頁面,點擊頁面最下方的【保存】。

- 退回到分析列表中,即可查看對應的分析。
3.4 停止服務
如果(guo)想要(yao)停止當前服(fu)務,輸入以下命令
? docker compose down
[+] Running 4/4
? Container ev-mqtt Removed 0.2s
? Container tdengine-idmp Removed 10.4s
? Container tdengine-tsdb Removed 0.4s
? Network electric_vehicle_taos_net Removed
4. 更多
除了容器化部(bu)署方式以外,TDengine 還支持 tar 包(bao)安(an)裝方式,同時還提供云服務。詳見:
5. 小結
本文以步驟分(fen)解的(de)(de)方式,介(jie)紹了如何使用 TDengine TSDB + TDengine IDMP 快速搭(da)建一(yi)個(ge)基于 MQTT 上(shang)報數據(ju)的(de)(de) 電動汽車(che)監(jian)控系統(tong),無需(xu)專(zhuan)門的(de)(de)IT技(ji)能,搭(da)建過程簡潔(jie)而高效(xiao)。日(ri)后(hou),如果有新的(de)(de)車(che)輛需(xu)要被納入(ru)到監(jian)控系統(tong)中,無需(xu)創建元素(su),IDMP將(jiang)自動偵測到新接(jie)入(ru)的(de)(de)車(che)輛、納入(ru)監(jian)控。
搭建整個監控系統的(de)工作(zuo)幾乎都在 MQTT 數據源的(de)準備,無需編寫(xie)復雜的(de) SQL 語句(ju),無需腳本和(he)其他(ta)配置,無需學習(xi) Grafana,無需了(le)解多少電動汽(qi)車(che)(che)知識,即可輕松掌握電動汽(qi)車(che)(che)的(de)運行狀態,實時監控和(he)分析電動汽(qi)車(che)(che)的(de)狀態并采(cai)取相應措施。


























