胡四海,李志華
(中國地質大學(武漢)機械與電子信息學院,湖北 武漢 430074)
基于STM32和LabVIEW的無線溫濕度檢測系統
胡四海,李志華
(中國地質大學(武漢)機械與電子信息學院,湖北 武漢 430074)
基于STM32和LabVIEW平臺,設計一種無線溫濕度檢測系統方案。該系統以STM32為控制核心,nRF24L01P為無線收發模塊,采用功耗低、響應快的數字溫濕度傳感器AM2303進行溫濕度信號的采集。上位機利用LabVIEW作為開發平臺,通過串口進行STM32單片機與上位機的通信,從而實現對環境溫濕度的實時檢測。實驗結果表明:該系統具有穩定性高、抗干擾能力強和使用方便等優點,適用于各種溫濕度環境檢測。
STM32;nRF24L01P;傳感器;串口通信
日常生活中,溫度和濕度是兩個很重要的物理參數,它不但與人們的身體健康密切聯系,而且與科學研究、園林技術、倉庫管理、機房管理等方面都息息相關。隨著電子科技的發展,人們對環境溫濕度監控的要求也越來越高[1]。傳統的溫濕度檢測技術都是采用有線傳輸裝置,不但布線麻煩,而且消耗大量的人力物力,在實際應用中有很大的局限性。
本文設計了一種無線溫濕度檢測系統方案,其主控制器采用STM32,無線收發模塊芯片選用nRF24L01P,傳感器選用功耗低、響應快、穩定性強的數字溫濕度傳感器AM2303。
該系統是一個“多對一”系統[2],即由若干個無線發送模塊和一個無線接收模塊組成。系統發送端組成框圖如圖1所示。在發送端,STM32控制AM2303的溫濕度數據采集并利用nRF24L01P實現數據的無線發送。系統接收端組成框圖如圖2所示。在接收端,STM32控制nRF24L01P實現多組數據的無線接收功能,并通過串口將接收到的數據傳遞給上位機,上位機對數據進行處理、分析以及實時顯示。

圖1 系統發送端結構框圖

圖2 系統接收端結構框圖
系統硬件設計由STM32單片機主控電路、無線收發電路、溫濕度數據采集電路、報警電路、電源電路等構成,主要完成溫濕度數據的實時采集、傳輸、顯示等功能。
2.1 STM32單片機控制電路
系統采用ST公司生產的STM32F103RBT6作為控制核心,STM32F103RBT6是ST公司基于ARM最新Cortex-M3架構內核的32位處理器產品,其處理速度可達72MHz,內置128 KB的Flash、20KB的SRAM、12位的A/D、4個16位定時器、3路USART通信口和2個SPI接口等豐富的片內資源,完全滿足本檢測系統對數據采集、處理、傳輸等應用的要求。STM32F103RBT6作為系統的主控制器,通過SPI1接口控制nRF24L01P芯片實現數據的無線收發功能,并將接收到的數據進行相應的轉換處理后通過RS-232串口總線與上位機進行通信。
2.2 無線收發電路
系統中無線收發功能主要利用nRF24L01P芯片來實現,nRF24L01P是一款工作在2.4~2.5GHz的ISM頻段的無線單片收發芯片,工作電壓為2.0~3.6V,電流消耗極低。該芯片有126個通信通道,6個數據通道,能夠滿足多點通信和調頻需要,支持250KB/s、1,2Mb/s數據傳輸速率。系統中還用到了功率放大芯片和低噪聲放大器芯片,使無線模塊的最大發射功率達到20dBm,并同時將接收靈敏度提升10dBm,使得無線通信距離超過nRF24L01P自身的10倍以上。
STM32單片機與nRF24L01P無線收發模塊之間利用同步串行口SPI進行雙向通信,nRF24L01P的SPI總線有SCK(SPI時鐘)、MISO(主入從出)、MOSI(主出從入)、CSN(SPI使能)[3]。STM32通過配置寄存器CONFIG使nRF24L01P分別處于發射模式和接收模式,IRQ是中斷標志位。STM32與nRF24L01P的連接電路如圖3所示。

