環(huán)境監(jiān)測系統(tǒng)上電后會開始進行系統(tǒng)變量初始化。這個階段環(huán)境監(jiān)測系統(tǒng)會初始化所有全局變量、數(shù)據(jù)結(jié)構(gòu)、創(chuàng)建最低優(yōu)先級空閑任務,創(chuàng)建6個空數(shù)據(jù)鏈表:空任務控制塊鏈表、空隊列控制塊鏈表、空事件控制塊鏈表、空標志組鏈表、空內(nèi)存控制塊鏈表、空閑定時器控制塊鏈表。初始化完系統(tǒng)變量后,先創(chuàng)建開始任務,由開始任務創(chuàng)建讀取傳感器任務、按鍵任務、主任務、LED任務、蜂鳴器任務、WiFi物聯(lián)任務。創(chuàng)建完后便開始掛起開始任務,然后初始化硬件,并開中斷。多任務管理器接下來會根據(jù)任務的優(yōu)先級在就緒表中查找優(yōu)先級最高的,并操作資源切換到該任務執(zhí)行,μC/OS-Ⅱ系統(tǒng)通過定時中斷的方式實現(xiàn)。每個時鐘節(jié)拍到來,就會進入一次定時中斷。中斷后監(jiān)測是否有重要任務需要運行并進行任務切換,運行新的任務或者繼續(xù)運行本任務,確保實時性。
環(huán)境監(jiān)測系統(tǒng)是通過WiFi模塊與MCU以串口通信來實現(xiàn)的,所以要在MCU端根據(jù)編寫串口事件來解析接收的數(shù)據(jù)包以及發(fā)送數(shù)據(jù)到系統(tǒng)平臺如圖所示。
按照通信協(xié)議,環(huán)境監(jiān)測系統(tǒng)發(fā)送的數(shù)據(jù)也有按照協(xié)議封裝在數(shù)據(jù)幀里,以便WiFi端或系統(tǒng)平臺端識別。數(shù)據(jù)區(qū)的只讀數(shù)據(jù),包含了監(jiān)測環(huán)境質(zhì)量的參數(shù),用結(jié)構(gòu)體封裝起來,方便管理。根據(jù)設(shè)備需求,首先需要注冊、登錄、找回密碼、修改密碼、設(shè)備查找、配置設(shè)備、設(shè)備登錄以及設(shè)備數(shù)據(jù)顯示控制等功能如圖所示。環(huán)境監(jiān)測系統(tǒng)平臺的API提供有匿名、手機號碼、郵箱三種注冊方式,該環(huán)境監(jiān)測系統(tǒng)的APP設(shè)計為郵箱注冊。