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