圖3 nRF24L01P電路圖
2.3 溫濕度數據采集電路
系統中溫濕度的數據采集利用AM2303數字傳感器來完成。AM2303是一款出廠已含有校準數字信號輸出的溫濕度復合傳感器,主要特性有:溫度分辨率為0.1℃,準確度為±0.2℃;濕度分辨率為0.1%RH,精度為±2%RH;供電電壓為3.5~5.5V等。其優點有自動化校準、超小體積、極低功耗、采用標準單總線接口、信號傳輸距離可達20m以上等[4]。
溫濕度數據采集電路主要由STM32單片機PA3引腳與AM2303傳感器的SDA引腳相連接,通過標準的單總線通信方式控制傳感器進行數據采集,設計電路如圖4所示。

圖4 傳感器連接電路圖
2.4 報警電路
報警電路采用有源蜂鳴器進行設計,設計電路如圖5所示,當單片機的PB1引腳輸出低電平時,蜂鳴器鳴叫,否則蜂鳴器停止[5]。
2.5 電源電路
STM32單片機是一款低功耗單片機,其供電電壓為3.3 V,nRF24L01P芯片供電電壓為2.0~3.6 V,AM2303工作電壓為3.5~5.5V。系統中采用9V干電池通過電壓轉換芯片AMS1117-5和AMS1117-3.3給系統供電[6]。

圖5 報警電路圖
該系統以單片機為控制核心,完成對系統數據的采集及無線傳輸[7]。系統軟件設計由下位機軟件和上位機軟件兩部分組成。下位機包括主程序和多個子程序。子程序包括單片機控制傳感器實現溫濕度數據采集、SPI1控制nRF24L01P無線收發數據、數據報警處理等。上位機則采用NI公司的LabVIEW作為開發平臺。
3.1 系統發送端軟件設計
由于系統是一個“多對一”系統,有多個發送端,在發送端正常工作之前,需要對每個發送端進行初始化。當傳感器上電初始化之后,MCU向傳感器發送一次起始信號,傳感器讀取起始信號后工作模式由原來的休眠模式切換到高速模式,并向MCU發送響應信號;隨后MCU讀取傳感器從SDA引腳輸出的40b數據,并對40b數據進行校驗,若校驗正確,則將數據傳送給無線收發模塊,此時通過配置無線收發模塊芯片的寄存器,使其工作模式配置為發送模式,將數據發送出去,若校驗錯誤,則說明本次讀取的數據不正確,放棄數據,重新初始化傳感器。圖6為系統發送端軟件設計框圖。

圖6 發送端軟件設計流程圖
3.2 系統接收端軟件設計
系統只需設計一個接收端,系統接收端的STM32單片機通過配置無線收發模塊芯片的寄存器,設置其工作模式為接收模式,使其一直工作在接收狀態,STM32單片機將接收到的數據處理后,跟系統設置的溫濕度報警值進行對比[8],并進行相應的處理。同時,STM32單片機的液晶能實時顯示接收到的各個發送端的溫濕度數據。圖7為系統接收端軟件設計框圖。

圖7 接收端軟件設計流程圖
3.3 LabVIEW上位機軟件設計
系統上位機部分采用LabVIEW作為開發平臺,上位機通過串口實現與STM32單片機的通信。單片機將采集到的溫濕度數據通過串口傳輸給上位機[9],上位機進行識別、處理后顯示相應的結果。與編程復雜、入門較難的VB和VC++相比,基于LabVIEW的溫濕度檢測系統界面清晰、使用靈活、工作效率高,還具有良好的功能擴展性,能夠滿足本系統的設計要求。圖8為LabVIEW溫濕度檢測系統上位機設計界面,該系統可以同時顯示4個不同發送端的環境溫濕度數據情況。

