成都web網站開發(fā)重慶網站制作公司哪家好
引言
1. Math Function 節(jié)點簡介
2. 節(jié)點配置
2.1 基本配置示例
3. 使用場景
3.1 數(shù)據預處理
3.2 閾值判斷
3.3 復雜計算
3.4 動態(tài)閾值
4. 實際項目中的應用
4.1 項目背景
4.2 項目需求
4.3 實現(xiàn)步驟
5. 總結
引言
ThingsBoard 是一個開源的物聯(lián)網平臺,提供了設備管理、數(shù)據收集、處理和可視化等功能。規(guī)則鏈是 ThingsBoard 中的一個強大功能,允許用戶定義復雜的業(yè)務邏輯來處理設備上報的數(shù)據。在規(guī)則鏈中,
Math Function
節(jié)點用于執(zhí)行數(shù)學運算,這對于數(shù)據處理和分析非常有用。
ThingsBoard從入門到實戰(zhàn)課程,深入透析底層原理,快速搭建自己的IOT平臺_嗶哩嗶哩_bilibiliThingsBoard從入門到實戰(zhàn)課程,深入透析底層原理,快速搭建自己的IOT平臺共計33條視頻,包括:1、ThingsBoard項目介紹、2、ThingsBoard前端Vue版本代碼編譯、3、ThingsBoard本地后端源碼編譯等,UP主更多精彩視頻,請關注UP賬號。https://www.bilibili.com/video/BV1CH36egEDM/?spm_id_from=333.999.0.0
1. Math Function 節(jié)點簡介
Math Function
節(jié)點的主要作用是在規(guī)則鏈執(zhí)行過程中對數(shù)據進行數(shù)學運算。通過 Math Function
節(jié)點,可以對輸入的消息和元數(shù)據進行加減乘除、取模、平方根等運算,生成新的數(shù)據輸出。這在數(shù)據預處理、閾值判斷和復雜計算中非常有用。
2. 節(jié)點配置
- 函數(shù)類型:選擇要執(zhí)行的數(shù)學運算類型,常見的有?
ADD
、SUBTRACT
、MULTIPLY
、DIVIDE
、MOD
、SQRT
?等。 - 操作數(shù):指定參與運算的操作數(shù),可以是靜態(tài)值、動態(tài)表達式或消息中的屬性。
- 輸出配置:設置輸出消息的格式和內容。
2.1 基本配置示例
{"function": "ADD","arguments": ["${msg.temperature}",10],"output": {"temperature": "${result}"}
}
3. 使用場景
Math Function
節(jié)點在多種場景下都非常有用,特別是在需要進行數(shù)據預處理、閾值判斷和復雜計算時。以下是一些具體的應用場景:
3.1 數(shù)據預處理
在數(shù)據收集和處理過程中,有時需要對原始數(shù)據進行預處理,例如單位轉換或數(shù)據標準化。
{"function": "MULTIPLY","arguments": ["${msg.temperature}",1.8],"output": {"temperatureFahrenheit": "${result}"}
}
3.2 閾值判斷
在監(jiān)控系統(tǒng)中,需要對數(shù)據進行閾值判斷,例如判斷溫度是否超過某個臨界值。
{"function": "SUBTRACT","arguments": ["${msg.temperature}",30],"output": {"temperatureDifference": "${result}"}
}
3.3 復雜計算
在某些場景下,需要進行復雜的數(shù)學運算,例如計算平均值、標準差等。
{"function": "SQRT","arguments": ["${msg.variance}"],"output": {"standardDeviation": "${result}"}
}
3.4 動態(tài)閾值
在某些情況下,閾值可能是動態(tài)的,需要根據其他數(shù)據進行計算。
{"function": "ADD","arguments": ["${msg.baseThreshold}","${msg.dynamicAdjustment}"],"output": {"finalThreshold": "${result}"}
}
4. 實際項目中的應用
下面是一個實際項目中的例子,展示如何在智能家居系統(tǒng)中使用 Math Function
節(jié)點。
4.1 項目背景
假設我們正在開發(fā)一個智能家居系統(tǒng),該系統(tǒng)需要實時監(jiān)測室內溫度和濕度,并根據這些數(shù)據進行空調和加濕器的控制。此外,還需要對數(shù)據進行預處理和閾值判斷,以便更好地管理和優(yōu)化家居環(huán)境。
4.2 項目需求
- 監(jiān)測室內溫度和濕度。
- 對溫度進行單位轉換(從攝氏度轉換為華氏度)。
- 判斷溫度是否超過設定的閾值。
- 控制空調和加濕器的開關狀態(tài)。
4.3 實現(xiàn)步驟
-
部署傳感器:
- 在室內安裝溫度和濕度傳感器。
-
創(chuàng)建規(guī)則鏈:
- 添加?
Math Function
?節(jié)點,用于進行溫度單位轉換和閾值判斷。 - 添加其他處理節(jié)點,如設備控制和數(shù)據存儲。
- 添加?
-
配置規(guī)則鏈:
- 配置?
Math Function
?節(jié)點,將溫度從攝氏度轉換為華氏度。
- 配置?
{"function": "MULTIPLY","arguments": ["${msg.temperature}",1.8],"output": {"temperatureFahrenheit": "${result}"}
}
- 配置?
Math Function
?節(jié)點,判斷溫度是否超過設定的閾值。
{"function": "SUBTRACT","arguments": ["${msg.temperatureFahrenheit}",75],"output": {"temperatureDifference": "${result}"}
}
- 處理數(shù)據:
- 根據溫度差異控制空調的開關狀態(tài)。
- 如果溫度差異大于0,開啟空調;否則,關閉空調。
{"type": "DEVICE_CONTROL","condition": "${msg.temperatureDifference > 0}","action": "TURN_ON_AIR_CONDITIONER","message": "Temperature exceeds threshold, turning on air conditioner.","metadata": {"deviceName": "${device.name}","temperatureDifference": "${msg.temperatureDifference}","timestamp": "${ts}"}
}
-
前端界面:
- 開發(fā)一個前端界面,顯示實時的溫度和濕度數(shù)據。
- 提供一個界面,讓用戶能夠查看和管理空調和加濕器的開關狀態(tài)。
-
數(shù)據查詢:
- 使用 ThingsBoard 的 REST API 或 GraphQL 查詢,獲取歷史數(shù)據和控制記錄。
GET /api/plugins/telemetry/DEVICE/{deviceId}/values/timeseries?keys=temperature,humidity&startTs={startTimestamp}&endTs={endTimestamp}
5. 總結
Math Function
節(jié)點在 ThingsBoard 規(guī)則鏈中是一個非常有用的工具,可以幫助數(shù)據進行數(shù)學運算,進行數(shù)據預處理、閾值判斷和復雜計算。通過合理地使用Math Function
節(jié)點,可以更好地管理和自動化系統(tǒng)中的各種操作。無論是在智能家居、工業(yè)監(jiān)控還是其他物聯(lián)網應用中,Math Function
節(jié)點都能發(fā)揮重要作用。