胡四海,李志華
(中國地質大學(武漢)機械與電子信息學院,湖北 武漢 430074)
基于STM32和LabVIEW的無線溫濕度檢測系統(tǒng)
胡四海,李志華
(中國地質大學(武漢)機械與電子信息學院,湖北 武漢 430074)
基于STM32和LabVIEW平臺,設計一種無線溫濕度檢測系統(tǒng)方案。該系統(tǒng)以STM32為控制核心,nRF24L01P為無線收發(fā)模塊,采用功耗低、響應快的數(shù)字溫濕度傳感器AM2303進行溫濕度信號的采集。上位機利用LabVIEW作為開發(fā)平臺,通過串口進行STM32單片機與上位機的通信,從而實現(xiàn)對環(huán)境溫濕度的實時檢測。實驗結果表明:該系統(tǒng)具有穩(wěn)定性高、抗干擾能力強和使用方便等優(yōu)點,適用于各種溫濕度環(huán)境檢測。
STM32;nRF24L01P;傳感器;串口通信
日常生活中,溫度和濕度是兩個很重要的物理參數(shù),它不但與人們的身體健康密切聯(lián)系,而且與科學研究、園林技術、倉庫管理、機房管理等方面都息息相關。隨著電子科技的發(fā)展,人們對環(huán)境溫濕度監(jiān)控的要求也越來越高[1]。傳統(tǒng)的溫濕度檢測技術都是采用有線傳輸裝置,不但布線麻煩,而且消耗大量的人力物力,在實際應用中有很大的局限性。
本文設計了一種無線溫濕度檢測系統(tǒng)方案,其主控制器采用STM32,無線收發(fā)模塊芯片選用nRF24L01P,傳感器選用功耗低、響應快、穩(wěn)定性強的數(shù)字溫濕度傳感器AM2303。
該系統(tǒng)是一個“多對一”系統(tǒng)[2],即由若干個無線發(fā)送模塊和一個無線接收模塊組成。系統(tǒng)發(fā)送端組成框圖如圖1所示。在發(fā)送端,STM32控制AM2303的溫濕度數(shù)據(jù)采集并利用nRF24L01P實現(xiàn)數(shù)據(jù)的無線發(fā)送。系統(tǒng)接收端組成框圖如圖2所示。在接收端,STM32控制nRF24L01P實現(xiàn)多組數(shù)據(jù)的無線接收功能,并通過串口將接收到的數(shù)據(jù)傳遞給上位機,上位機對數(shù)據(jù)進行處理、分析以及實時顯示。
圖1 系統(tǒng)發(fā)送端結構框圖
圖2 系統(tǒng)接收端結構框圖
系統(tǒng)硬件設計由STM32單片機主控電路、無線收發(fā)電路、溫濕度數(shù)據(jù)采集電路、報警電路、電源電路等構成,主要完成溫濕度數(shù)據(jù)的實時采集、傳輸、顯示等功能。
2.1 STM32單片機控制電路
系統(tǒng)采用ST公司生產(chǎn)的STM32F103RBT6作為控制核心,STM32F103RBT6是ST公司基于ARM最新Cortex-M3架構內核的32位處理器產(chǎn)品,其處理速度可達72MHz,內置128 KB的Flash、20KB的SRAM、12位的A/D、4個16位定時器、3路USART通信口和2個SPI接口等豐富的片內資源,完全滿足本檢測系統(tǒng)對數(shù)據(jù)采集、處理、傳輸?shù)葢玫囊?。STM32F103RBT6作為系統(tǒng)的主控制器,通過SPI1接口控制nRF24L01P芯片實現(xiàn)數(shù)據(jù)的無線收發(fā)功能,并將接收到的數(shù)據(jù)進行相應的轉換處理后通過RS-232串口總線與上位機進行通信。
2.2 無線收發(fā)電路
系統(tǒng)中無線收發(fā)功能主要利用nRF24L01P芯片來實現(xiàn),nRF24L01P是一款工作在2.4~2.5GHz的ISM頻段的無線單片收發(fā)芯片,工作電壓為2.0~3.6V,電流消耗極低。該芯片有126個通信通道,6個數(shù)據(jù)通道,能夠滿足多點通信和調頻需要,支持250KB/s、1,2Mb/s數(shù)據(jù)傳輸速率。系統(tǒng)中還用到了功率放大芯片和低噪聲放大器芯片,使無線模塊的最大發(fā)射功率達到20dBm,并同時將接收靈敏度提升10dBm,使得無線通信距離超過nRF24L01P自身的10倍以上。
STM32單片機與nRF24L01P無線收發(fā)模塊之間利用同步串行口SPI進行雙向通信,nRF24L01P的SPI總線有SCK(SPI時鐘)、MISO(主入從出)、MOSI(主出從入)、CSN(SPI使能)[3]。STM32通過配置寄存器CONFIG使nRF24L01P分別處于發(fā)射模式和接收模式,IRQ是中斷標志位。STM32與nRF24L01P的連接電路如圖3所示。
圖3 nRF24L01P電路圖
2.3 溫濕度數(shù)據(jù)采集電路
系統(tǒng)中溫濕度的數(shù)據(jù)采集利用AM2303數(shù)字傳感器來完成。AM2303是一款出廠已含有校準數(shù)字信號輸出的溫濕度復合傳感器,主要特性有:溫度分辨率為0.1℃,準確度為±0.2℃;濕度分辨率為0.1%RH,精度為±2%RH;供電電壓為3.5~5.5V等。其優(yōu)點有自動化校準、超小體積、極低功耗、采用標準單總線接口、信號傳輸距離可達20m以上等[4]。
溫濕度數(shù)據(jù)采集電路主要由STM32單片機PA3引腳與AM2303傳感器的SDA引腳相連接,通過標準的單總線通信方式控制傳感器進行數(shù)據(jù)采集,設計電路如圖4所示。
圖4 傳感器連接電路圖
2.4 報警電路
報警電路采用有源蜂鳴器進行設計,設計電路如圖5所示,當單片機的PB1引腳輸出低電平時,蜂鳴器鳴叫,否則蜂鳴器停止[5]。
2.5 電源電路
STM32單片機是一款低功耗單片機,其供電電壓為3.3 V,nRF24L01P芯片供電電壓為2.0~3.6 V,AM2303工作電壓為3.5~5.5V。系統(tǒng)中采用9V干電池通過電壓轉換芯片AMS1117-5和AMS1117-3.3給系統(tǒng)供電[6]。
圖5 報警電路圖
該系統(tǒng)以單片機為控制核心,完成對系統(tǒng)數(shù)據(jù)的采集及無線傳輸[7]。系統(tǒng)軟件設計由下位機軟件和上位機軟件兩部分組成。下位機包括主程序和多個子程序。子程序包括單片機控制傳感器實現(xiàn)溫濕度數(shù)據(jù)采集、SPI1控制nRF24L01P無線收發(fā)數(shù)據(jù)、數(shù)據(jù)報警處理等。上位機則采用NI公司的LabVIEW作為開發(fā)平臺。
3.1 系統(tǒng)發(fā)送端軟件設計
由于系統(tǒng)是一個“多對一”系統(tǒng),有多個發(fā)送端,在發(fā)送端正常工作之前,需要對每個發(fā)送端進行初始化。當傳感器上電初始化之后,MCU向傳感器發(fā)送一次起始信號,傳感器讀取起始信號后工作模式由原來的休眠模式切換到高速模式,并向MCU發(fā)送響應信號;隨后MCU讀取傳感器從SDA引腳輸出的40b數(shù)據(jù),并對40b數(shù)據(jù)進行校驗,若校驗正確,則將數(shù)據(jù)傳送給無線收發(fā)模塊,此時通過配置無線收發(fā)模塊芯片的寄存器,使其工作模式配置為發(fā)送模式,將數(shù)據(jù)發(fā)送出去,若校驗錯誤,則說明本次讀取的數(shù)據(jù)不正確,放棄數(shù)據(jù),重新初始化傳感器。圖6為系統(tǒng)發(fā)送端軟件設計框圖。
圖6 發(fā)送端軟件設計流程圖
3.2 系統(tǒng)接收端軟件設計
系統(tǒng)只需設計一個接收端,系統(tǒng)接收端的STM32單片機通過配置無線收發(fā)模塊芯片的寄存器,設置其工作模式為接收模式,使其一直工作在接收狀態(tài),STM32單片機將接收到的數(shù)據(jù)處理后,跟系統(tǒng)設置的溫濕度報警值進行對比[8],并進行相應的處理。同時,STM32單片機的液晶能實時顯示接收到的各個發(fā)送端的溫濕度數(shù)據(jù)。圖7為系統(tǒng)接收端軟件設計框圖。
圖7 接收端軟件設計流程圖
3.3 LabVIEW上位機軟件設計
系統(tǒng)上位機部分采用LabVIEW作為開發(fā)平臺,上位機通過串口實現(xiàn)與STM32單片機的通信。單片機將采集到的溫濕度數(shù)據(jù)通過串口傳輸給上位機[9],上位機進行識別、處理后顯示相應的結果。與編程復雜、入門較難的VB和VC++相比,基于LabVIEW的溫濕度檢測系統(tǒng)界面清晰、使用靈活、工作效率高,還具有良好的功能擴展性,能夠滿足本系統(tǒng)的設計要求。圖8為LabVIEW溫濕度檢測系統(tǒng)上位機設計界面,該系統(tǒng)可以同時顯示4個不同發(fā)送端的環(huán)境溫濕度數(shù)據(jù)情況。
圖8 LABVIEW溫濕度檢測系統(tǒng)界面
試驗中采用溫濕度計和本文提出的無線溫濕度檢測系統(tǒng)測量方法分別對溫度和濕度進行測量對比[10],表1和表2分別為每隔30min采用溫濕度計和本系統(tǒng)測量方法測得的某室外溫濕度值,以及兩者的相對誤差和絕對誤差。
表1 溫度測量數(shù)據(jù)對比
表2 濕度測量數(shù)據(jù)對比
從表1和表2測量數(shù)據(jù)可以看出最大相對誤差為4.2%,系統(tǒng)相對誤差大小均在±5%以內。本系統(tǒng)經(jīng)過實際檢測,在平曠的地方,當無線模塊的傳輸速率在2Mb/s時,傳輸距離可達100M,當傳輸速率更小時,傳輸距離可達500M甚至最遠,且數(shù)據(jù)誤碼率非常小。證實本系統(tǒng)具有良好的穩(wěn)定性和可靠性。
本文采用 STM32單片機作為主控制器,nRF24L01P實現(xiàn)數(shù)據(jù)的無線收發(fā)功能,并通過Lab-VIEW上位機界面實時顯示數(shù)據(jù),設計出了多對一的無線溫濕度檢測系統(tǒng)。經(jīng)過實際論證,該系統(tǒng)穩(wěn)定性高,抗干擾能力強。將數(shù)據(jù)發(fā)送端控制在一定的數(shù)量范圍之內時,系統(tǒng)的穩(wěn)定性會更好,相對誤差會更小,能夠有效地運用在各種溫濕度環(huán)境檢測中。
[1]朱玉穎,蔡占輝.基于nRF24L01的遠程溫度檢測系統(tǒng)設計[J].自動化技術與應用,2010,29(5):56-58.
[2]符多鐸,譚秋林,劉文怡,等.低功耗電梯呼叫系統(tǒng)的設計與實現(xiàn)[J].電子技術應用,2013,39(9):77-80.
[3]馬瑾,裴東興,張少杰.基于nRF24L01的無線溫濕度測試系統(tǒng)[J].電子設計工程,2012,20(2):64-66.
[4]陳城.基于Stm32的溫濕度檢測系統(tǒng)[D].武漢:武漢科技大學,2012.
[5]劉洲峰,黎小靜,呂云鵬,等.基于STM32F103VBT6的射頻加熱溫濕度監(jiān)測系統(tǒng)設計[J].微型機與應用,2012,31(16):28-31.
[6]顧簡,施云波,修德斌,等.基于GPRS的環(huán)境溫濕度監(jiān)測系統(tǒng)設計[J].黑龍江大學自然科學學報,2010,27(6):832-835.
[7]王濤.基于nRF24L01的2.4 GHz無線通信系統(tǒng)設計[J].無線通信技術,2011,37(3):4-7.
[8]董冬,司頡.基于LabVIEW的溫濕度檢測系統(tǒng)的設計[J].黑龍江科技信息,2010(33):5-6.
[9]黃松嶺,吳靜.虛擬儀器設計基礎教程[M].北京:清華大學出版社,2008:181-208.
[10]卑璐璐.無線溫濕度監(jiān)測系統(tǒng)設計[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-),男,湖北武漢市人,碩士研究生,專業(yè)方向為智能儀器設計研究。