殷方園, 郭永平
(1. 空軍工程大學 防空反導學院, 陜西 西安 710038; 2. 寶雞文理學院 計算機學院, 陜西 寶雞 721016)
隨著人工智能、通訊技術、傳感器技術的快速發展,基于無人值守監測站的監控系統廣泛應用于工業現場、水文、災害點、農業等領域,為人們不間斷的提供遠程監測對象狀態變化信息,是數據分析和輔助決策的得力助手[1]。然而常見的監測預警系統都屬于B2B商業模式,是由專業的系統集成商開發的特定應用系統。典型監控系統由部署于現場的無人值守監測站、數據傳輸網絡和位于監控中心應用軟件三部分組成,需要有獨立的辦公空間、專門的服務器及專業安裝運維工作人員,建設成本和運行維護成本都很高。一些微型企業和個人用戶對智能的監測預警有著巨大的需求,如:小微企業對于營業場所、小型倉庫的安全,養殖個體戶對花圃苗圃、溫室大棚對土壤墑情、溫度的監測預警,個人用戶對住宅的燃氣泄漏、水管破裂的實施監測;喜歡養魚人對魚缸內的水質等項目的監測等等,但昂貴的建設和使用成本,制約著這部分需求的進一步發展。利用遠程監控系統的實現原理,設計一種基于云端的B2C的監測預警系統,將各種不同的用戶進行集中管理,滿足這部分用戶的需求。
本文以常見的安防系統中對溫濕度、煙霧、有害氣體指標監測為例,對其實現過程的技術關鍵點進行分析,設計一個基于云平臺的小型監測預警集中式管理平臺。
監測預警系統由部署監控現場的智能報警器、以云平臺服務器為硬件資源的監控數據中心及監測預警應用系統三個單元組成。智能報警器是監測預警系統的基礎單元,由傳感器節點、MCU節點及4G通訊模塊硬件組成,傳感器根據電路設計與單片機上GPIO引腳連接,通訊模塊和視頻通過串口集成在一起,完成監控現場數據采集與告警信息上報等功能[2]。監控數據中心使用的服務器使用阿里、華為、騰訊等企業提供的彈性云服務器,承擔著網絡端口、數據庫存儲和實時監測和預警服務[3]。智能報警器通訊模塊內置SIM卡插槽,通過SIM卡與三大運營商提供的無線通訊網絡與云端服務器連接,實現監測指標和設備運行狀態數據的傳送;終端用戶通過移動APP與數據中心進行通訊,完成設備注冊、信息接收、閾值設置等功能,其網絡結構如圖1所示。

圖1 監測預警系統網絡結構圖
監測預警系統數據處理流程如下,首先終端用戶根據說明書完成安裝智能報警器,安裝完成后,根據報警器提供的序列號使用專用APP根據報警器上的序列號和個人手機完成注冊功能,將注冊信息存入云端數據庫中;當采集到數據觸發異常,位于現場led屏開始閃爍,同時啟動蜂鳴器進行長鳴報警提醒現場工作人員,同時請求與位于云端的彈性云服務器SCOKET服務器建立連接,連接成功后,以字節流的方式將數據采集傳輸到服務器上,服務器對報文進行解析,根據解析后的站號,獲取終端用戶的預存的電話號碼,通過短信息或語音電話通知相關的工作人員,并將此次報警信息存儲到數據庫中。
監測預警系統硬件主要涉及智能報警器的設計,其余硬件如:服務器、用戶手持終端,均由專門的開發商提供。智能報警器硬件由傳感器單元、微控制單元(MCU)、通訊模塊、輸入輸出模塊和現場報警蜂鳴器組成。硬件組成結構,如圖2所示。

圖2 智能報警器硬件結構圖
智能報警器MCU采用STM32F407VET6作為主控芯片,芯片中擁有多個通用輸入/輸出端口、A/D轉換端口,及USART、SPI通訊接口,集成有復位電路、JTAG/SWD調試接口電路、晶振電路等眾多資源,能夠與傳感器模塊電路、外圍的LED液晶電路、蜂鳴器電路及4G通訊模塊連接[4]。傳感器模塊與開發主板外接的GPIO引腳相連接,傳感器將監測的環境因子轉化為MCU可識別處理的電信號或數字信號,通過A/D轉換模塊進行接收。示例項目選擇DHT11數字溫濕度傳感器、MQ-7傳感器煙霧濃度數據,并集成蜂鳴器和led輸出模塊,通訊模塊通過RJ485接口實現與MCU的通信連接。實物連接圖如圖3所示。

