物聯(lián)網技術的嵌入式礦下環(huán)境監(jiān)測系統(tǒng)設計
引言
本文引用地址:http://www.butianyuan.cn/article/201610/307688.htm在“感知中國”的物聯(lián)網技術全面發(fā)展的環(huán)境下,“感知礦山”是中國物聯(lián)網技術應用中重要的一環(huán),本設計所構建的系統(tǒng)主要完成對礦井下環(huán)境參數的監(jiān)測,實現井下工作人員的定位跟蹤、將收集的信息數據存儲并上傳到監(jiān)控中心,為煤礦企業(yè)的安全生產、管理者制定科學決策提供有效依據。該系統(tǒng)是一個集物聯(lián)網、互聯(lián)網、傳感器等技術于一體的綜合系統(tǒng),本文篇幅有限,主要闡述該系統(tǒng)的設計方案。
1 系統(tǒng)概述
1.1 系統(tǒng)構成及部署
基于物聯(lián)網技術的嵌入式礦下環(huán)境監(jiān)測系統(tǒng),是基于PC、Cortex—A8及Cortex-M0等設計,依托各項互聯(lián)網、物聯(lián)網、傳感器等技術實現,實現各個礦井井下環(huán)境的遠程監(jiān)測、人員位置跟蹤,以實現最大限度的礦井環(huán)境監(jiān)測。
系統(tǒng)分為三大模塊:服務器端(PC)、數據處理平臺(A8)和遠程環(huán)境監(jiān)測終端(M0)。
本系統(tǒng)在礦區(qū)的安裝布置方式如圖1所示。
煤礦的礦區(qū)特點是單個礦井縱深長,而范圍卻比較小,各個終端和數據處理中心進行連接時必須使用級聯(lián)的方式,各個終端相互之間進行逐級上報,M0采集模塊完成數據采集,通過ZigBee通信上報到A8前端數據處理中心,然后A8前端模塊集中將數據通過WEB方式提供給遠程PC后臺。
1.2 系統(tǒng)功能描述
系統(tǒng)實現的基本功能主要包括:M0終端安裝在礦井的縱深方向,各個M0終端通過ZigBee進行級聯(lián),實現整個礦井的分布式數據采集;M0終端實時采集礦下環(huán)境數據:溫度、濕度、瓦斯?jié)舛取FID刷卡數據;最靠近數據處理中心的M0終端、通過ZigBee通信,將采集到的環(huán)境數據及刷卡信息傳送給數據處理中心;數據處理中心(A8)接收到各個M0終端采集的數據后進行統(tǒng)一處理(存儲、轉發(fā)、產生報警信息、更新到核心服務器端);數據處理中心(A8)通過GPRS模塊向綁定的手機發(fā)送報警信息;數據處理中心(A8)構建嵌入式WEB服務器,用戶通過網絡和PC進行監(jiān)控,并進行相應的參數設置;服務器PC端為總的數據處理后臺,通過網絡連接到各個A8數據處理中心,下載各個數據中心數據以進行二次數據處理。
1.3 系統(tǒng)通信方式
在本系統(tǒng)中,三個模塊間使用了以下幾種通信方式。
PC后臺和A8數據處理中心之間:使用WEB服務的方式,由A8數據處理中心構建的嵌入式WEB服務器,在模塊內實現簡單的控制網頁,PC通過普通網頁的方式進行模塊的訪問和控制。
A8數據處理中心和M0數據采集模塊之間:使用ZigBee短程無線的方式進行數據的傳輸和模塊的控制。
A8模塊和手機之間:A8模塊連接一個GPRS模塊,目前主要使用短信的方式,在緊急事件發(fā)生時,向用戶手機發(fā)出短信;同時GPRS模塊也可以提供數據連接方式,實現手機端的WEB訪問。
各個M0數據采集模塊之間:使用ZigBee短程無線通信,在深井內的M0模塊由于距離過長,無法和A8進行通信,所以必須使用級聯(lián)的方式,通過相鄰的M0模塊進行逐級上報。
2 數據處理中心(A8)
基于Cortex-A8的數據處理中心模塊,需要實現與PC的WEB連接、與各個采集模塊的ZigBee通信、與手機的GPRS通信,為此使用基于ARMv7的Cortex—A8內核的高性能嵌入式處理器,構建嵌入式Linux系統(tǒng),并在此基礎上構建嵌入式WEB服務器以實現遠端連接,移植QT圖像界面以實現本地化的簡單控制。
2.1 系統(tǒng)架構
數據處理中心模塊為一個完整的嵌入式Linux系統(tǒng),硬件設計上使用三星公司基于Cortex—A8內核ARMCPU S5PC100芯片作為主處理器,擴展SDRAM、Flash構成一個高性能的嵌入式控制板。在此基礎上使用Linux操作系統(tǒng)、QT圖形界面,以及BOA嵌入式WEB服務器,提供網頁連接方式。
模塊開發(fā)過程中,使用了華清遠見公司的S5PC100開發(fā)板進行軟件開發(fā)和系統(tǒng)評估,在開發(fā)板的基礎上通過UART串口擴展了ZigBee和GPRS模塊,硬件架構如圖2所示。
作為一個嵌入式系統(tǒng),系統(tǒng)的設計充分考慮了軟件的分層和模塊化設計方式,在評估板上移植了嵌入式Linux作為應用系統(tǒng),并為各個部分的硬件模塊編寫相應的Linux驅動,構成一個嵌入式Linux開發(fā)平臺,在此平臺上再進行應用程序的開發(fā),整個系統(tǒng)的層次結構如圖3所示。
2.2 平臺設計
這里所說的平臺,是在S5PC100開發(fā)板上構建一個嵌入式Linux平臺,分為內核層和驅動層兩個主要部分。其中,內核層完成Linux內核的裝載、啟動、根文件系統(tǒng)的掛載,包括u—boot啟動器、Linux內核、rootfs文件系統(tǒng)、yaffs文件系統(tǒng),而驅動層則是GPRS、LED、ZigBee等外部硬件設備的硬件驅動。
系統(tǒng)啟動時,從NAND Flash中啟動u—boot,通過u—boot從NAND Flash中裝載Linux內核鏡像,并掛載rootfs文件系統(tǒng)供內核使用。yaffs文件系統(tǒng)用于管理NAND Flash的余下分區(qū),作為數據存儲使用。
2.3 應用設計
(1)系統(tǒng)架構
數據處理中心(A8)需要不停讀取各個采集終端(M0)采集到的環(huán)境信息,根據環(huán)境信息決定是否產生報警信號(發(fā)短信、網頁通知、聲光報警等)并進行數據的保存。同時,還要響應PC后臺的網頁請求,提供后臺PC的無線訪問。
系統(tǒng)共設計了5個進程,描述如下:
①主進程負責采集數據,并做主要的事務處理,產生的數據及網頁報警信息通過共享內存和QT進程,記錄進程并交互;
②ZigBee進程負責按設定好的時間間隔從各個分板將數據讀回來,并通過消息隊列通知主進程;
③QT進程負責人機界面交互,從共享內存中讀取數據,顯示于LCD上,并處理用戶輸入,響應用戶操作;
④數據記錄進程,從共享內存中取得各項數據記錄于數據庫中;
⑤CGI程序為獨立的可執(zhí)行程序,從共享內存中讀取數據,響應網頁操作,并將網頁設置的值通過共享內存?zhèn)鬟f給主進程,進行事務的處理。
(2)HTML和QT界面設計
網頁頁面主要用來顯示相關信息,并提供設置選擇是否產生相應的報警信息。從安全角度考慮,進入系統(tǒng)之前,必須進行用戶校驗。用戶登錄進入系統(tǒng)后,可以通過左側選擇查看各個終端,右側設計為實時切換各個終端的數據顯示,如圖4所示。
除了登錄檢查和監(jiān)控,系統(tǒng)還提供了歷史數據查看功能,如圖5所示??梢圆榭辞皫滋斓臄祿?,類似于監(jiān)控界面,通過左側的選擇框選擇相應的終端,右邊實時切換至相應的信息顯示;此外增加了圖表方式進行連接的曲線顯示。
3 數據采集終端(M0)
實際安裝在各個采集點的數據采集終端,在夜間斷電時還要能夠監(jiān)測礦井里各個點的環(huán)境數據,使用電池和電力交叉供電的方式。基于Cortex—M0內核的LPC11C14微處理器作為主控芯片,它是一個超低功耗的ARM內核CPU,可以在保證系統(tǒng)功能的情況下,實現在電池供電狀態(tài)下的較長待機時間。
3.1 系統(tǒng)架構及功能描述
數據采集終端M0,安裝于礦井的各個部分,負責各個點的環(huán)境監(jiān)測與數據上報,整體架構如圖6所示。系統(tǒng)功能包括:環(huán)境信息采集,即如溫度、濕度、瓦斯?jié)舛?RFID數據采集,每個M0終端可以連接一個RFID讀卡器,用于工人位置的簡單定位;輔助信息采集,模塊本身電池電量、Axis_3三軸加速度(在發(fā)生地震時,由于不平衡,震動而觸發(fā));數據上報,通過ZigBee模塊將采集的數據上報到A8前端數據模塊進行統(tǒng)一處理;異常報警,正常情況下,模塊的異常告警由A8模塊進行控制,在異常產生時,可以獨立生產異常報警信息;運行狀態(tài)指示,簡單的LED指示系統(tǒng)當前運行狀態(tài)(是否在工作)等。
M0終端需要采集環(huán)境的濕度、溫度、瓦斯?jié)舛燃捌渌嚓P信息,并處理ZigBee通信。
主要包括:采用DHT11傳感器對溫濕度信息進行采集;采用MMA7455L傳感器采集三軸加速度;采用CY14443/SPI對RFID信息采集;采用ADC 3通道對電池電量信息采集;采用ADC0通道對電位器信息采集;采用RS232接口的集成ZigBee模塊進行無線通信。
3.2 M0終端工作流程
在本系統(tǒng)中,M0作為分布式模塊安裝于礦井的各個監(jiān)測點,負責采集各個環(huán)境信息并通過ZigBee模塊進行上報,主要包括4個處理流程:ZigBee接收中斷處理、RFID中斷處理、秒中斷處理和主流程。
首先,系統(tǒng)上電初始化M0終端設備,系統(tǒng)定時器、GPIO口、SPI、UART、I2C總線等設備,配置系統(tǒng)定時器為1ms,配置中斷處理函數為1 s,第一次采集信息。
然后,主程序進行輪詢判斷,在沒有外部中斷(ZigBee接收中斷,RFID刷卡中斷)情況下進行數據的采集,嘗試與主站A8模塊進行通信。在通信未成功之前,M0終端設置為自動報警模式(自我環(huán)境監(jiān)測、異常報警等)。
當有外部RFID時,其他數據正常采集,RFID中斷函數同時對磁卡數據采集校驗,并通過ZigBee模塊發(fā)送給A8模塊。
當有外部中斷ZigBee接收中斷時,中斷處理函數接收A8服務器發(fā)過來的命令,執(zhí)行不同的操作,同時將M0終端設置為受控模式。
從安全穩(wěn)定的角度考慮,在A8模塊異常、M0終端無法和A8模塊通信超過30 s時,M0終端將會切換到自動模式,自己進行異常檢測,根據設置好的參數判斷是否產生報警信息(聲光報警)。
結語
整個系統(tǒng)的構建比較復雜,涉及硬件設計、ARM內核編程、系統(tǒng)bootloader、Linux內核移植、驅動程序、嵌入式Linux應用編程、網頁編程、AJAX網頁動態(tài)加載技術、數據庫編程等多各項技術的綜合應用。
在系統(tǒng)的構建過程中,必須保持清晰的模塊化設計,并且在模塊分布架構前,必須設計好整個數據流,根據數據流來進行模塊的劃分與交互,單個模塊的技術應用并不復雜,整個系統(tǒng)的實現與架構是設計的難點。
目前,本設計已經實現了整個系統(tǒng)的基本框架,完成了整個系統(tǒng)的數據流閉環(huán),需要完善的是根據實際的使用情況改善用戶體驗度,例如網頁的操作模式、工人井下操作的便利性等。
評論