本文將基于 MPC-ZC1 工控單板,通過 EsDA 設計工具,分享如何搭建出一個常用的物聯(lián)網(wǎng)監(jiān)測控制系統(tǒng)。
簡介
在大多數(shù)嵌入式物聯(lián)網(wǎng)應用場景中,溫度、濕度、電壓、電流等基本數(shù)據(jù)的采集是必不可少的。且需將數(shù)據(jù)上報至物聯(lián)網(wǎng)平臺,并支持云端遠程控制。對于安全性、實時性要求較高的場合,還需要支持本地數(shù)據(jù)處理和及時響應。本文將基于MPC-ZC1工控單板,通過EsDA設計工具,搭建出一個常用的物聯(lián)網(wǎng)監(jiān)測控制系統(tǒng)。
前期準備
可通過 EsDA MPC-ZC1 系列文章,掌握 EsDA 開發(fā)流程:
一、項目需求
項目開發(fā)前,先對項目需求進行梳理和拆解,主要有以下幾點:
-
采集溫濕度數(shù)據(jù);
-
溫度異常報警;
-
數(shù)據(jù)上報云端物聯(lián)網(wǎng)平臺;
-
控制風機降溫;
-
接收云端控制命令。
根據(jù)項目需求,大致將系統(tǒng)劃分為以下幾大模塊:
1. 溫濕度采集
- 采集環(huán)境溫濕度;
- 可配置周期性采集。
-
可配置警報溫度閾值;
-
輸出高溫異常警報提示;
-
輸出低溫異常警報提示。
-
接入物聯(lián)網(wǎng)平臺;
-
上報數(shù)據(jù)至云平臺;
-
接收云平臺控制命令;
- 組態(tài)設計。
- 可配置降溫溫度閾值;
- 控制風機開關(guān)。
一、溫濕度采集
本項目選用通用的 RS485 接口溫濕度變送器來實現(xiàn)溫濕度采集,該設備使用 Modbus RTU 通信協(xié)議。AWFlow 集成了通用的 RS485 溫濕度變送器節(jié)點,包括 modbus_master_rtu 、th_transmitter_in 2個節(jié)點。1. 節(jié)點介紹
1.1 modbus_master_rtuModbus RTU 主機(客戶端)配置節(jié)點,屬于隱式節(jié)點,不會被顯示在畫布中,需要配套對應的功能節(jié)點一起使用。該節(jié)點提供了Modbus RTU 主機通信服務。1.1.1 屬性

-
名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
-
顯示名稱(displayName):用于畫布上顯示的名稱;
-
端口(port):用于索引串口設備;
-
波特率(baudrate):串口波特率參數(shù);
-
數(shù)據(jù)位(bytesize):數(shù)據(jù)位參數(shù);
-
校驗位(parity):串口奇偶校驗位參數(shù);
-
停止位(stopbits):串口停止位參數(shù);
-
響應超時(respond_timeout):通信應答超時時間。
* 配置節(jié)點(config類型)只存在節(jié)點屬性,不具備輸入輸出功能。
1.2 th_transmitter_in
通用 Modbus RTU 溫濕度變送器節(jié)點,負責讀取指定從機設備溫濕度數(shù)據(jù)。1.2.1 屬性
-
名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
-
顯示名稱(displayName):用于畫布上顯示的名稱;
-
modbus配置參數(shù)(modbus):綁定一個Modbus RTU配置節(jié)點;
-
從機ID(slave_id):從機(服務端)地址;
-
濕度寄存器地址(humidity_addr):濕度數(shù)據(jù)所在的寄存器地址;
-
輸出周期(period):輪詢讀取寄存器數(shù)據(jù)的周期。
1.2.2 輸入
* pump類型節(jié)點通常不具備數(shù)據(jù)輸入。
1.2.3 輸出- slaveID:從機(服務端)地址,通常用于后級節(jié)點區(qū)別設備;
- temperature:溫度數(shù)據(jù),float 類型;
- humidity:濕度數(shù)據(jù),float 類型。
1.3 to_json
由于 th_transmitter_in 節(jié)點是以 temperature 和 humidity 屬性輸出數(shù)據(jù),不能直接使用 log 節(jié)點輸出到調(diào)試窗口,所以我們通過 to_json 將屬性轉(zhuǎn)換成 json 數(shù)據(jù)進行輸出。1.3.1 屬性

-
名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
-
顯示名稱(displayName):用于畫布上顯示的名稱;
-
模板(template):可指定字符進行替換操作。
-
msg:用于轉(zhuǎn)換的對象
-
payload:轉(zhuǎn)換后的 json 字符串數(shù)據(jù);
-
payloadType:數(shù)據(jù)類型,json;
-
payloadLength:數(shù)據(jù)長度。
我們將溫濕度數(shù)據(jù)采集并打印到調(diào)試窗口,驗證數(shù)據(jù)的正確性。
2.1 添加節(jié)點
添加 th_transmitter_in、to_json、log 節(jié)點到畫布上。
2.2 配置節(jié)點
雙擊 th_transmitter_in 節(jié)點,打開屬性面板。
選擇“添加新的 modbus_master_rtu 節(jié)點”,點擊編輯配置,進入配置節(jié)點屬性面板。