圖3 智能報警器實物連接圖
DHT11濕溫度傳感器的數據傳輸使用單總線數據格式,使用一個引腳完成輸入輸出的功能,DHT11每次獲取到的數據包含16bit的溫度數據,16 bit的濕度數據和8 bit校驗,共5個字節組成。MQ-7傳感器檢測可燃氣體和煙霧濃度數據。該傳感器中有較高靈敏度的氣敏電阻,空氣中的一些特殊氣體能夠改變它的電阻,電阻改變后會影響傳感器內部電壓,傳感器通過電壓的變動幅度來改變模擬信號來反映特殊氣體濃度數據。
監控系統中軟件包括智能報警器軟件、云端預警數據處理軟件和客戶端預警接收APP三部分。
智能報警器軟件開發包括基于傳感器數據采集程序和對采集的數據標準化程序,即按照傳輸規約將數據封裝程報文。此類軟件是基于Keil uVision5開發環境,使用C語言嵌入式編程[5]。開發時需要根據傳感器工作原理和電路設計,開發數據獲取程序,再根據傳輸規約生成報文,傳輸到上位機上。傳感器數據采集軟件以溫濕度數據采集為例,執行過程如下,首先由MCU完成初始化,將通信引腳設置為輸出模式,再將通信引腳的電平拉低,持續20 ms,然后再將引腳電平置為到電平保持大概30 us,完成信號發送工作,等待DHT11響應,再將通信引腳設為輸入模式,DHT11能夠響應會自動降低電平45us左右,然后升高電平并保持大概45 us,則獲取到的溫濕度數據以及校驗數據,最后將數據轉換為可以識別的數字。處理代碼如下:
void init_dht11(void)//初始化
{
Dht11_output(); //使PG9變為輸出模式
PGout(9) = 0; //讓PG9變為低電平,持續20 ms
delay_ms(20);
PGout(9) = 1; //讓PG9變為高電平,持續30 us
delay_us(30);
Dht11_input(); //使PG9變為輸入模式
}
uint32_t dht11_read_data(uint8_t* data) //讀取數據
{
uint32_ti= 0;
uint8_t check_sum = 0;
for (i=0;i<5;i++){
data[i] = dht_read_byte();
}
check_sum = data[0] + data[1] + data[2] + data[3];
if (check_sum != data[4]){
return 1;
}
else {
return 0;
}
}
void Trans_Data(uint64_t Data,uint8_t **buffer) //完成數據轉換
{
*buffer[0] = (Data<<40)>>56 ; //溫度的整數部分
*buffer[1] = (Data<<48)>>56 ; //溫度的小數部分
*buffer[2] = (Data<<24)>>56 ; //濕度的整數部分
*buffer[3] = (Data<<32)>>56 ; //濕度的小數部分
*buffer[4] = (Data<<56)>>56 ; //數據的檢驗位
}
采集的數據標準化程序是在傳感器數據采集軟件完成數據轉換后,根據閾值判斷是否報警,并通過LED閃爍和蜂鳴器長鳴進行現場報警。采集的數據標準化是將預警信息格式化,按照傳輸規約編成報文,以字節流的方式向數據中心發送信息。傳輸規約是一種包含了地址碼、數據區和校驗位的下位機和上位機約定的數據結構[6],上位機根據規約中的數據結構進行報文字節流的截取及轉換,將報文轉換為人們可以識別的信息。采集的數據標準化程序同時完成由通訊值守程序下達的監測指標閾值報文信息的轉換與存儲,報警器與云端服務器傳輸數據,如表1所示。

表1 報警器4 G數據傳輸規約
通訊值守程序是安裝在云端服務器上的數據接收程序,完成接收、解譯、存儲并通過GSM短信和語音電話通知相關工作人員。通訊值守軟件的開發環境使用C#開發語言,通過socket與報警器數據傳輸模塊建立TCP/IP 通訊,獲取報警器推送的報警信息,主要包括創建SCOKET對象、初始化監聽、與報警器節點建立連接、接收數據、數據校驗、報文解譯、數據存儲及報警信息發布等環節。值守程序靜態類,如圖4所示。

圖4 通訊值守程序靜態類圖
服務主程序是值守程序的主入口和人機交互操作界面,主程序初始化創建報文接收對象,啟動SCOKET監聽服務。報文接收類負責報文接收及后續處理過程的組織,首先通過接受連接請求的回調函數中完成報文的接收,調用報文解譯對象對報文進行校驗和解譯,解譯完成通過用戶注冊的報警器序列號與聯系人的電話號碼,語音電話和GSM短信息將報警信息通知聯系人,再通過數據操作類將數據存入數據庫中,供終端用戶查詢。短信和語音電話兩個類各自封裝了各自的信息發布業務邏輯。各個類各司其職、功能單一,滿足面向對象的單一職責原則,為了考慮報文解譯時傳輸規約的變化,報文接收類依賴于報文接口,而不依賴于具體的傳輸規約,同時預警信息的發布,采用觀察者模式,提高了系統的擴展性和可維護性;在報文解譯和編制的過程中,通常涉及一些數制轉換等通用方法,將其封裝到一個獨立的數制轉換類中,完成具體的報文解譯程序靜態調用,提高了代碼的復用性。
應用程序是面向終端用戶和運營服務人員,是一款基于數據庫移動APP系統,數據庫管理系統使用mySQL數據庫、程序后端服務開發采用java開發語言,使用SSM框架開發的前后端完全分離應用服務,前端使用vue+vant框架開發的WEBAPP。終端用戶功能包括智能報警器信息注冊、注冊信息修改、監測閾值的設置、報警歷史數據查詢、使用情況反饋五個功能模塊;運營服務人員用于對設備運行狀態,如:運行電壓、預警歷史信息查詢、用戶使用情況反饋等。
基于云平臺監測預警系統中智能報警器硬件結構簡單,安裝方便,無需專業人員進行上門安裝,通過手機APP完成注冊,通過現場、手機兩種告警方式通知到終端用戶;數據中心有專業人員完成對設備運行狀態進行實時監測,確保系統正常運行,實現了一種B2C的監測預警實現模式。