文昊翔 羅歡
摘要:該文設(shè)計(jì)了一款基于stm32的防長者走失追蹤報(bào)警系統(tǒng)。系統(tǒng)主要實(shí)現(xiàn)自動(dòng)報(bào)警與長者定位功能,系統(tǒng)主要包含發(fā)射機(jī)和接收機(jī)兩部分并且以STM32F103ZET6為核心控制器。其中,發(fā)射機(jī)控制NEO-6M-0-001 GPS定位芯片和SIM900A芯片以獲取目標(biāo)的位置信息,然后向指定號(hào)碼發(fā)送短信以實(shí)現(xiàn)報(bào)警功能作用,最后通過NRF24L01將定位數(shù)據(jù)發(fā)射到接收機(jī)。接收機(jī)接到定位信息后,通過串口將信息上傳至電腦以實(shí)現(xiàn)地圖上定位。經(jīng)測試表明系統(tǒng)穩(wěn)定性強(qiáng),使用方便,具有較大的應(yīng)用前景。
關(guān)鍵詞:stm32;防長者走失;GPS;自動(dòng)報(bào)警
中圖分類號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)04-0170-03
The Alarm System for Lost Elderly Based on STM32
WEN Hao-xiang, LUO Huan
(Institute of Physics and Mechanical & Electrical Engineering, Shaoguan University,Shaoguan 512005, China)
Abstract:An alarm system for lost elderly Based on STM32 is proposed in this paper. The system is used to locate the elderly and send a warning. The system mainly has two components, a transmitter and a receiver. The two components are controlled by a microcontroller STM32F103ZET6. The transmitter locates objections with a location module NEO-6M-0-001 and a GSM module SIM900A, and then sends this location information as well as a warning message to a certain mobile phone. At the same time, the transmitter also sends the location information to the receiver with NRF24L01. After the receiver receives the data from the transmitter by NRF24L01, it sends the location data to PC with the serial port and locates the target on the map in PC screen. The experimental results indicate that the proposed system has great prospects for its strong stability and easy controllability.
Key words:stm32; anti-elderly lost; GPS; H.264; automatic alarm
1 概述
目前,老人走失的事件常見諸報(bào)端,因此追蹤定位產(chǎn)品諸如防長者走失報(bào)警系統(tǒng)正為社會(huì)所需。但是如今市場上仍然缺乏一種成熟的相關(guān)產(chǎn)品。
本設(shè)計(jì)為一款防長者走失智能報(bào)警系統(tǒng),系統(tǒng)分為發(fā)射機(jī)和接收機(jī)兩部分。發(fā)射機(jī)使用NEO-6M為主要定位芯片,并且使用SIM900A為核心的GSM模塊以實(shí)現(xiàn)發(fā)送報(bào)警短信的功能。發(fā)射機(jī)主要工作流程為:首先通過編寫程序讀取NEO-6M的定位信息并進(jìn)行處理,在目標(biāo)離開既定范圍(如老者離開了自家的房屋)后及時(shí)發(fā)送警告信號(hào)和實(shí)時(shí)位置信息到指定的手機(jī)號(hào)上,然后通過NRF24L01無線傳輸天線將NEO-6M的定位數(shù)據(jù)傳送到接收機(jī)[1]。接收機(jī)的主要作用是將數(shù)據(jù)接收并將其通過串口傳輸?shù)絇C機(jī)上,以實(shí)現(xiàn)將目標(biāo)具體位置顯示在地圖上的功能,方便用戶對(duì)目標(biāo)位置進(jìn)行追蹤。
該系統(tǒng)對(duì)定位信息的準(zhǔn)確度有較高的要求,在制作的過程中應(yīng)注意對(duì)NEO-6M芯片的定位信息的檢測,保證正確檢測到目標(biāo)移動(dòng)情況;同時(shí)應(yīng)注意確保NRF24L01在收發(fā)數(shù)據(jù)時(shí)沒有錯(cuò)漏,并能完整無誤地將數(shù)據(jù)傳送給PC進(jìn)行讀取。其對(duì)C語言的程序流程也有較嚴(yán)格的要求。由于數(shù)據(jù)處理較多,因此需要保證程序各方面流程準(zhǔn)確無漏洞,如完善自動(dòng)重啟功能,以保證系統(tǒng)在運(yùn)作過程中無卡機(jī)現(xiàn)象出現(xiàn)。
2系統(tǒng)的硬件設(shè)計(jì)
2.1 STM32最小系統(tǒng)的設(shè)計(jì)
本設(shè)計(jì)的STM32最小系統(tǒng)主要包括以下幾個(gè)基本構(gòu)成部分:MCU、LED部分、按鍵部分、時(shí)鐘電路以及其他必須的排針接口等[2]。電路如圖1所示。
STM32是ST公司推出的一種以Cortex-M3為核心處理器的高性能32位微控制器, STM32F103ZET6是一款增強(qiáng)型STM32,包含了由內(nèi)核DCode、系統(tǒng)總線和兩個(gè)DMA通道組成的驅(qū)動(dòng)單元以及由Flash閃存、FSMC、內(nèi)部存儲(chǔ)器和AHB/APB橋組成的被動(dòng)單元。
2.2 GPS衛(wèi)星定位的設(shè)計(jì)
本文設(shè)計(jì)的GPS定位模塊采用NEO-6M內(nèi)核,包含EEPROM、紐扣電池、UART調(diào)試接口和SMA接口等外部硬件設(shè)備[3]。NEO-6衛(wèi)星定位芯片是U-Blox公司生產(chǎn)的一款能夠獨(dú)立工作檢測位置信息的高性能GPS信號(hào)接收器。NEO-6包含了兩個(gè)部分:射頻和基帶,它的系統(tǒng)框圖如圖2所示[4]。
EEPROM是指可擦可編程只讀存儲(chǔ)器,能夠保證模塊掉電后仍能夠記憶本次的波特率和幀數(shù)據(jù),方便下次恢復(fù)供電時(shí)可以快速進(jìn)入工作狀態(tài);紐扣電池主要用于在短時(shí)間內(nèi)記憶搜星數(shù)據(jù),提高模塊的工作效率;UART調(diào)試接口為TTL電平,用于檢測完整的模塊功能;SMA接口用于連接天線[5]。GPS模塊的電路如圖3所示。
2.3 NRF24L01無線通信模塊
NRF24L01無線通信模塊采用NORDIC公司的NRF24L01芯片,內(nèi)置2.4GHz天線,使用NORDIC公司的Enhanced Shock Burst協(xié)議進(jìn)行通信,可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信或一對(duì)多通信,但最多不能超過6點(diǎn)。NRF24L01芯片功能十分強(qiáng)大,具有多種工作模式,包括收發(fā)模式、配置模式、空閑模式和關(guān)機(jī)模式,以滿足不同的工作環(huán)境的需要[6]。其中,收發(fā)模式有三種,分別為直接收發(fā)模式、Enhanced ShockBurstTM收發(fā)模式和ShockBurstTM收發(fā)模式,可根據(jù)需要設(shè)置。
NRF24L01無線通信模塊的外形圖如圖4所示??梢钥闯鯪RF24L01模塊只引出了NRF24L01芯片的6個(gè)引腳,包括工作模式控制引腳CE、片選線CSN、始終控制線SCK、數(shù)據(jù)輸入輸出控制線MOSI和MISO以及中斷信號(hào)引腳IRQ、以及供電引腳VCC和GND[7]。
目前市場上的NRF24L01無線模塊均帶有內(nèi)置天線,最大傳輸距離可為100米,且可與NRF2401A、NRF24L01+、NRF24LE1、NRF24LU1等無線模塊通用,是理想的實(shí)驗(yàn)傳輸模塊。
3 系統(tǒng)軟件的設(shè)計(jì)
本系統(tǒng)的軟件部分有:發(fā)射機(jī)主程序和接收機(jī)程序。其中,發(fā)射機(jī)程序包括GPS控制處理程序、SIN900A控制處理程序、NRF24L01數(shù)據(jù)發(fā)送程序及其他完整實(shí)現(xiàn)整機(jī)系統(tǒng)所需的USART、SPI、定時(shí)器等STM32外圍電路程序;接收機(jī)程序則主要是NRF24L01的數(shù)據(jù)接收程序。本次程序設(shè)計(jì)采用模塊化的編程模式對(duì)各個(gè)部分的程序進(jìn)行設(shè)計(jì)編寫。
本系統(tǒng)運(yùn)用模塊化思想進(jìn)行編程以實(shí)現(xiàn)整機(jī)功能。其中,發(fā)射端主程序的工作流程如圖5所示。
本系統(tǒng)的兩部分程序都是用C語言編寫實(shí)現(xiàn)的。首先是對(duì)MCU的各個(gè)外設(shè),包括GPIO、SPI、定時(shí)器、內(nèi)部FLASH、串口1、2、3等進(jìn)行初始化設(shè)置,包括開啟時(shí)鐘等基本操作,保證MCU已經(jīng)被正確設(shè)置,確保后續(xù)程序正常運(yùn)行。
發(fā)射機(jī)程序包含了本系統(tǒng)的三個(gè)重要部分——GPS定位信息的讀取、GSM狀態(tài)的控制以及NRF24L01的數(shù)據(jù)發(fā)送,而接收機(jī)程序則主要是NRF24L01的數(shù)據(jù)接收。在對(duì)各模塊操作之前均要對(duì)模塊進(jìn)行檢測,如果檢測不到模塊,說明模塊尚未初始化或是硬件連接出錯(cuò)。如未提前檢測模塊是否正常接入就盲目進(jìn)行下一步數(shù)據(jù)處理,將有可能出現(xiàn)亂碼問題,并導(dǎo)致后繼功能無法實(shí)現(xiàn)。為了避免這樣的情況出現(xiàn),從嚴(yán)謹(jǐn)?shù)脑O(shè)計(jì)態(tài)度出發(fā),檢測程序必不可少。
對(duì)于發(fā)送機(jī),在檢測到三部分模塊電路已經(jīng)成功與MCU握手并完成初始化后,就可以執(zhí)行數(shù)據(jù)處理的程序,讀取GPS接收到的位置信息,將其轉(zhuǎn)換成為正常的、可讀性強(qiáng)的數(shù)據(jù)進(jìn)行保存,不斷更新,并將定位數(shù)據(jù)不斷地準(zhǔn)確發(fā)送給接收機(jī)。當(dāng)檢測到GPS的位置不在正常范圍內(nèi),即可判斷目標(biāo)離開了規(guī)定地點(diǎn),就可以將帶有目標(biāo)位置信息的短信及時(shí)發(fā)送到指定的手機(jī)號(hào)碼上,實(shí)現(xiàn)報(bào)警功能[8]。
對(duì)于接收機(jī),在各外設(shè)的初始化及模塊檢測完成后,程序?qū)⒃O(shè)置NRF24L01進(jìn)入數(shù)據(jù)接收狀態(tài),使其不斷地接收從發(fā)射端發(fā)送而來的數(shù)據(jù),并將其傳輸?shù)酱谏希瑒t通過串口連接到電腦可以將數(shù)據(jù)傳送到電腦上,并通過GPS模塊串口調(diào)試助手分析數(shù)據(jù),將目標(biāo)具體位置直接顯示在地圖上。
4 系統(tǒng)測試
4.1 GPS模塊的測試
對(duì)GPS定位功能的測試,可以通過多功能串口調(diào)試助手進(jìn)行驗(yàn)證。串口調(diào)試助手的軟件界面如圖6所示。
通過CH340 USB-TTL串口線即可實(shí)現(xiàn)PC與GPS模塊的連接,并將GPS的數(shù)據(jù)上傳給PC機(jī),通過上述串口助手即可將定位信息顯示出來。由圖6可知,本次GPS模塊可以實(shí)現(xiàn)準(zhǔn)確定位。
4.2 GSM模塊的測試
同GPS定位模塊一樣,GSM模塊也可以通過串口連接到PC端,通過串口調(diào)試助手給模塊發(fā)送AT指令,通過模塊的反應(yīng),驗(yàn)證GSM模塊工作是否正常。檢測過程中串口調(diào)試助手的軟件界面如圖7所示。
由圖7可知,GSM模塊的工作狀態(tài)正常,且收發(fā)短信的功能經(jīng)過串口調(diào)試助手的初步測試,可以成功向指定號(hào)碼發(fā)送短信。
4.3 NRF24L01模塊功能測試
不像GSM和GSP可以直接使用串口調(diào)試助手在PC端測試模塊的功能。NRF24L01模塊的數(shù)據(jù)需要通過SPI總線作為橋梁與MCU連接,再由MCU在獲取數(shù)據(jù)之后,將數(shù)據(jù)通過串口發(fā)送給PC機(jī),此時(shí)便可在串口調(diào)試助手上觀測到相關(guān)的傳輸數(shù)據(jù)。
在本輪針對(duì)NRF24L01的測試中,主要測試電路能否正常連接及對(duì)程序進(jìn)行初步測試,因此僅需發(fā)送一些簡單的字符數(shù)據(jù)。此外,發(fā)送端還接入TFT液晶顯示屏作為測試輔助工具,通過簡單的程序設(shè)計(jì)即可使液晶屏直接顯示當(dāng)前傳輸數(shù)據(jù)的實(shí)際內(nèi)容及傳輸狀態(tài)。當(dāng)檢測到系統(tǒng)出現(xiàn)故障時(shí),通過液晶屏顯示內(nèi)容即可判斷故障是由發(fā)送端還是由接收端引起。
4.4 整體系統(tǒng)測試
經(jīng)過前面測試后,即可將各模塊接入MCU,并將程序?qū)懭隡CU,進(jìn)行整機(jī)測試。在這個(gè)過程中,存在著一些模塊程序運(yùn)行沖突的問題,檢驗(yàn)后發(fā)現(xiàn)是由于中斷優(yōu)先級(jí)和串口的波特率沒有設(shè)置好。經(jīng)過對(duì)程序的修改,已經(jīng)解決了這個(gè)問題。
經(jīng)調(diào)試后,整個(gè)系統(tǒng)功能已經(jīng)完整的實(shí)現(xiàn),既能根據(jù)當(dāng)前位置判斷是否報(bào)警,也能在遠(yuǎn)程PC端實(shí)時(shí)查看目標(biāo)在地圖上的位置,實(shí)現(xiàn)報(bào)警追蹤的基本功能。目標(biāo)定位效果如圖8所示,結(jié)果準(zhǔn)確無誤。
通過測試,整個(gè)系統(tǒng)達(dá)到了預(yù)期設(shè)想的效果,使用方便,具有較大的應(yīng)用前景。
參考文獻(xiàn):
[1] 龔凌翔,葉芝慧,馮奇,方元.基于STM32的北斗/RFID組合定位系統(tǒng)設(shè)計(jì)[J].電子測量技術(shù),2014,37(4):76-82.
[2] 丁力,宋志平,徐萌萌,陶燦輝.基于STM32的嵌入式測控系統(tǒng)設(shè)計(jì)[J].中南大學(xué)學(xué)報(bào):自然科學(xué)版,2013,44(S1):260-265.
[5] 程銘. 基于GPS+GSM雙技術(shù)定位的車輛跟蹤系統(tǒng)的研究[D].天津大學(xué),2010.
[8] 尹冬至. 基于GSM/GPS的汽車防盜系統(tǒng)的設(shè)計(jì)[D].武漢理工大學(xué),2007.
[4] 朱斌.基于嵌入式微處理器的GPS跟蹤報(bào)警系統(tǒng)設(shè)計(jì)[J].電訊技術(shù),2010,50(4):88-91.
[3] 邵帥. 基于nRF905的溫度數(shù)據(jù)采集及無線傳輸系統(tǒng)的設(shè)計(jì)[D].武漢科技大學(xué),2010.
[7] 郝妍娜,洪志良.基于MCU和nRF905的低功耗遠(yuǎn)距離無線傳輸系統(tǒng)[J].電子技術(shù)應(yīng)用,2007(8):44-47.
[6] 龍光利.基于嵌入式微處理器的無線傳輸系統(tǒng)的設(shè)計(jì)[J].半導(dǎo)體技術(shù),2009,34(1):21-23+75.