曲鎮(zhèn)幫 田江偉 鄭琳
【摘要】本文介紹基于NRF24L01的超聲波無線測距系統(tǒng),通過HC-SR04超聲波測距模塊和NRF24L01無線傳輸模塊將采集端采集到的距離數(shù)據(jù)實時發(fā)送給STM32單片機,實現(xiàn)超聲波遠距離的遙測。STM32單片機主機接收顯示報警部分負責接收超聲波檢測的距離并在OLED12864顯示屏上顯示。
【關(guān)鍵詞】NRF24L01;超聲波數(shù)據(jù)采集;OLED12864顯示
一、系統(tǒng)硬件電路設(shè)計
整個系統(tǒng)主要分為兩大部分,即兩塊無線收發(fā)系統(tǒng)部分,無線數(shù)據(jù)傳輸接收系統(tǒng)模塊電路和無線數(shù)據(jù)傳輸發(fā)送系統(tǒng)模塊電路,系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。
(一)HC-SR04超聲波測距電路設(shè)計
超聲波測距模塊選用的是HC-SR04模塊,測距精度最高達到3mm。此模塊包含控制電路、超聲波發(fā)生器與接收器。超聲波測距模塊采用IO口TRIG觸發(fā)測距,至少給10us的高電平信號。模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回。有信號返回,通過IO口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。
(二)NRF24L01無線收發(fā)電路設(shè)計
NRF24L01工作于2.4 GHz~2.5 GHz ISM頻段。NRF24L01內(nèi)置很多功能模塊,包括晶體振蕩器、功率放大器、頻率合成器、調(diào)制器等模塊,通過程序進行配置輸出功率和通信頻道。NRF24L01是高斯頻移鍵控調(diào)制,硬件集成OSI鏈路層,它有自動應答、自動再發(fā)射功能,片內(nèi)自動生成報頭和CRC校驗碼,SPI速率為0 Mb/s~10 Mb/s,與其他NRF24系列射頻器件相兼容,供電電壓為1.9 伏~3.6 伏,傳輸距離小于5米。
(三)OLED數(shù)據(jù)顯示電路設(shè)計
OLED12864是128×64行點陣的OLED單色、字符、圖形顯示模塊,其接口電路和操作指令簡單,具有8位并行數(shù)據(jù)接口,讀寫時序適配6800系列時序,可直接與8位微處理器相連。其中2管腳與單片機PB6鏈接,控制OLED12864 12C總線的SCL功能。1管腳與單片機PB7鏈接,控制OLED12864 12C總線的SDA功能。
二系統(tǒng)軟件設(shè)計
(一)無線數(shù)據(jù)傳輸系統(tǒng)主程序設(shè)計
首先對發(fā)送和接收部分分別進行系統(tǒng)初始化,然后發(fā)送部分的超聲波模塊檢測距離,經(jīng)過初始化后接收部分開始接受發(fā)送端發(fā)送的數(shù)據(jù)并進入判斷程序當接收到數(shù)據(jù)未到達報警值時,程序直接進入OLED顯示模塊顯示出來;當接收到的數(shù)據(jù)達到報警值時,會產(chǎn)生聲光報警,并在OLED顯示模塊上顯示出來。
無線數(shù)據(jù)傳輸系統(tǒng)主程序流程圖如圖2所示。
(二)HC-SR04超聲波測距電路子程序設(shè)計
HC-SR04超聲波測距電路在工作之前會對串口1進行初始化,對SPI接口初始化,顯示器初始化。初始化后進行數(shù)據(jù)采集,將數(shù)據(jù)通過NRF24L01芯片、STM32單片機發(fā)送到無線數(shù)據(jù)傳輸接收系統(tǒng)。
(三)無線數(shù)據(jù)傳輸收發(fā)系統(tǒng)子程序設(shè)計
發(fā)送端:首先對系統(tǒng)進行初始化,設(shè)置為發(fā)送模式,超聲波傳感器開始工作對距離進行測量,然后將結(jié)果送至顯示器與無線收發(fā)電路進行顯示與數(shù)據(jù)發(fā)送,在顯示屏上顯示HC-SR04距離檢測傳感器測的數(shù)據(jù)值。檢測到數(shù)據(jù)后,通過NRF24L01模塊將數(shù)據(jù)信息發(fā)送給接收模塊,在顯示屏上顯示當前檢測出的距離。
接收端:無線數(shù)據(jù)傳輸接收系統(tǒng)與無線數(shù)據(jù)傳輸發(fā)送系統(tǒng)相類似,系統(tǒng)在工作之前要進行初始化,按照程序設(shè)計開始讀取接收到的數(shù)據(jù),判定后進行數(shù)據(jù)處理與顯示,在顯示屏上顯示HC-SR04超聲波檢測傳感器測的距離值。檢測到數(shù)據(jù)后,在OLED顯示屏上顯示當前檢測出的距離,通過接收端讀取NRF24L01寄存器。并通過OLED顯示模塊進行顯示,顯示完畢后返回NRF24L01。如果超出設(shè)定的距離,報警器進行報警。如果接收不到數(shù)據(jù)則繼續(xù)檢測。
(四)OLED數(shù)據(jù)顯示電路子程序設(shè)計
OLED數(shù)據(jù)顯示電路在工作之前會進行系統(tǒng)初始化。初始化后等待無線數(shù)據(jù)傳輸發(fā)送系統(tǒng)采集端采集到的數(shù)據(jù),接收到數(shù)據(jù)后進入判斷程序,當無線數(shù)據(jù)傳輸發(fā)送系統(tǒng)采集端發(fā)送的數(shù)據(jù)在測量范圍內(nèi)時,OLED模塊上顯示數(shù)據(jù)并有聲光報警,程序流程結(jié)束;當無線數(shù)據(jù)傳輸發(fā)送系統(tǒng)采集端發(fā)送的數(shù)據(jù)不在2cm-400cm范圍內(nèi)時,OLED模塊上沒有顯示數(shù)據(jù),程序繼續(xù)進入判斷部分。
三、結(jié)論
本設(shè)計的研究工作已經(jīng)基本達到預期的要求,系統(tǒng)設(shè)計了包括超聲波檢測、NRF24L01無線傳輸?shù)饶K,操作方便和容易修改??蓪崿F(xiàn)在室內(nèi)、室外測量距離,不僅方便易操作,成本低廉而且能夠?qū)崿F(xiàn)數(shù)據(jù)的實時傳輸。
參考文獻:
[1] 李杜.基于HC-SR04的超聲波測距裝置算法研究[J].科技世界,2012,(38):38-40.
[2] 董浩,黃凱,張渭澎.單片機技術(shù)在智能電流源設(shè)計中的應用[J].電氣時代,2015(08): 110-113.
[3] 李維諟,郭強.最新液晶顯示應用[M].北京:電子工業(yè)出版社,2014:56-59.
[4] 陳城,李瑞祥,劉婷婷,劉毅.基于NRF24L01的無線數(shù)據(jù)傳輸系統(tǒng)研究[J].電子科技, 2016,(11)22-24,27.
作者簡介:
曲鎮(zhèn)幫、田江偉,男,沈陽工學院。鄭琳(通訊作者),女,漢族,遼寧人,沈陽工學院,教師,講師,碩士學位。