-
端口:Uart1
-
波特率:9600
-
數(shù)據(jù)位:8bits
-
校驗位:None
-
停止位:1bits
-
響應時間:0
-
從機ID:1
-
溫度寄存器地址:0
-
濕度寄存器地址:1
-
輸出周期:1000
可以看到已經(jīng)創(chuàng)建了一個新的配置節(jié)點,名為 modbus_master_rtu。同時配置傳感器從機地址和寄存器地址,點擊完成,完成節(jié)點配置。
* 傳感器從機ID、寄存器地址可根據(jù)實際產(chǎn)品手冊進行配置。
2.3 繪制流圖
連接 th_transmitter_in、to_json、log 節(jié)點。

2.4 下載驗證
確保硬件正確連接。
選擇流圖下載接口,并點擊運行按鈕。


完成流圖下載,通過調(diào)試窗口可以看到讀回的傳感器數(shù)據(jù)。

二、異常警報
這里以實現(xiàn)對高溫、低溫2個閾值的監(jiān)測,作為異常警報條件,以一個紅色LED作為警報提示。此處,需要用到 fscript、led 2個節(jié)點來實現(xiàn)異常警報業(yè)務。* fscript、led 節(jié)點使用可參考以往教程。
1. 添加節(jié)點添加 fscript、led 節(jié)點到畫布上。
2. 配置節(jié)點
雙擊 fscript 節(jié)點,打開屬性面板,這里需要配置 Initialize、Function 2個階段的腳本。
/* 初始化高溫預警環(huán)境變量*/
global.high_temp = 30
/* 初始化低溫預警環(huán)境變量*/
global.low_temp = 15
在腳本加載階段,初始化了2個變量,分別為 high_temp 和 low_temp,用于保存高溫預警和低溫預警的溫度判定值。此處使用 global 對象的屬性來做為變量,相當于全局的環(huán)境變量。后續(xù)可以通過其他腳本來訪問和修改此2個變量,為后續(xù)可以動態(tài)修改這2個參數(shù)做準備。
/* 當溫度大于高溫閾值 或 低于低溫閾值,則屬于異常 */
if (msg.temperature >= global.high_temp ||
msg.temperature <= global.low_temp) {
/* 點亮警報信號 */
output.payload = 1
} else {
/* 熄滅報警信號 */
output.payload = 0
}
腳本運行階段,通過判斷輸入的溫度值 msg.temperature 是否超過預警值邊界,如超過,則向后級節(jié)點輸出有效預警信號,否則輸出無效信號。
led 節(jié)點配置為紅色LED。
3.繪制流圖
連接 th_transmitter_in、fscript、led節(jié)點。
4. 下載驗證
選擇流圖下載接口,并點擊運行按鈕。


完成流圖下載,通過外部暖風機加熱周圍空氣,可以看到溫度值逐漸上升。
當超過高溫預警值(30℃)時,紅色LED被點亮。
三、云端監(jiān)控
云端監(jiān)控業(yè)務,需要實現(xiàn)設備接入、上報數(shù)據(jù)、遠程控制 3部分功能。
本項目,選擇同為 EsDA 組成部分的 ZWS(ZLG物聯(lián)網(wǎng)平臺)作為云服務平臺。
* 可通過ZLG物聯(lián)網(wǎng)平臺教程深入學習 ZWS 的應用:https://www.zlgcloud.com/index.html#/home/service
1.接入云端登錄https://www.zlgcloud.com/
1.1 ZWS-創(chuàng)建設備1.1.1 創(chuàng)建設備類型
打開設備類型管理頁面。

點擊添加類型。

選擇basic模板,并將新設備類型命名為iot_mpc_zc1 。

點擊確定,完成設備類型的創(chuàng)建。
1.1.2 添加設備打開設備列表頁面。

點擊添加設備。

選擇新建的 iot_mpc_zc1 類型,并將設備的名稱和ID命名為 mpc_zc1_0。

點擊保存,完成設備添加。

返回設備列表。

可以在設備列表中看到新添加的設備,并且設備處于離線狀態(tài)。

1.2 ZC1-連接云端
接入 ZWS 并上報數(shù)據(jù)需要使用到 zws_iot、zws_iot_data_out 2個節(jié)點。
1.2.1 zws_iot
zws_iot 配置節(jié)點,屬于隱式節(jié)點,不會被顯示在畫布中,需要配套對應的功能節(jié)點一起使用,主要用于配置 ZWS 服務所需參數(shù),并提供與 ZWS 云平臺通信的服務
1.2.1.1 屬性
-
名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
-
顯示名稱(displayName):用于畫布上顯示的名稱;
-
是否連接(connection_status):使能立即連接;
-
設備類型(dev_type):ZWS 三元組-設備類型;
-
設備ID(dev_id):ZWS 三元組-設備ID;
-
設備密鑰(dev_secret):ZWS 三元組-設備密鑰;
-
固件版本(firmware_version):設備固件版本,產(chǎn)品自定;
-
設備心跳周期(keep_alive_interval):心跳周期。
1.2.2 zws_iot_data_out
ZWS 數(shù)據(jù)上報節(jié)點,提供ZWS數(shù)據(jù)點上報服務。1.2.2.1 屬性
- 名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
- 顯示名稱(displayName):用于畫布上顯示的名稱;
- 設備配置(config):綁定一個 zws_iot 配置節(jié)點;
- 數(shù)據(jù)上報方式(output_type):選擇上報數(shù)據(jù)方式;
- 目標鍵值對(key_names):指定上報的數(shù)據(jù)點名稱。
-
payload:當上報方式為 RAW 類型時有效;
-
其他屬性:當與 key_names 匹配時有效。
添加 zws_iot_data_out 節(jié)點到畫布上。