圖8 LABVIEW溫濕度檢測系統界面
試驗中采用溫濕度計和本文提出的無線溫濕度檢測系統測量方法分別對溫度和濕度進行測量對比[10],表1和表2分別為每隔30min采用溫濕度計和本系統測量方法測得的某室外溫濕度值,以及兩者的相對誤差和絕對誤差。

表1 溫度測量數據對比

表2 濕度測量數據對比
從表1和表2測量數據可以看出最大相對誤差為4.2%,系統相對誤差大小均在±5%以內。本系統經過實際檢測,在平曠的地方,當無線模塊的傳輸速率在2Mb/s時,傳輸距離可達100M,當傳輸速率更小時,傳輸距離可達500M甚至最遠,且數據誤碼率非常小。證實本系統具有良好的穩定性和可靠性。
本文采用 STM32單片機作為主控制器,nRF24L01P實現數據的無線收發功能,并通過Lab-VIEW上位機界面實時顯示數據,設計出了多對一的無線溫濕度檢測系統。經過實際論證,該系統穩定性高,抗干擾能力強。將數據發送端控制在一定的數量范圍之內時,系統的穩定性會更好,相對誤差會更小,能夠有效地運用在各種溫濕度環境檢測中。
[1]朱玉穎,蔡占輝.基于nRF24L01的遠程溫度檢測系統設計[J].自動化技術與應用,2010,29(5):56-58.
[2]符多鐸,譚秋林,劉文怡,等.低功耗電梯呼叫系統的設計與實現[J].電子技術應用,2013,39(9):77-80.
[3]馬瑾,裴東興,張少杰.基于nRF24L01的無線溫濕度測試系統[J].電子設計工程,2012,20(2):64-66.
[4]陳城.基于Stm32的溫濕度檢測系統[D].武漢:武漢科技大學,2012.
[5]劉洲峰,黎小靜,呂云鵬,等.基于STM32F103VBT6的射頻加熱溫濕度監測系統設計[J].微型機與應用,2012,31(16):28-31.
[6]顧簡,施云波,修德斌,等.基于GPRS的環境溫濕度監測系統設計[J].黑龍江大學自然科學學報,2010,27(6):832-835.
[7]王濤.基于nRF24L01的2.4 GHz無線通信系統設計[J].無線通信技術,2011,37(3):4-7.
[8]董冬,司頡.基于LabVIEW的溫濕度檢測系統的設計[J].黑龍江科技信息,2010(33):5-6.
[9]黃松嶺,吳靜.虛擬儀器設計基礎教程[M].北京:清華大學出版社,2008:181-208.
[10]卑璐璐.無線溫濕度監測系統設計[D].遼寧:遼寧工程技術大學,2009.
Wireless temperature-humidity detection system based on platforms STM32 and LabVIEW
HU Sihai,LI Zhihua
(Faculty of Mechanical&Electronic Information,China University of Geosciences,Wuhan 430074,China)
A wireless temperature-humidity detection system solutions was designed based on platforms STM32 and LabVIEW.Taking the STM32 as an essential control method and using a chip nRF24L01Pin a wireless transceiver module,the system acquired temperature-humidity signals through a digital temperature-humidity sensor AM2303 of low power and fast response.An upper computer was communicated with a STM32 MCU through a serial port based on the development platform LabVIEW to detect the environmental temperature and humidity in real time. Experiment results indicate that the system is stable,interference-resistant and convenient to use,suitable for a variety of temperature and humidity detections.
STM32;nRF24L01P;sensor;serial communication
A
:1674-5124(2015)05-0099-04
10.11857/j.issn.1674-5124.2015.05.025
2014-08-28;
:2014-10-22
胡四海(1989-),男,湖北武漢市人,碩士研究生,專業方向為智能儀器設計研究。