陳少博 卞宇皓 陳酉杰 廖俊杰 宋志強(qiáng)
摘要:為了實(shí)現(xiàn)更加快速、高效的空氣質(zhì)量監(jiān)測(cè),采用M702七合一空氣質(zhì)量檢測(cè)模塊和ATK-LORA-01LoRa無(wú)線傳輸模塊,設(shè)計(jì)了一套基于樹(shù)莓派和C++ Builder的空氣質(zhì)量監(jiān)測(cè)系統(tǒng)。在PC端下達(dá)指令,即可使樹(shù)莓派控制傳感器實(shí)時(shí)采集數(shù)據(jù),再經(jīng)由無(wú)線傳輸模塊傳輸?shù)絇C端,最后通過(guò)C++ Builder開(kāi)發(fā)軟件實(shí)現(xiàn)數(shù)據(jù)的可視化與儲(chǔ)存。開(kāi)發(fā)的系統(tǒng)可與無(wú)人機(jī)等硬件結(jié)合實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè),彌補(bǔ)了基站監(jiān)測(cè)無(wú)法進(jìn)入高危環(huán)境內(nèi)部監(jiān)測(cè)的缺陷,有較高的應(yīng)用價(jià)值。
關(guān)鍵詞:空氣質(zhì)量監(jiān)測(cè);樹(shù)莓派;無(wú)線數(shù)據(jù)傳輸;C++ Builder
中圖分類號(hào):TP273 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)13-0113-03
1 引言
近些年,各種天氣、環(huán)境災(zāi)害頻發(fā)不斷,人們的生存環(huán)境每況愈下。這一系列的環(huán)境污染會(huì)直接影響人們的日常生活與身體健康[1],最為直觀的就是霧霾現(xiàn)象和呼吸性疾病的增長(zhǎng)情況。而近些年導(dǎo)致環(huán)境惡化的因素主要是隨著社會(huì)經(jīng)濟(jì)的發(fā)展,工業(yè)自動(dòng)化程度的提高,重工業(yè)的不斷發(fā)展,各種機(jī)械設(shè)備的運(yùn)作和大街上日益增多的汽車(chē)。這些機(jī)械的運(yùn)作無(wú)時(shí)無(wú)刻不在燃燒著汽油和煤炭,向空氣中釋放著大量的氮氧化物、硫化物等污染氣體。
環(huán)境的持續(xù)惡化,時(shí)刻提醒人們正面臨嚴(yán)重的空氣污染問(wèn)題[2],環(huán)境治理刻不容緩。而對(duì)環(huán)境的實(shí)時(shí)監(jiān)測(cè)在環(huán)境的治理中是重中之重的,目前國(guó)內(nèi)所使用的空氣質(zhì)量監(jiān)測(cè)系統(tǒng)是基于基站的大型監(jiān)測(cè)系統(tǒng),也叫作空氣站。空氣站在一些環(huán)保重點(diǎn)城市會(huì)根據(jù)城市區(qū)域建設(shè)若干個(gè)來(lái)保證對(duì)城市已建區(qū)域的覆蓋,以此達(dá)到對(duì)整座城市的空氣質(zhì)量監(jiān)測(cè)。但空氣站占用面積較大,又是固定的站點(diǎn)無(wú)法移動(dòng),所以檢測(cè)到的數(shù)據(jù)精確度不高,會(huì)與實(shí)際空氣質(zhì)量有一定誤差。并且,目前空氣站沒(méi)有做到全國(guó)覆蓋,對(duì)于一些突發(fā)的自然環(huán)境災(zāi)害和緊急污染事件就無(wú)法及時(shí)地做出數(shù)據(jù)監(jiān)測(cè),導(dǎo)致政府無(wú)法做到高效、正確地解決問(wèn)題??諝庹镜慕ㄔ斐杀景嘿F,開(kāi)發(fā)難度較高,維修成本不菲,因此也無(wú)法投入民用,已經(jīng)不能滿足當(dāng)前環(huán)境監(jiān)測(cè)的需求。
本文基于樹(shù)莓派和C++ Builder開(kāi)發(fā)了一套空氣質(zhì)量監(jiān)測(cè)系統(tǒng),在樹(shù)莓派端實(shí)現(xiàn)了自主數(shù)據(jù)采集與數(shù)據(jù)無(wú)線傳輸,PC端由無(wú)線傳輸模塊接收數(shù)據(jù)后,通過(guò)C++ Builder軟件實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示與存儲(chǔ)。樹(shù)莓派便于攜帶與開(kāi)發(fā)簡(jiǎn)單,彌補(bǔ)了傳統(tǒng)監(jiān)測(cè)系統(tǒng)的不足。
2 系統(tǒng)的結(jié)構(gòu)與功能
空氣質(zhì)量監(jiān)測(cè)系統(tǒng)主要由樹(shù)莓派、空氣質(zhì)量檢測(cè)模塊、無(wú)線傳輸模塊、PC機(jī)四部分組成,系統(tǒng)的結(jié)構(gòu)如圖1所示。
在本套系統(tǒng)中,樹(shù)莓派是整個(gè)系統(tǒng)的核心,當(dāng)PC端對(duì)樹(shù)莓派發(fā)送開(kāi)始監(jiān)測(cè)的指令時(shí),首先由樹(shù)莓派控制M702七合一空氣質(zhì)量檢測(cè)模塊對(duì)空氣中的各種成分進(jìn)行數(shù)據(jù)采集并通過(guò)串口將采集到的數(shù)據(jù)傳遞給樹(shù)莓派,再通過(guò)無(wú)線傳輸模塊將采集到的數(shù)據(jù)發(fā)送至PC端。PC端會(huì)基于C++ Builder軟件根據(jù)空氣質(zhì)量監(jiān)測(cè)模塊的通信協(xié)議進(jìn)行軟件設(shè)計(jì),將檢測(cè)到的數(shù)據(jù)轉(zhuǎn)換為對(duì)應(yīng)單位的十進(jìn)制數(shù),并且將其實(shí)時(shí)顯示以達(dá)到空氣質(zhì)量的監(jiān)測(cè)作用。
本系統(tǒng)中使用的無(wú)線傳輸模塊是基于天線的無(wú)線串口模塊,只需將兩個(gè)模塊的參數(shù)設(shè)置一樣,通過(guò)杜邦線和USB轉(zhuǎn)接線分別連接樹(shù)莓派和PC端即可進(jìn)行數(shù)據(jù)的無(wú)線傳輸。
在PC端所設(shè)計(jì)的空氣質(zhì)量監(jiān)測(cè)軟件,除了可以將監(jiān)測(cè)數(shù)據(jù)轉(zhuǎn)化為對(duì)應(yīng)單位的十進(jìn)制數(shù)據(jù)和實(shí)時(shí)顯示數(shù)據(jù)之外,還具有將數(shù)據(jù)存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)、導(dǎo)出數(shù)據(jù)和以報(bào)表形式查看等輔助功能。本系統(tǒng)后期還可將樹(shù)莓派與無(wú)人機(jī)、遙控汽車(chē)等遠(yuǎn)程遙控設(shè)備相結(jié)合,操作人員可實(shí)現(xiàn)任何設(shè)定環(huán)境的遠(yuǎn)程實(shí)時(shí)空氣質(zhì)量監(jiān)測(cè),彌補(bǔ)了傳統(tǒng)空氣質(zhì)量監(jiān)測(cè)系統(tǒng)的不足。
3 系統(tǒng)硬件開(kāi)發(fā)
3.1樹(shù)莓派開(kāi)發(fā)環(huán)境搭建
本次系統(tǒng)開(kāi)發(fā)選擇的是2019年最新發(fā)布的樹(shù)莓派4B,樹(shù)莓派4B開(kāi)發(fā)板主要部件有CPU、內(nèi)存芯片、USB、電源、千兆以太網(wǎng)口等,具有良好的運(yùn)算與處理能力[3]。樹(shù)莓派4B的CPU搭載1.5GHz,四核BroadcomBCM2711處理器,并且高達(dá)4GB RAM。此外,樹(shù)莓派4B還提供了豐富的對(duì)外接口,包括兩個(gè)USB2.0接口、兩個(gè)USB3.0接口和40個(gè)針通用I/O接口等。
作為本次系統(tǒng)的核心部件樹(shù)莓派,要對(duì)其進(jìn)行開(kāi)發(fā)環(huán)境的搭建才可以完成與空氣質(zhì)量檢測(cè)模塊、無(wú)線傳輸模塊的應(yīng)用。將準(zhǔn)備好的SD讀卡器插入計(jì)算機(jī)。使用SDFormatterSD格式化工具將SD卡進(jìn)行格式化[4]。到官方網(wǎng)站下載操作系統(tǒng),選擇Raspbian Buster with desktop,點(diǎn)擊Download ZIP,然后解壓縮下載的安裝包,得到a.img文件。接下來(lái),使用Win32DiskImager硬盤(pán)鏡像軟件將下載的img文件寫(xiě)入SD卡。在映像文件選擇之前解壓得到的.img文件,選擇SD卡驅(qū)動(dòng)器盤(pán)符,單擊“寫(xiě)入”,等待寫(xiě)入完成,關(guān)閉程序,此時(shí)SD卡已加載Raspbian操作系統(tǒng),樹(shù)莓派4B的開(kāi)發(fā)環(huán)境就已經(jīng)搭建完畢。
3.2 M702七合一空氣質(zhì)量檢測(cè)模塊
M702七合一傳感器模塊是一款性價(jià)比較高的數(shù)字串口輸出傳感器模塊,采用UART串口電平輸出模式(UART接口定義如表1所示),可對(duì)CO2、甲醛、TVOC、激光粉塵PM2.5、PM10顆粒物、溫度、濕度共七種物質(zhì)進(jìn)行檢測(cè)。該模塊可對(duì)所處環(huán)境進(jìn)行實(shí)時(shí)綜合檢測(cè),具有較好的穩(wěn)定性,非常方便使用。該款檢測(cè)模塊還具有較高的精確度,其中溫度可以精確到0.1度,濕度可以精確到0.1%,并且它還可以每?jī)擅胪ㄟ^(guò)UART信號(hào)輸出七組傳感器監(jiān)測(cè)數(shù)據(jù),其UART接口定義如表1所示。
模塊與上位機(jī)連接的主通信口,采用了標(biāo)準(zhǔn)串行RS-485通信口。信息傳輸方式為異步,起始位為1位,數(shù)據(jù)位為8位,停止位為1位,無(wú)校驗(yàn),數(shù)據(jù)傳輸缺省速率為9600b/s。
M702七合一空氣質(zhì)量檢測(cè)模塊的通信協(xié)議如表2所示。
由通信協(xié)議可知,校驗(yàn)和B17等于:B1+B2+…+B16的值,取低8位。當(dāng)溫度對(duì)應(yīng)數(shù)據(jù)B13的bit7=1 時(shí),代表溫度為負(fù),當(dāng)B13的bit7=0 時(shí),代表溫度為正。
3.3 ATK-LORA-01無(wú)線串口模塊
ATK-LORA-01是ALIENTEK推出的一款遠(yuǎn)距離LORA無(wú)線串口模塊,具有小體積、微功率、功耗低、性能高等優(yōu)點(diǎn)[5]。該模塊采用高效ISM的頻段射頻SX1278擴(kuò)頻芯片[6]。模塊的工作頻率范圍從410Mhz到441Mhz[7],并且模塊以1Mhz頻率作為步進(jìn)通道,共有32個(gè)通道。模塊還可以通過(guò)AT指令在線改變發(fā)射功率、串口速率、空中速率、工作模式等各種參數(shù),且支持固件升級(jí)功能。該模塊基于SMA天線,最高通信距離約達(dá)3000米且該模塊的通信接口包括UART串口,8N1、8E1、8O1,從1200-115200共8種波特率。該模塊通過(guò)1*6的排針同外部連接,模塊連接如圖2所示,樹(shù)莓派開(kāi)發(fā)板可通過(guò)杜邦線直接與模塊對(duì)接,對(duì)模塊進(jìn)行測(cè)試。
該模塊在使用時(shí)會(huì)根據(jù)MD0的配置與AUX引腳的狀態(tài)進(jìn)入不同的功能,本系統(tǒng)只用到其中的配置功能和通信功能,其他的暫不做闡述。當(dāng)模塊上電后,AUX進(jìn)入空閑狀態(tài)即AUX=0,若MD0=1則模塊進(jìn)入配置功能。此時(shí)可通過(guò)官方提供的ATK-LORA配置軟件對(duì)模塊進(jìn)行配置,只需將兩個(gè)模塊的地址、信道和無(wú)線速率(非串口波特率)等一系列參數(shù)配置相同,保存配置即可。當(dāng)MD0=0時(shí),模塊就進(jìn)入了通信功能,此時(shí)只需將兩個(gè)配置相同的模塊分別連接樹(shù)莓派和PC端,在傳輸方式選項(xiàng)中選擇透明傳輸,即可進(jìn)行通訊。并且在透明模式下兩個(gè)模塊都可以發(fā)送和接收數(shù)據(jù),也可以將多個(gè)模塊配置為相同參數(shù)進(jìn)行點(diǎn)對(duì)多的無(wú)線數(shù)據(jù)傳輸,其工作示意圖如圖3所示。
4 系統(tǒng)軟件設(shè)計(jì)
4.1樹(shù)莓派數(shù)據(jù)傳輸軟件設(shè)計(jì)
本項(xiàng)目中使用的M702七合一傳感器模塊采用UART串口電平輸出模式,與樹(shù)莓派上GPIO口連接即可進(jìn)行通訊,因此應(yīng)該首先在樹(shù)莓派上配置UART串口。
樹(shù)莓派4B擁有多組串口可以使用,各GPIO默認(rèn)配置不同。在本項(xiàng)目中,需要樹(shù)莓派連接M702傳感器模塊與LoRa模塊,因此需要配置兩組UART串口。默認(rèn)配置的UART串口為GPIO14與GPIO15,這兩個(gè)串口默認(rèn)承擔(dān)藍(lán)牙功能,因此不使用,而是更改GPIO0、1、4、5四個(gè)串口的配置,將它們配置為兩組UART串口,供溫度監(jiān)測(cè)模塊和LoRa模塊使用。
然后根據(jù)M702傳感器模塊和LoRa模塊內(nèi)置的通訊協(xié)議編寫(xiě)傳輸程序。當(dāng)樹(shù)莓派向傳感器發(fā)送固定編碼后,傳感器會(huì)以平均兩秒一次向樹(shù)莓派發(fā)送數(shù)據(jù)。在樹(shù)莓派上,可通過(guò)Python中的serial庫(kù)函數(shù)來(lái)配置UART串口參數(shù)并每?jī)擅脒M(jìn)行一次發(fā)送、接收數(shù)據(jù)即可。同時(shí)還可以在同一個(gè)程序中同時(shí)控制兩組UART串口收發(fā)數(shù)據(jù),實(shí)現(xiàn)直接將數(shù)據(jù)不保存到本地通過(guò)LoRa模塊傳輸?shù)接脩舳恕\浖O(shè)計(jì)框架如圖4所示。
4.2數(shù)據(jù)顯示軟件設(shè)計(jì)
C++ Builder是一款基于VCL庫(kù)的可視化開(kāi)發(fā)工具,集數(shù)據(jù)采集和顯示為一體[8],在數(shù)據(jù)庫(kù)設(shè)計(jì)和基礎(chǔ)系統(tǒng)開(kāi)發(fā)等方面表現(xiàn)出極其優(yōu)異的性能。它還提供了一套可視化開(kāi)發(fā)工具,如可視化窗口設(shè)計(jì)器、控制面板和集成編輯器等。只需要簡(jiǎn)單地把控件(Component)托到窗體(Form)上,定義它的屬性,設(shè)置外觀就可以快速地建立應(yīng)用程序界面。
本次系統(tǒng)的數(shù)據(jù)顯示界面便是基于C++ Builder軟件進(jìn)行開(kāi)發(fā)。主要分為四個(gè)界面,界面一是軟件的主界面,如圖5所示。該界面包括數(shù)據(jù)顯示界面和其他功能按鈕,可以讓操作人員實(shí)時(shí)查看傳感器采集的數(shù)據(jù)。界面二為報(bào)表界面,點(diǎn)擊界面一中的報(bào)表預(yù)覽按鈕即可自動(dòng)跳轉(zhuǎn)至該界面,主要功能為將通過(guò)LoRa模塊傳輸過(guò)來(lái)的數(shù)據(jù)以報(bào)表的形式展現(xiàn)。界面三是數(shù)據(jù)刪除界面,可以刪除數(shù)據(jù)庫(kù)中的冗余數(shù)據(jù),實(shí)時(shí)更新數(shù)據(jù)。界面四是數(shù)據(jù)搜索界面,用戶可以根據(jù)開(kāi)始時(shí)間和結(jié)束時(shí)間搜索相應(yīng)時(shí)間段的數(shù)據(jù)。
該軟件可以通過(guò)串口與LoRa模塊連接,當(dāng)有數(shù)據(jù)通過(guò)LoRa模塊傳輸過(guò)來(lái)時(shí),該軟件會(huì)先對(duì)收到的數(shù)據(jù)進(jìn)行判斷,若數(shù)據(jù)正確則自動(dòng)將數(shù)據(jù)傳輸?shù)胶笈_(tái),根據(jù)M702傳感器的通信協(xié)議將數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),然后將十進(jìn)制數(shù)據(jù)在界面一的數(shù)據(jù)顯示界面進(jìn)行顯示,并且自動(dòng)將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)。
5 結(jié)束語(yǔ)
本文開(kāi)發(fā)的基于樹(shù)莓派和C++ Builder的空氣質(zhì)量監(jiān)測(cè)系統(tǒng)體積小、精確度高、開(kāi)發(fā)難度低、開(kāi)發(fā)成本低,充分利用了樹(shù)莓派小巧便捷與開(kāi)發(fā)性高的強(qiáng)大功能,大幅度降低了空氣監(jiān)測(cè)的成本,并且功能擴(kuò)展性強(qiáng),通過(guò)樹(shù)莓派豐富的接口,后面還可以與其他硬件結(jié)合,實(shí)現(xiàn)更加優(yōu)良的功能與應(yīng)用。
參考文獻(xiàn):
[1] 劉玉媛,周明理.室內(nèi)空氣質(zhì)量檢測(cè)和傳感器的運(yùn)用[J].無(wú)線互聯(lián)科技,2020,17(22):86-87.
[2] 馬傳彬,王志坤.空氣質(zhì)量檢測(cè)與傳感器的應(yīng)用[J].電子世界,2017(11):143.
[3] 杜彬,宋坤偉.基于樹(shù)莓派的微型智能空氣質(zhì)量檢測(cè)系統(tǒng)的實(shí)現(xiàn)技術(shù)研究[J].太原學(xué)院學(xué)報(bào)(自然科學(xué)版),2018,36(1):33-37.
[4] 陳金立,周镕,陳宣,等.一種基于樹(shù)莓派的氣象數(shù)據(jù)監(jiān)測(cè)教學(xué)實(shí)驗(yàn)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2021,38(6):189-192,198.
[5] 宋浩.基于LoRa技術(shù)的無(wú)線通信應(yīng)用研究[J].信息與電腦(理論版),2019,31(23):150-151,155.
[6] 朱自強(qiáng),姜作喜,彭巍巍.基于LoRa技術(shù)的遠(yuǎn)程無(wú)線通信方案的設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2020(24):162-163.
[7] 石新龍,丁永輝.基于LoRa無(wú)線通信的農(nóng)業(yè)環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].精密制造與自動(dòng)化,2021(3):44-46,56.
[8] 謝敏.應(yīng)用C++Builder實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)采集、顯示的方法[J].電子工程師,2006,32(1):68-70.
【通聯(lián)編輯:謝媛媛】