② 配置節(jié)點
雙擊 zws_iot_data_out 節(jié)點,打開屬性面板。

選擇“添加新的 zws_iot 節(jié)點”,點擊編輯配置,進入配置節(jié)點屬性面板。

-
是否連接:conncected
-
設備類型:iot_mpc_zc1
-
設備ID:mpc_zc1_0
-
設備密鑰:以個人創(chuàng)建的設備密鑰為準

完成 zws_iot 參數(shù)配置,回到 zws_iot_data_out 配置界面。

選擇創(chuàng)建的配置 zws_iot,其他參數(shù)保持默認。
③ 繪制流圖連接 th_transmitter_in、zws_iot_data_out節(jié)點。

④ 下載驗證
選擇流圖下載接口,并點擊運行按鈕。

完成流圖下載,等待片刻,可以從ZWS平臺看到設備已經(jīng)上線。

ZWS 平臺需要配置與設備上報的數(shù)據(jù)對應的數(shù)據(jù)點,才能正確展示接收到的數(shù)據(jù)內(nèi)容。
2.1 ZWS-添加數(shù)據(jù)點2.1.1 添加溫度數(shù)據(jù)點打開設備類型頁面。
點擊編輯 iot_mpc_zc1 類型。

點擊添加新數(shù)據(jù)點。

添加溫度數(shù)據(jù)點,點擊保存。

2.1.2 添加濕度數(shù)據(jù)點
繼續(xù)添加濕度數(shù)據(jù)點。
2.2 ZC1-上報溫濕度
要在ZWS云平臺正確顯示出上報的數(shù)據(jù),則需要上報與添加的的數(shù)據(jù)點匹配的數(shù)據(jù)。
2.2.1 配置節(jié)點
雙擊 zws_iot_data_out 節(jié)點,打開屬性面板。

選擇 Key_Values 上報方式,同時配置 temperature,humidity 2個鍵名。
* temperature,humidity 鍵名必須與ZWS數(shù)據(jù)點一致。2.2.2 下載驗證保存并下載流圖。

完成流圖下載,等待設備上線。

進入設備詳情。

查看實時數(shù)據(jù)。
可以看到,溫度、濕度數(shù)據(jù)已經(jīng)可以正確上報。
至此,已經(jīng)完成了溫濕度采集、異常警報、數(shù)據(jù)上報等業(yè)務,將在后續(xù)章節(jié),繼續(xù)完成遠程控制、風機降溫、云端組態(tài)等業(yè)務。
最后整理已完成流圖,如下:



審核編輯:湯梓紅
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6953瀏覽量
114089 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47819瀏覽量
414863 -
ESDA
+關(guān)注
關(guān)注
0文章
28瀏覽量
7997
原文標題:【Z站推薦】EsDA MPC-ZC1 應用——IoT 監(jiān)測控制系統(tǒng)(一)
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
MPC-ZC1工控單板如何快速搭建出產(chǎn)線車間的智能風機控制系統(tǒng)
基于PAC的核能發(fā)電廠的維護和監(jiān)測控制系統(tǒng)(國外)
【Tisan物聯(lián)網(wǎng)申請】物聯(lián)網(wǎng)跑步機控制系統(tǒng)
【Tisan物聯(lián)網(wǎng)申請】基于物聯(lián)網(wǎng)小車控制系統(tǒng)
【GoKit申請】基于物聯(lián)網(wǎng)技術(shù)的無線智能家居控制系統(tǒng)
【W(wǎng)RTnode2R申請】基于物聯(lián)網(wǎng)技術(shù)的無線智能家居控制系統(tǒng)
(畢業(yè)設計資料)基于單片機智能液位水位監(jiān)測控制系統(tǒng)設計
通過EsDA工具和MPC-ZC1平臺實現(xiàn)串口MQTT服務器
基于工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān)的鹽田遠程監(jiān)測控制系統(tǒng)解決方案
EsDA MPC-ZC1 應用——串口服務器(一)
【Z站推薦】EsDA MPC-ZC1 應用——IoT 監(jiān)測控制系統(tǒng)(一)
EsDA MPC-ZC1 應用——IoT 監(jiān)測控制系統(tǒng)(二)
【Z站推薦】EsDA MPC-ZC1 應用——IoT 監(jiān)測控制系統(tǒng)(三)
基于MPC-ZC1工控單板的物聯(lián)網(wǎng)監(jiān)測控制系統(tǒng)設計
評論