黃景煦,莫麗薇,于米提江·奧布力,劉璇,王雪茹
(北京信息科技大學,北京,100089)
關鍵字:Arduino;無人機;空氣質量監(jiān)測
在二十世紀八十年代初,一些發(fā)達國家逐步建立了自動連續(xù)的空氣質量監(jiān)測系統(tǒng)還有宏觀的生態(tài)監(jiān)測系統(tǒng),為了有效監(jiān)管空氣質量的動態(tài)變化。我國作為一個制造業(yè)大國,工業(yè)水平位居世界前列,但是我國空氣質量檢測裝置跟不上我國工業(yè)水平的發(fā)展,在這方面距離發(fā)達國家還存在一定的距離,導致監(jiān)管部門無法有效的監(jiān)管大量的工廠。本課題主要是設計基于Arduino的無人機空氣質量檢測裝置,通過無人機檢測在高空煙囪、管道等周圍的有害氣體的濃度,通過收集的數(shù)據(jù)檢測該區(qū)域的空氣質量,從而采取措施改善空氣質量,從而改善人們的生存環(huán)境[1]。
此空氣質量的監(jiān)測模塊由下位機,存儲模塊以及通信模塊構成,對處理系統(tǒng)的相關設計如圖1所示。圖示中的下位機包括,顯示器、傳感器模塊和Arduino的開發(fā)板。存儲模塊包括Micro SD讀寫模塊和Micro SD卡,將空氣質量傳感器所采集到的數(shù)據(jù)保存在Micro SD卡內,而通信模塊將收集到的數(shù)據(jù)實時傳輸給上位機,譬如我們經(jīng)常使用手機連接電腦一樣。通過上位機軟件處理數(shù)據(jù),從而繪制出對應的空氣中有害氣體參數(shù)變化的曲線圖,本處理系統(tǒng)采用存儲模塊和通信模塊并行使用,完成測量參數(shù)的顯示。
圖1 處理系統(tǒng)整體框架
Arduino是全球最流行的開源硬件,Arduino Mega2560主板是Arduino各型號主板中引腳、串口、儲存比較多的一種。Arduino Mega2560采用的核心電路板接口是USB接口,同時它含有五十四路數(shù)字輸入輸出串口,而采用十五路模擬輸入,四路UART接口以及一個USB接口等。
MQ-135空氣質量傳感器,使用的材料是二氧化錫,這種材料很容易接收到氣體信號且在空氣中電導率較低。當傳感器身處的環(huán)境中有著一定濃度的污染物氣體時,傳感器的電導率就會隨著空氣中污染物氣體的濃度的改變而隨之改變。通過使用簡單的電路,傳感器電導率的變化可以轉換為對應于氣體濃度的輸出信號。
MQ-135傳感器對NH3、硫化物、苯系蒸汽等氣體的靈敏度相對其他氣體傳感器來說較高,氣體元件測試濃度的范圍為十到一千,對于一些可見度小的污染物的監(jiān)測效果很好,該空氣質量傳感器是一個適用范圍廣且成本還很低的硬件。
二氧化硫傳感器檢測空氣中的SO2濃度有非常大的優(yōu)越性,它尺寸小Φ20×16.5,二氧化硫檢測范圍0-20ppm,最大檢測濃度2000ppm。它的特點為電流的靈敏度比較高、響應時間短、并且受溫度及濕度的影響小、穩(wěn)定性強等特點。
將二氧化硫傳感器安裝到氣體模組測試套件上,將傳感器收集的信號通過氣體模組測試套件轉化為USB信號,在上位機軟件上顯示,測試MQ-135空氣質量傳感器的檢測氣體數(shù)據(jù)的準確性,通過氣體模組測試套件與MQ-135空氣質量檢測的數(shù)據(jù)對比,便于分析MQ-135空氣質量傳感器檢測的氣體種類。
Micro SD卡讀寫模塊采用的SPI接口程序,Arduino IDE 自帶SPI庫文件和SD卡程序庫,通過SPI驅動程序,單片機可對Micro SD卡進行讀寫,讀寫模塊支持Micro SD卡、Micro SDHC卡(高速卡),讀卡模塊通信接口為SPI接口。
無人機選用F450型號的無人機,該型號的無人機飛行高度可達800-1000m,續(xù)航時間可達十五分鐘左右,便于操控,性能穩(wěn)定。
對于編程語言的選擇,我們選用的是一種較為靈活且特別容易掌握和上手的開發(fā)平臺——Arduino開發(fā)平臺,它包含了硬件和軟件,對于學過C語言以及Java的人來說會更容易上手一點,因為此編程語言具有和這兩種語言類似的開發(fā)環(huán)境,主控芯片主要是AVR單片機和ARM芯片。同時Arduino平臺還具有跨平臺的特點,比如電腦上安裝了虛擬機,就可以在三大常用的操作系統(tǒng)上運行,然而除此之外大多數(shù)只能在Windows上開發(fā);此外Arduino語言比較簡單清晰,對于初學者來說極其容易上手,只需要簡單學習就可以嘗試進行開發(fā);還具有開放性的特點,因為它的一些組件都是開源的,也就是說可以免費下載使用,并且修改其代碼。隨著科技的發(fā)展和進步,互聯(lián)網(wǎng)時代的迅速發(fā)展,越來越多的人開始并喜歡使用Arduino開發(fā)語言,特別是在大學里,對于一些軟件開發(fā)者,無論是計算機、自動化、軟件等專業(yè),還是一些相關社團,比如無人機,機器人等,都會用到此開發(fā)語言,特別是一些大創(chuàng)或者其他的創(chuàng)新創(chuàng)業(yè)類項目,幾乎都會用到此Arduino來進行開發(fā)。
系統(tǒng)軟件主要由MQ-135空氣質量傳感器,存儲模塊,下位機軟件系統(tǒng)根據(jù)系統(tǒng)需要實現(xiàn)的功能編輯,主要負責下位機的一些數(shù)據(jù)采集,傳輸,存儲的接口,以實現(xiàn)數(shù)據(jù)的采集和儲存。
一開始我們對系統(tǒng)進行了初始化,完成后,利用傳感器進行數(shù)據(jù)的采集,采集數(shù)據(jù)后將數(shù)據(jù)傳輸給上述所示的單片機中,通過Micro SD讀卡器將收集的數(shù)據(jù)儲存在Micro SD卡內。
為測試本處理系統(tǒng)的有效性,分別對系統(tǒng)的硬件和軟件進行測試。
首先,需要特別詳細的檢查各模塊一些暴露在外界的部分是否存在相互接觸的情況,線路和對應的端口是否接錯,接下來我們用到的工具是萬用表,它可以檢查出線路是否存在短路或者是有斷路的地方。完成以上操作后,我們則需讓電源處于通電狀態(tài)即可,觀察各模塊的工作狀態(tài)是否正常,存不存在一些不正常的發(fā)熱,閃爍現(xiàn)象,若上述的一切都正常,則模塊硬件調試完成[2]。
無人機的調試工作主要包括飛行控制系統(tǒng)參數(shù)的調節(jié),檢查無人機的連線情況,在不搭載任何物品的情況下進行試飛。多次試飛無異常情況,則無人機調試完成。
系統(tǒng)軟件部分編輯完成后,我們就可以采用 Arduino 開發(fā)平臺為我們所提供的一系列工具進行真實的模擬,與此同時再完成最后的調試。在調試期間,我們需要將此和我們的電腦進行連接,并且需要將程序上傳到之前所用到的單片機中,通過Micro SD讀卡器將存儲在卡上的的數(shù)據(jù)顯示在我們所能看到的監(jiān)視器上,并通過點燃火柴產生氣體,觀察監(jiān)視器顯示的數(shù)據(jù)波動情況。需要注意的一點是,我們需要在調試的過程中不斷進行修改,使系統(tǒng)實現(xiàn)預期的功能。
本運行系統(tǒng)采用氣體傳感器,單片機和上位機軟件的結合,搭建了一個具有完備功能的空氣質量檢測裝置。集單片機,傳感器,無人機平臺,上位機軟件于一體??稍谛阅芊矫嫔蠈τ布M行改造,增大檢測的精度,增大檢測數(shù)據(jù)的準確性。