嵌入式智能物聯網設備,不僅要采集上報數據,還應該具備遠程控制、邊緣計算、自動響應事件等能力,達到智能化、快響應等效果。
?簡介
物聯網監測控制系統,不僅需要監測數據,將數據上報至物聯網平臺,還需要具備接收遠程控制請求的能力。同時,智能化控制系統,還需要具備邊緣計算能力,能夠響應現場事件,并及時做出處理。本文將基于EsDAMPC-ZC1應用——IoT監測控制系統(一),繼續擴展遠程控制和智能化控制業務。
?業務擴展本項目通過控制風機轉動,帶動空氣流動,從而達到降溫的效果,這也是最常用的降溫方案。常見于設備機柜、廠房等場景。一、硬件連接在原有的電路基礎上,增加了一個風機驅動電路,如下圖所示。
實物連接圖如下。
二、風機基礎控制
風機的控制根據所選風機的類型,有多種方式,如直接DO開關、RS485通信控制等。此處選用DO輸出,直接控制風機開關。
1. 節點介紹1.1 gpio_outgpio_out 節點,提供了 GPIO 輸出節點,可以根據需求輸出對應電平信號。1.1.1 屬性
名稱(name):節點名稱,用于索引查找本節點;
顯示名稱(displayName):用于畫布上顯示的名稱;
GPIO序號(gpio_id):GPIO引腳ID;
模式(mode):GPIO輸出模式(推挽、開漏…);
初始狀態(init_stat):引腳初始輸出狀態。
1.1.2輸入
- msg.payload:指定輸出狀態,0:低電平,1:高電平。
2. 控制測試
通過簡單的腳本控制 gpio_out 節點驅動外部風機。
2.1 添加節點
在已有的流圖中添加 timer、fscript、gpio_out 節點到畫布中。
2.2 配置節點timer 配置如下,1s 周期輸出。fscript 配置如下,保持輸出高電平。gpio_out 配置如下。
- GPIO序號(gpio_id):P4.9;
- 模式(mode):push pull(推挽輸出);
- 初始狀態(init_stat):low(初始低電平)。
2.3 下載流圖可以看到風扇已經被驅動起來。
3. 風機智能控制
風機智能化控制,主要實現兩個基礎功能:
- 根據高溫信號,自動啟動進行降溫;
- 支持手動啟動。
3.1 節點介紹為了降低CPU的損耗,提高實時性,使用 complete 節點來取代原先的 timer。該節點用于監控指定的若干節點,當被監控的節點執行完成后,會觸發 complete 節點執行。3.1.1 屬性
名稱(name):節點名稱,用于索引查找本節點;
顯示名稱(displayName):用于畫布上顯示的名稱;
監控節點(monitored_nodes):指定需要監控的節點名稱(json格式)。
3.1.2 輸出
僅觸發向下一節點執行,并不會傳遞任何數據。
3.2 流圖測試
3.2.1 調整異常監測模塊為了更好的引用異常監測模塊的高低溫異常判定結果,給該模塊腳本添加連個全局標志變量。3.2.1.1 初始階段添加高低溫異常全局標志 global.high_temp_anomaly、global.low_temp_anomaly,如下所示。
/*初始化高溫預警環境變量*/
global.high_temp=30
/*初始化低溫預警環境變量*/
global.low_temp=15
/*高溫異常信號*/
global.high_temp_anomaly=false
/*低溫異常信號*/
global.low_temp_anomaly=false
3.2.1.2 運行階段
增加對高低溫異常標志的處理,如下所示。
/*實際溫度與高溫預警溫度溫差*/
temp_diff=msg.temperature-global.high_temp
/*溫度超過高溫預警值,標記高溫異常*/
if(temp_diff>=0.3){
global.high_temp_anomaly=true
}elseif(temp_diff<=?-0.3)?{
global.high_temp_anomaly=false
}
/*實際溫度與低溫預警溫度溫差*/
temp_diff=msg.temperature-global.low_temp
/*溫度低于低溫預警值,標記低溫異常*/
if(temp_diff<=?-0.3)?{
global.low_temp_anomaly=true
}elseif(temp_diff>=0.3){
global.low_temp_anomaly=false
}
/*輸出報警信號*/
if(global.high_temp_anomaly||global.low_temp_anomaly){
output.payload=1
}else{
output.payload=0
}
* 其中±0.3 的溫差幅度,是為了擴大判定邊界,起到軟件濾波的效果,避免邊緣狀態引起頻繁開關的情況。
3.2.2 完善風機控制邏輯為了后續更好地接收遠程控制請求,需要將風機控制模塊的業務邏輯進一步完善。
3.2.2.1 初始階段
聲明一個 global.fan_control 全局控制標志,用于控制風機運轉狀態,總共包括以下3個狀態:
on:手動啟動風機;
off:手動關閉風機
auto:根據溫度自動控制。
腳本如下:
global.fan_control="auto"
3.2.2.2 運行階段
根據 global.fan_control 的值,執行不同的風機控制邏輯。
if(global.fan_control=="on"){
/*手動啟動*/
msg.payload=1
}elseif(global.fan_control=="off"){
/*手動停止*/
msg.payload=0
}else{
if(global.high_temp_anomaly==true){
/*高溫異常自動啟動*/
msg.payload=1
}else{
/*常溫自動停止*/
msg.payload=0
}
}
當控制標志不為 on 或 off 時,即為 auto 模式,此時,根據 global.high_temp_anomaly 高溫異常標志來決定是否啟動風機。
3.2.3 添加complete節點
配置如下,添加節點名稱 abnormal_monitoring。
同時為異常監測節點添加一個節點名稱 abnormal_monitoring。
3.2.4 下載流圖
默認控制模式為 auto,并且默認高溫預警溫度為 30℃,通過外部熱風機加熱空氣溫度,觀察運行情況。
可以看到當溫度達到預警溫度時,警報燈亮起,同時風扇也跟隨啟動進行降溫。
4.遠程控制
上一期已經實現了數據上報至物聯網云平臺,本期為系統添加遠程控制功能,其中包括3個控制命令:
- 高溫預警值配置(high_temp)
- 低溫預警值配置(low_temp)
- 風機控制(fan_control)
4.1 云端添加命令
需要在物聯網云平臺(ZWS)添加所需控制命令,登錄到:
https://www.zlgcloud.com4.1.1 添加風機控制命令打開設備類型頁面。
點擊編輯 iot_mpc_zc1 類型。
選擇?設備控制設置?頁面,并添加 fan_control 風機控制命令,如下所示。
為風機控制命令添加參數,如下所示。
總共3個參數選項 on、off、auto,與風機控制腳本的控制標志一致。4.1.2 添加高低溫預警配置命令
同樣的操作,繼續添加高溫、低溫預警配置命令,如下所示。
添加高溫預警命令
高溫預警命令參數
添加低溫預警命令
低溫預警命令參數
4.1.3 所有新增命令如下
4.2響應遠程控制
要接收到遠程云平臺的控制命令,需要用到 zws_iot_data_in 節點。4.2.1 添加節點添加 zws_iot_data_in、to_json、log 到畫布中,如下所示:4.2.2 配置節點
為 zws_iot_data_in 綁定一個配置,選擇 zws_iot,與 zws_iot_data_out 使用同一個配置。
4.2.3 運行測試點擊運行,驗證接收功能。
4.2.4 下發命令打開設備列表。進入設備詳情。進入設備控制頁面,并下發風機啟動命令,如下所示。點擊發送,確保發送成功。此時,可以看到接收到云端下發的命令和參數。
4.2.5 添加解析節點
添加一個新的 fscript 節點,用于解析云端命令。
4.2.6 添加解析腳本
添加腳本,解析云平臺下發的命令,同時將腳本節點命名為 fan_control,后續可用于觸發風機控制數據流。
if(msg.name=="high_temp"){
global.high_temp=f32(msg.value)
}elseif(msg.name=="low_temp"){
global.low_temp=f32(msg.value)
}elseif(msg.name=="fan_control"){
global.fan_control=msg.value
}else{
aborted=1
}
腳本通過判斷命令名稱 msg.name,來解析下發的命令,同時通過 global 對象修改對應的全局變量。同時為風機控制數據流的 complete 節點添加一個監測節點名稱 fan_control,如下所示。
4.2.7 下載流圖
云端下發風機啟動命令,效果如下。
停止命令。
配置為自動模式。
外部施加熱風,觀察風機變化。
4.2.8 完成
至此,完成了遠程控制、智能降溫等業務。為了可以更加深入的體會 MPC-ZC1 和 EsDA 的應用開發,在下一期文章中,計劃將風機更換為大功率的廠房風機設備,真正地應用到實際場景中。
整理本期流圖如下。
ABOUT PRODUCT
相 關 產 品
-
IOT
+關注
關注
187文章
4203瀏覽量
196702
發布評論請先 登錄
相關推薦
評論