嵌入式智能物聯(lián)網(wǎng)設(shè)備,不僅要采集上報(bào)數(shù)據(jù),還應(yīng)該具備遠(yuǎn)程控制、邊緣計(jì)算、自動(dòng)響應(yīng)事件等能力,達(dá)到智能化、快響應(yīng)等效果。
簡介
業(yè)務(wù)擴(kuò)展
本項(xiàng)目通過控制風(fēng)機(jī)轉(zhuǎn)動(dòng),帶動(dòng)空氣流動(dòng),從而達(dá)到降溫的效果,這也是最常用的降溫方案。常見于設(shè)備機(jī)柜、廠房等場(chǎng)景。
一、硬件連接
在原有的電路基礎(chǔ)上,增加了一個(gè)風(fēng)機(jī)驅(qū)動(dòng)電路,如下圖所示。
![eea6abb6-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KmAWvUkAABWjHe0xzo956.png)
實(shí)物連接圖如下。
風(fēng)機(jī)的控制根據(jù)所選風(fēng)機(jī)的類型,有多種方式,如直接DO開關(guān)、RS485通信控制等。此處選用DO輸出,直接控制風(fēng)機(jī)開關(guān)。
1. 節(jié)點(diǎn)介紹1.1 gpio_outgpio_out 節(jié)點(diǎn),提供了 GPIO 輸出節(jié)點(diǎn),可以根據(jù)需求輸出對(duì)應(yīng)電平信號(hào)。
1.1.1 屬性
-
名稱(name):節(jié)點(diǎn)名稱,用于索引查找本節(jié)點(diǎn);
-
顯示名稱(displayName):用于畫布上顯示的名稱;
-
GPIO序號(hào)(gpio_id):GPIO引腳ID;
-
模式(mode):GPIO輸出模式(推挽、開漏…);
-
初始狀態(tài)(init_stat):引腳初始輸出狀態(tài)。
1.1.2輸入
- msg.payload:指定輸出狀態(tài),0:低電平,1:高電平。
通過簡單的腳本控制 gpio_out 節(jié)點(diǎn)驅(qū)動(dòng)外部風(fēng)機(jī)。
2.1 添加節(jié)點(diǎn)
在已有的流圖中添加 timer、fscript、gpio_out 節(jié)點(diǎn)到畫布中。
![ef523fda-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KmAf_eqAAAkD5Rrelw444.png)
fscript 配置如下,保持輸出高電平。
![ef8c3550-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KmAFtL1AABiTjWaJ7g448.png)
gpio_out 配置如下。
![efaa9c7a-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KmAY2DoAAAwFFEwY4Q894.png)
- GPIO序號(hào)(gpio_id):P4.9;
- 模式(mode):push pull(推挽輸出);
- 初始狀態(tài)(init_stat):low(初始低電平)。
![efd16cb0-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KmABBcvAAALPyvBMp0367.png)
可以看到風(fēng)扇已經(jīng)被驅(qū)動(dòng)起來。
![efe361b8-397b-11ed-9e49-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KqAGhWpAE0NoWmyp3g215.gif)
3. 風(fēng)機(jī)智能控制
風(fēng)機(jī)智能化控制,主要實(shí)現(xiàn)兩個(gè)基礎(chǔ)功能:- 根據(jù)高溫信號(hào),自動(dòng)啟動(dòng)進(jìn)行降溫;
- 支持手動(dòng)啟動(dòng)。
3.1.1 屬性
![f239cff6-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KqAVTkcAAArlfuvq2w692.png)
-
名稱(name):節(jié)點(diǎn)名稱,用于索引查找本節(jié)點(diǎn);
-
顯示名稱(displayName):用于畫布上顯示的名稱;
-
監(jiān)控節(jié)點(diǎn)(monitored_nodes):指定需要監(jiān)控的節(jié)點(diǎn)名稱(json格式)。
3.1.2 輸出
僅觸發(fā)向下一節(jié)點(diǎn)執(zhí)行,并不會(huì)傳遞任何數(shù)據(jù)。
3.2 流圖測(cè)試
![f24bce40-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KqAB726AALefwLK3tQ371.png)
/*初始化高溫預(yù)警環(huán)境變量*/
global.high_temp=30
/*初始化低溫預(yù)警環(huán)境變量*/
global.low_temp=15
/*高溫異常信號(hào)*/
global.high_temp_anomaly=false
/*低溫異常信號(hào)*/
global.low_temp_anomaly=false
3.2.1.2 運(yùn)行階段
增加對(duì)高低溫異常標(biāo)志的處理,如下所示。
/*實(shí)際溫度與高溫預(yù)警溫度溫差*/
temp_diff=msg.temperature-global.high_temp
/*溫度超過高溫預(yù)警值,標(biāo)記高溫異常*/
if(temp_diff>=0.3){
global.high_temp_anomaly=true
}elseif(temp_diff<=?-0.3)?{
global.high_temp_anomaly=false
}
/*實(shí)際溫度與低溫預(yù)警溫度溫差*/
temp_diff=msg.temperature-global.low_temp
/*溫度低于低溫預(yù)警值,標(biāo)記低溫異常*/
if(temp_diff<=?-0.3)?{
global.low_temp_anomaly=true
}elseif(temp_diff>=0.3){
global.low_temp_anomaly=false
}
/*輸出報(bào)警信號(hào)*/
if(global.high_temp_anomaly||global.low_temp_anomaly){
output.payload=1
}else{
output.payload=0
* 其中±0.3 的溫差幅度,是為了擴(kuò)大判定邊界,起到軟件濾波的效果,避免邊緣狀態(tài)引起頻繁開關(guān)的情況。
3.2.2 完善風(fēng)機(jī)控制邏輯為了后續(xù)更好地接收遠(yuǎn)程控制請(qǐng)求,需要將風(fēng)機(jī)控制模塊的業(yè)務(wù)邏輯進(jìn)一步完善。3.2.2.1 初始階段
聲明一個(gè) global.fan_control 全局控制標(biāo)志,用于控制風(fēng)機(jī)運(yùn)轉(zhuǎn)狀態(tài),總共包括以下3個(gè)狀態(tài):
-
on:手動(dòng)啟動(dòng)風(fēng)機(jī);
-
off:手動(dòng)關(guān)閉風(fēng)機(jī)
-
auto:根據(jù)溫度自動(dòng)控制。
腳本如下:
global.fan_control="auto"
3.2.2.2 運(yùn)行階段
根據(jù) global.fan_control 的值,執(zhí)行不同的風(fēng)機(jī)控制邏輯。![f2daeefe-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KuAI8NIAADQjf5ZneI323.png)
if(global.fan_control=="on"){
/*手動(dòng)啟動(dòng)*/
msg.payload=1
}elseif(global.fan_control=="off"){
/*手動(dòng)停止*/
msg.payload=0
}else{
if(global.high_temp_anomaly==true){
/*高溫異常自動(dòng)啟動(dòng)*/
msg.payload=1
}else{
/*常溫自動(dòng)停止*/
msg.payload=0
}
}
當(dāng)控制標(biāo)志不為 on 或 off 時(shí),即為 auto 模式,此時(shí),根據(jù) global.high_temp_anomaly 高溫異常標(biāo)志來決定是否啟動(dòng)風(fēng)機(jī)。
3.2.3 添加complete節(jié)點(diǎn)
配置如下,添加節(jié)點(diǎn)名稱 abnormal_monitoring。
同時(shí)為異常監(jiān)測(cè)節(jié)點(diǎn)添加一個(gè)節(jié)點(diǎn)名稱 abnormal_monitoring。
3.2.4 下載流圖
默認(rèn)控制模式為 auto,并且默認(rèn)高溫預(yù)警溫度為 30℃,通過外部熱風(fēng)機(jī)加熱空氣溫度,觀察運(yùn)行情況。
上一期已經(jīng)實(shí)現(xiàn)了數(shù)據(jù)上報(bào)至物聯(lián)網(wǎng)云平臺(tái),本期為系統(tǒng)添加遠(yuǎn)程控制功能,其中包括3個(gè)控制命令:
- 高溫預(yù)警值配置(high_temp)
- 低溫預(yù)警值配置(low_temp)
- 風(fēng)機(jī)控制(fan_control)
4.1 云端添加命令
需要在物聯(lián)網(wǎng)云平臺(tái)(ZWS)添加所需控制命令,登錄到:
https://www.zlgcloud.com4.1.1 添加風(fēng)機(jī)控制命令打開設(shè)備類型頁面。
點(diǎn)擊編輯 iot_mpc_zc1 類型。
![f69d3b1e-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KyAX5wMAAAoyN7zG1I800.png)
選擇設(shè)備控制設(shè)置頁面,并添加 fan_control 風(fēng)機(jī)控制命令,如下所示。
為風(fēng)機(jī)控制命令添加參數(shù),如下所示。
![f7774db8-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KyADQLSAAB8StCIVsQ410.png)
總共3個(gè)參數(shù)選項(xiàng) on、off、auto,與風(fēng)機(jī)控制腳本的控制標(biāo)志一致。4.1.2 添加高低溫預(yù)警配置命令
同樣的操作,繼續(xù)添加高溫、低溫預(yù)警配置命令,如下所示。
添加高溫預(yù)警命令
![f79375a6-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KyAaDbSAABEoQqe3uo783.png)
高溫預(yù)警命令參數(shù)
![f7d048aa-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3K2AVn6zAABlH7OJRSM901.png)
添加低溫預(yù)警命令
低溫預(yù)警命令參數(shù)
4.1.3 所有新增命令如下
![f81fb458-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3K2AFphvAABajZNFbvA539.png)
4.2響應(yīng)遠(yuǎn)程控制
![f873f1bc-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3K2ANA90AAGoqSxJQD4342.png)
4.2.2 配置節(jié)點(diǎn)
為 zws_iot_data_in 綁定一個(gè)配置,選擇 zws_iot,與 zws_iot_data_out 使用同一個(gè)配置。
![f924b056-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3K2AVEePAABhw1kerbo969.png)
進(jìn)入設(shè)備詳情。
![f93fe0c4-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3K2AVB8gAAAxbleaZgE048.png)
進(jìn)入設(shè)備控制頁面,并下發(fā)風(fēng)機(jī)啟動(dòng)命令,如下所示。
![f955fe54-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3K6AJfEKAADrR0DpWd8033.png)
點(diǎn)擊發(fā)送,確保發(fā)送成功。
![f9ab1aec-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3K6AJXg2AAC_wV26uVY901.png)
此時(shí),可以看到接收到云端下發(fā)的命令和參數(shù)。
![f9c4cd02-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/87/wKgZomTt3K6ANAEnAACEj9TScJo304.png)
4.2.5 添加解析節(jié)點(diǎn)
添加一個(gè)新的 fscript 節(jié)點(diǎn),用于解析云端命令。
4.2.6 添加解析腳本
![fa2674e4-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/87/wKgZomTt3K6AVdmfAADgey2qccw709.png)
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,來解析下發(fā)的命令,同時(shí)通過 global 對(duì)象修改對(duì)應(yīng)的全局變量。同時(shí)為風(fēng)機(jī)控制數(shù)據(jù)流的 complete 節(jié)點(diǎn)添加一個(gè)監(jiān)測(cè)節(jié)點(diǎn)名稱 fan_control,如下所示。
云端下發(fā)風(fēng)機(jī)啟動(dòng)命令,效果如下。
停止命令。
![fbf353be-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/87/wKgZomTt3K-AXXm6AABXevn3hvM117.png)
配置為自動(dòng)模式。
外部施加熱風(fēng),觀察風(fēng)機(jī)變化。
![f40f6fb6-397b-11ed-9e49-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/A0/86/wKgZomTt3KyAcVjAAEwksqkXQzM521.gif)
4.2.8 完成
至此,完成了遠(yuǎn)程控制、智能降溫等業(yè)務(wù)。為了可以更加深入的體會(huì) MPC-ZC1 和 EsDA 的應(yīng)用開發(fā),在下一期文章中,計(jì)劃將風(fēng)機(jī)更換為大功率的廠房風(fēng)機(jī)設(shè)備,真正地應(yīng)用到實(shí)際場(chǎng)景中。
整理本期流圖如下。
![ff63a5c6-397b-11ed-9e49-dac502259ad0.png](https://file1.elecfans.com//web2/M00/A0/87/wKgZomTt3LCAWf9aAAIIdNB0iB8377.png)
審核編輯:湯梓紅
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6658瀏覽量
110884 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2913文章
44923瀏覽量
376988
原文標(biāo)題:EsDA MPC-ZC1 應(yīng)用——IoT 監(jiān)測(cè)控制系統(tǒng)(二)
文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于PAC的核能發(fā)電廠的維護(hù)和監(jiān)測(cè)控制系統(tǒng)(國外)
【Tisan物聯(lián)網(wǎng)申請(qǐng)】物聯(lián)網(wǎng)跑步機(jī)控制系統(tǒng)
【Tisan物聯(lián)網(wǎng)申請(qǐng)】基于物聯(lián)網(wǎng)小車控制系統(tǒng)
【Tisan物聯(lián)網(wǎng)申請(qǐng)】基于智能家居遠(yuǎn)程控制系統(tǒng)
【GoKit申請(qǐng)】基于物聯(lián)網(wǎng)技術(shù)的無線智能家居控制系統(tǒng)
【W(wǎng)RTnode2R申請(qǐng)】基于物聯(lián)網(wǎng)技術(shù)的無線智能家居控制系統(tǒng)
【Tisan物聯(lián)網(wǎng)申請(qǐng)】智能娛樂學(xué)習(xí)控制系統(tǒng)
求一種物聯(lián)網(wǎng)傳感器的解決方案
設(shè)備聯(lián)網(wǎng)、數(shù)據(jù)監(jiān)測(cè)和采集、傳感控制等信息化整體解決方案
(畢業(yè)設(shè)計(jì)資料)基于單片機(jī)智能液位水位監(jiān)測(cè)控制系統(tǒng)設(shè)計(jì)
![(畢業(yè)設(shè)計(jì)資料)基于單片機(jī)智能液位水位<b class='flag-5'>監(jiān)測(cè)控制系統(tǒng)</b>設(shè)計(jì)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于MPC-ZC1工控單板的物聯(lián)網(wǎng)監(jiān)測(cè)控制系統(tǒng)設(shè)計(jì)
基于工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)的鹽田遠(yuǎn)程監(jiān)測(cè)控制系統(tǒng)解決方案
![基于工業(yè)<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>網(wǎng)關(guān)的鹽田遠(yuǎn)程<b class='flag-5'>監(jiān)測(cè)控制系統(tǒng)</b><b class='flag-5'>解決方案</b>](https://file.elecfans.com/web2/M00/52/70/pYYBAGLLyhqAVmYRAAbXfP1kjRI408.png)
EsDA MPC-ZC1 應(yīng)用——IoT 監(jiān)測(cè)控制系統(tǒng)(二)
![EsDA MPC-ZC1 應(yīng)用——IoT <b class='flag-5'>監(jiān)測(cè)控制系統(tǒng)</b>(二)](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
基于藍(lán)蜂物聯(lián)網(wǎng)關(guān)的智慧農(nóng)業(yè)遠(yuǎn)程監(jiān)控與管理控制系統(tǒng)解決方案
![基于藍(lán)蜂<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>關(guān)的智慧農(nóng)業(yè)遠(yuǎn)程監(jiān)控與管理<b class='flag-5'>控制系統(tǒng)</b><b class='flag-5'>解決方案</b>](https://file1.elecfans.com/web2/M00/C2/1D/wKgZomXgMOyALILmAAX3jbLXq_Q893.png)
評(píng)論