需要原理圖工程,源碼,PCB工程的朋友收藏,這篇文章關(guān)注我,私我吧!??!
摘要
本次設(shè)計主要組成是STM32單片機電路、ADXL345加速度傳感器、心率檢測電路、OLED液晶顯示電路、電源電路、時鐘DS1302和DS18B20溫度傳感器組成。通過ADXL345測量重力加速度,是用來判斷人體狀態(tài),根據(jù)狀態(tài)的數(shù)值變化進行計步功能。通過心率傳感器測試,通過手指脈動放大經(jīng)過比較器處理后發(fā)送給單片機進行心率采集。并將步數(shù)、心率,溫度、時間等信息顯示在液晶OLED上,當?shù)够蛘邤?shù)據(jù)異常時蜂鳴器報警并且我們也可以通過藍牙模塊把當前的數(shù)據(jù)發(fā)生到手機端進行提醒,通過gps定位模塊把當前位置也發(fā)送到手機端進行顯示。本次設(shè)計功能比較全面,具有良好的市場前景。
一、研究背景及意義
隨著科技與時代不斷進步,電子感應(yīng)與加速計技術(shù)出現(xiàn),取代了以前的技術(shù),因此電子計步器隨之而來。電子計數(shù)器,振動傳感器是目前電子計步器比較重要的兩大組成部分。心率是指一般人心臟在安靜狀態(tài)下每分鐘跳動的次數(shù),因為年齡或則性別等因素,存在著差異性。這是檢驗人體健康標準的一大指標,也是本次設(shè)計較為突出的一大重點。并且我們還通過溫度傳感器顯示當前溫度和時鐘芯片顯示當前時間便于訓(xùn)練。
在這個大環(huán)境的發(fā)展格局下,想設(shè)計一款集合計步功能和心率體溫計時跌倒報警定位檢測功能于一身的智能運動手環(huán)。
從而達到以下目的:
(1) 有利于社會公共交通安全;
(2) 提高人們法律意識;
(3) 使之便捷、安全、準確、高效,便于提高人體日常紅外運動的普及化;
二、實現(xiàn)功能
- 以STM32單片機為數(shù)據(jù)處理中心,通過DS18B20采集當前溫度,MAX30102傳感器采集當前人體心率值;
- 通過DS1302時鐘芯片可以方便時刻觀察時間;
- 通過ADXL345進行計步里程,并且通過OLED液晶顯示屏顯示當前信息;
- 采用按鍵可以進行修改非常方便快捷;
- 通過GPS對當前運動者進行定位如果發(fā)生意外情況通過藍牙模塊發(fā)送藍牙進行提醒;
- 時鐘具有掉電行走功能,重新上電后無需校準;
三、系統(tǒng)方案設(shè)計
系統(tǒng)方案設(shè)計框圖
3.1 單片機芯片選擇
方案一:選擇ST公司的STC89C52單片機作為主控制器,STC89S52主要是低功耗、高性能器件,具有良好的存儲功能。該單片機價格低,功能比較全面, 功耗小,但它是個8位存儲器,不能達到實現(xiàn)本次設(shè)計的需求,故而因此放棄。
方案二:STM32單片機是一款超低功耗的32位器件,功能性比較豐富,模電數(shù)電集中到一個芯片上,可以較好地解決很多問題,實用性比較強。STM32F103C8T6是該系列應(yīng)用較為廣泛的一款控制芯片,該芯片運行在32位系統(tǒng)、支持精簡指令集、超低功耗的混合型單片機,具有高可靠性、低功耗、易擴展、體積小、性價比高、電路簡單等優(yōu)勢,在精密儀器上被廣泛應(yīng)用,以及很多智能化產(chǎn)品中,提高產(chǎn)品質(zhì)量,提升經(jīng)濟價值,已成為眾多單片機系列中一顆耀眼的新星。因此選擇方案二。
3.2 顯示器方案設(shè)計
方案一 :LED數(shù)碼管,這種數(shù)碼管的最大優(yōu)勢是價格較低,性能穩(wěn)定,可以非常簡便的和單片機相連。主要是用于數(shù)字顯示上,實用性較高。但是數(shù)碼管顯示的數(shù)字有限,本次設(shè)計涉及數(shù)字較多,因此達不到設(shè)計的要求,此方案放棄。
方案二: 選擇OLED液晶顯示,常和單片機配合使用,他可以顯示大量的數(shù)據(jù),文字等等,顯示的位數(shù)也比較多,外觀較好,清晰,并且它的程序編寫起來比較簡單。經(jīng)濟方面價格也比較低廉,其中OLED液晶顯示屏隨是比較有特色的一款,很適用于本次設(shè)計,綜合下來選擇此方案。 故選擇方案二。
3.3 傾角傳感器設(shè)計
方案一 :選用陀螺儀來檢測位置的信息,功能比較強,精度準確,穩(wěn)定性強,但是此器件精度要求高,控制起來較為復(fù)雜,不適用于本次設(shè)計。
方案二:選用ADI公司的傾角傳感器ADXL345模塊來檢測位置的信息,ADXL345功能比較全面,有很多存儲空間,其成本預(yù)算較低,便于控制。因此選擇方案二。
3.4心率檢測傳感器設(shè)計
方案一 :選用壓力傳感器收集心率血氧數(shù)據(jù),但其抗干擾能力較差,會對設(shè)計測量產(chǎn)生偏差,且測量的難度相對較大,很難達到本次設(shè)計的預(yù)期目的,所以排除此方案。
方案二 :選用MAX30102紅外模塊采集心率信號,此模塊對管心率信號采集較為穩(wěn)定,其抗干擾能力較強,測量的數(shù)值比較準確,波形穩(wěn)定,相對于本次設(shè)計是一個很好的選擇。故選擇方案二。
3.5 溫度傳感器設(shè)計
DS18B20溫度傳感器是美國達拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲器等做在一個很小的集成電路芯片上。溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比較和考慮后決定的,此傳感器不但可以防水溫度檢測的范圍比較廣,價格低廉而且使用起來也比較方便。
3.6 無線數(shù)據(jù)傳輸設(shè)計
方案一 :選擇采用NRF24L01模塊進行傳輸,但是傳輸過程中需要只是2快板子分為主從才可以進行無線通信。
方案二: 選用HC05藍牙模塊,我們只需要通過此模塊進行串口通信在手機端下載廠家提供的APP就可以完成數(shù)據(jù)的傳輸和顯示,價格也比較便宜傳輸數(shù)據(jù)穩(wěn)定。故選擇方案二。
3.7 時鐘模塊設(shè)計
方案一 :選擇單片機內(nèi)部時鐘,通過程序來顯示當前的信息和參數(shù),不需要外接傳感器,但是內(nèi)部時鐘精度較差,非常容易產(chǎn)生積累誤差并且無法掉電行走。
方案二 :選用DS1302時鐘芯片,此芯片價格便宜,是專門用來處理萬年歷方面的信息,精準度較高,并且數(shù)據(jù)可以通過電子進行掉電行走,上電后無需重新設(shè)置。故選擇方案二。
四、硬件電路設(shè)計
4.1 STM32單片機介紹
單片機的最小系統(tǒng)應(yīng)能讓單片機正常工作并且能夠正常的發(fā)揮其功能的一個集成在一塊芯片上的完整計算機系統(tǒng)。它是一個小型的電腦設(shè)備所具有的那樣擁有者明顯的大腦,也就是控制的核心。同時,也具有一些輸出設(shè)備,還有就是定時器,能夠作為時間的控制中心,具有作為通訊的接口,把所有需要用到的都集中在一個小小的芯片之上,這就是單片機。當然單片機現(xiàn)在的發(fā)展已經(jīng)比較先進,我們來看一下作為最基本的存在它是怎樣的。如下圖:
STM32F103是STM32f101的增強型單片機,在32位的MCU中性能最強;具有出眾的控制和通訊,非常適合低電壓/低功耗的應(yīng)用場合。下圖為STM32內(nèi)核:
對于本次設(shè)計,我們選擇的單片機是STM32F103C8T6單片機。此單片機和51系列相比多了很多功能,不但運行速度比51單片機要快很多,自帶2個AD轉(zhuǎn)換,方便我們在設(shè)計煙霧和CO的時候免去了需要加外部ADC進行轉(zhuǎn)換,非常方便;
STM32實物圖如下圖所示:
4.2 主要功能模塊電路設(shè)計
4.2.1 電源電路設(shè)計
單片機的電源采用直流5V供電,電源模塊包括一個3腳的電源座子和6腳的電源開關(guān)。電源座子用于連接外部的電源插頭,電源開關(guān)用于控制整個單片機的電路開和關(guān)。原理圖如下:
4.2.2 ADXL345傾角傳感器電路設(shè)計
ADXL345的內(nèi)部功能結(jié)構(gòu)如下圖所示,X、Y、Z三個相互正交的的方向上的加速度由 G-Cell傳感器感知,經(jīng)過容壓變換器、增益放大、濾波器和電壓信號輸出。然后我們就可以得到步數(shù),我們設(shè)置步數(shù)距離后可以通過步數(shù)在計算里程,ADXL345內(nèi)部功能圖如下:
ADXL345的三個相互正交的測量方向如下圖,固定在人體上后,這三個方向上的數(shù)據(jù)意義也就隨之確定了。
引腳配置(頂視圖):
ADXL345是一款小而薄的超低功耗3軸加速度計,分辨率高(13位),測量范圍達±16g。數(shù)字輸出數(shù)據(jù)為16位二進制補碼格式,可通過SPI(3線或4線)或I2C數(shù)字接口訪問。ADXL345非常適合移動設(shè)備應(yīng)用。它可以在傾斜檢測應(yīng)用中測量靜態(tài)重力加速度,還可以測量運動或沖擊導(dǎo)致的動態(tài)加速度。其高分辨率(3.9mg/LSB),能夠測量不到1.0°的傾斜角度變化。
4.2.3 心率傳感器電路設(shè)計
測心率實際上也在同時檢測血氧,只是基于本模塊我們只用到心率檢測,把血氧檢測到的數(shù)據(jù)不顯示,所以實際在運用的時候我們也在同時測血氧飽和度。
MAX30102 是一個集成的脈搏血氧儀和心率監(jiān)測儀生物傳感器的模塊。它集成了一個紅光 LED 和一個紅外光 LED、光電檢測器、光器件,以及帶環(huán)境光抑制的低噪聲電子電路。
原理說明:
傳統(tǒng)的脈搏測量方法主要有三種:一是從心電信號中提??;二是從測量血壓時壓力傳感器測到的波動來計算脈率;三是光電容積法。前兩種方法提取信號都會限制病人的活動,如果長時間使用會增加病人生理和心理上的不舒適感。而光電容積法脈搏測量作為監(jiān)護測量中最普遍的方法之一,其具有方法簡單、佩戴方便、可靠性高等特點。
4.2.4 OLED顯示屏電路設(shè)計
有機發(fā)光顯示器(Organic Light Emitting Display,OLED)是一種新型發(fā)光和顯示器件。OLED實質(zhì)上是一個薄膜器件,即在陽極和陰極之間夾多層有機薄膜組成的穩(wěn)定的綠色有機薄膜電致發(fā)光器件。當有電流通過時,這些有機材料就會發(fā)光。OLED使用普通的矩陣交叉屏,OLED位于交叉排列的陽極和陰極中間,通過對陽極和陰極組合的選通,可以控制每一個OLED的點亮。
液晶顯示模塊電路如圖所示,P5是一個4孔的排針,專門供OLED液晶顯示屏使用,5V是指接的5V電壓;顯示屏的SCL引腳連接的是單片機的B6引腳,通過SCL引腳傳輸串行時鐘數(shù)據(jù);SDA引腳連接的是單片機的B7引腳,通過SDA引腳傳輸串行數(shù)據(jù)。
4.2.5 DS18B20溫度電路設(shè)計
DS18B20 是美國 DALLAS 半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。它的主要技術(shù)特性如下:
① 具有獨特的單線接口方式,即微處理器與其接口時僅需占用 1 位I/O 端口;
② 支持多節(jié)點,使分布式多點測溫系統(tǒng)的線路結(jié)構(gòu)設(shè)計和硬件開銷大為簡化;
③ 測溫時無需任何外部元件:
④ 可以通過數(shù)據(jù)線供電,具有超低功耗工作方式:
⑤ 測溫范圍為-55~+125℃,測溫精度為±0.5℃:
⑥ 溫度轉(zhuǎn)換精度 9-12 位可編程,能夠直接將溫度轉(zhuǎn)換值以 16 位二進制數(shù)碼的方式串行輸出。12 位精度轉(zhuǎn)換的最大時間為 750ms。
DS18B20溫度傳感器結(jié)構(gòu)圖:
4.2.6 DS1302時鐘電路設(shè)計
DS1302是一款專門處理時鐘的芯片,晶振為32.768,
1、由美國DALLAS公司推出。
2、它是一種高性能、低功耗、帶RAM的實時時鐘電路。
3、DS1302使用方便,接線簡單,適合此電子時鐘的設(shè)計制作。
4、DS1302可以對年月日時分秒等進行計時,并且?guī)в虚c年補償功能。
5、它可以一次傳送多個字節(jié)的時鐘信號。并且內(nèi)部有存放數(shù)據(jù)的RAM寄存器
6、DS1302的 工作電壓寬達2.5~5.5V。同時還提供了對后備電源的引腳。
1引腳:VCC2為主電源引腳。
8引腳:VCC1備用電源引腳。
備注:DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。由于本設(shè)計未引用備用電源,只引用了1引腳,主電源引腳。
2和3引腳:X1、X2外接晶振引腳。(外接32.768kHz晶振)
4引腳:GND為接地引腳。
5引腳:CE/RST為復(fù)位/片選線。通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。
RST接通控制邏輯,允許地址/命令序列送入移位寄存器;
RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。
6引腳:I/O為數(shù)據(jù)輸入輸出口。在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。
7引腳:SCLK為串行時鐘,輸入。
4.2.7 按鍵電路設(shè)計
本設(shè)計一共設(shè)置有5個控制命令按鍵:參數(shù)設(shè)置;設(shè)置加;設(shè)置減;清除當前步數(shù)里程。我們采用的是獨立式的按鍵,獨立式按鍵就是每單個的按鍵就會有一條單獨的I/O線,他們之間互不影響,按鍵一端接地,采用的是低電平有效,按下按鍵就會連接該條線路。鍵盤抖動的消除采用的是軟件消除,因為硬件需要外接器件成本高也比較麻煩,軟件消除的原理是線建立一個子程序,在檢測到按鍵閉合時先執(zhí)行子程序延時功能,按鍵斷開時也執(zhí)行數(shù)毫秒的功能從而達到消除抖動的目的。電路圖設(shè)計:
4.2.8 蜂鳴器報警電路設(shè)計
按鍵我們可以用于設(shè)置心率體溫上限,血氧下限,當參數(shù)不在范圍內(nèi)蜂鳴器進行聲光報警提醒。
蜂鳴器是一種蜂鳴元器件,供電時就進行蜂鳴,操作非常簡單。市場上有很多蜂鳴器,我們選擇提供5V電源的蜂鳴器被認為是實用的。當我們使用蜂鳴器時,我們有一個小技巧。如果我們覺得蜂鳴器不夠響,我們可以把蜂鳴器頂部的紙去掉。在本次設(shè)計中,當檢測到溫度或者煙霧濃度高于報警上限時,蜂鳴器報警。蜂鳴器電路如圖3.6所示,由3部分組成,一部分是一個1k的電阻,第二部分是一個PNP三極管,最后一部分就是蜂鳴器。三極管采用NPN三極管,其主要功能是放大電流和電平特性,因為單片機電路的電路非常小,無法提供蜂鳴器所需的電流,經(jīng)過三極管放大驅(qū)動電流后,電流放大200倍,驅(qū)動蜂鳴器報警。
4.2.9 GPS定位模塊電路設(shè)計
GPS接收模塊通過它的接收天線獲取衛(wèi)星信號,經(jīng)過變頻、放大、濾波、相關(guān)、混頻等一系列處理,可以實現(xiàn)對天線視界內(nèi)衛(wèi)星的跟蹤、鎖定和測量。在獲取了衛(wèi)星的位置信息和測算出衛(wèi)星信號傳播時間之后,即可計算出天線位置。用戶通過輸入輸出接口,與GPS接收模塊進行信息交換,實現(xiàn)功能。GPS接收模塊內(nèi)部結(jié)構(gòu)如圖所示。
該設(shè)計中GPS信號接收模塊所選用的是VK2828U7接收模塊,該模塊是由美國瑟孚科技有限公司所生產(chǎn)。主要使用到的引腳如下圖所示。該模塊具有12通道并行接收能力,所接收的GPS信號屬于民用頻段的L1信號(1575.42MHz),在沒有SA干擾的情況下平均定位誤差為10米,動態(tài)速度誤差為0.1米/秒,信號靈敏度達到-142dBm,冷啟動定位時間為42秒,熱啟動時間為38秒,重新定位時間僅僅需要8秒。
4.2.10 藍牙模塊電路設(shè)計
本次設(shè)計采用的無線通信模塊為HC05。HC05模塊是主從一體的,而且性能較高,可以與PDA、手機、電腦等具有藍牙功能的設(shè)備實現(xiàn)配對,該模塊所支持的波特率范圍非常大,為4800~1382400,而且該模塊和3.3V或5V的單片機系統(tǒng)相兼容,極其方便、靈活。
五、軟件編程設(shè)計
完整的控制系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成,前一章主要闡述了系統(tǒng)的硬件電路的設(shè)計方案,若要充分發(fā)揮系統(tǒng)的設(shè)計功能,則需要支持硬件平臺的軟件程序,即燒寫到單片機內(nèi)部的程序。本設(shè)計利用STM32為控制中心,采用的的是STM32F103C8T6芯片,開發(fā)環(huán)境是Keil uVision5 by ARM軟件,這款開發(fā)環(huán)境是目前STM32單片機系統(tǒng)的主流軟件,使用的非常頻繁。程序的燒錄使用的是STLINKV2下載器進行燒錄程序。
5.1軟件整體流程圖設(shè)計
主程序模塊:系統(tǒng)上電后,我們需要配置個個傳感器的引腳,然后初始化IIC 讓oled進行液晶顯示和ADXL345進行數(shù)據(jù)采集,采集完成后藍牙串口初始化等待發(fā)送數(shù)據(jù),DS18B20進行溫度采集,心率傳感器通過獲取當前心率值,時鐘顯示當前的時間,最后把數(shù)據(jù)通過藍牙發(fā)送到手機端,控制OLED顯示當前采集到的數(shù)據(jù),最后進入按鍵掃描判斷按鍵是否按下如果按下則處理按鍵掃描函數(shù)。
如下圖所示,是整個系統(tǒng)的主程序流程圖:
5.2 心率程序設(shè)計
本次設(shè)計采用的是MAX30102芯片對人體心率或者血氧進行采集,我們此次是用來做心率采集,MAX30102我們采用的是IIC進行通信首先我們需要在程序里面配置IIC數(shù)據(jù)傳輸的引腳分別進行配置,然后對IIC進行初始化bsp_InitI2C()
; MAX30102寫寄存器函數(shù)maxim_max30102_write_reg(uint8_t uch_addr, uint8_t uch_data);
MAX30102讀寄存器函數(shù)maxim_max30102_read_reg(uint8_t uch_addr, uint8_t *puch_data);
MAX30102初始化maxim_max30102_init(); MAX30102讀緩沖器FIFO maxim_max30102_read_fifo(uint32_t *pun_red_led, uint32_t *pun_ir_led);
計算心率,通過檢測PPG (photoplethysmographic,光電容積脈搏波描記法)周期的峰值和相應(yīng)的紅/紅外信號的AC/DC,計算出心率值
maxim_heart_rate_and_oxygen_saturation(uint32_t *pun_ir_buffer,
int32_t n_ir_buffer_length, uint32_t *pun_red_buffer,
int32_t *pn_spo2, int8_t *pch_spo2_valid,
int32_t *pn_heart_rate, int8_t *pch_hr_valid);
5.3 液晶顯示程序設(shè)計
要讓液晶顯示屏正常工作,首先寫入命令控制字,然后在寫入需要顯示的數(shù)據(jù)。寫入命令控制字之前,必須用指令來查看液晶是否正在工作。如果正在工作,那就必須等待,直到液晶發(fā)出工作完成的信號時,才能夠?qū)懭肟刂谱趾蛿?shù)據(jù)。液晶顯示模塊程序流程圖如下圖所示。
5.4 按鍵程序設(shè)計
按鍵電路有四個引腳。其中兩兩相同。我們在連接電路的時候只需要連接2個引腳就可以了。工作原理其實就是一個對信號的高低電平檢測。在我們按鍵被按下時,單片機引腳的IO口就會檢測為低電平。這些IO口電平特性的改變就會程執(zhí)行相應(yīng)的功能操作。判斷按鍵是否按下if(K10){while(K10)去延時,數(shù)值加;if(K20){delay_key()延遲,然后while(K20);是否按下如果按下,數(shù)值減。單獨按第三個按鍵就是清零流程圖如下圖所示:
5.5 DS18B20溫度采集程序設(shè)計
從DS18B20中讀取溫度的過程是:首先獲取DS18B20中的溫度值,該溫度值為BCD碼形式,然后通過轉(zhuǎn)換,以十進制形式輸出溫度值,且此時輸出的溫度值含有兩位小數(shù),但輸出時沒有小數(shù)點,輸出的溫度值是實際溫度的一百倍。它的步驟如下:
(1)初始化函數(shù)
(2)讀取溫度傳感器的溫度
(3)計算實際溫度值
如果測得的溫度大于0,只要將測到的數(shù)值乘以0.0625即可得到實際溫度;如果溫度小于0,測到的數(shù)值需要取反加1再乘以0.0625才能得到實際溫度。
5.6 DS1302時鐘程序設(shè)計
5.7 蜂鳴器報警程序設(shè)計
蜂鳴器的正極性的一端聯(lián)接到三極管上,為了防止三極管直接被導(dǎo)通我們加一個1K的限流電阻,通過單片機iO口來輸出高點電平,當管腳為高電平時,三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。當管腳為低電平時,三極管截至,蜂鳴器不發(fā)出聲音。其電路如圖所示。
流程圖如下:
5.8 ADXL345三軸傳感器程序設(shè)計
本次設(shè)計采用的是ADXL345三軸傳感器來檢測當前行走的步數(shù),ADXL345有2種通信方式,我們采用的是IIC進行數(shù)據(jù)傳輸。首先我們需要在程序里面配置IIC數(shù)據(jù)傳輸?shù)囊_分別為SCL對應(yīng)A6 ,SDL對應(yīng)A7,然后對ADXL345進行初始化Init_ADXL345();
寫入開始信號和停止信號。void ADXL345_Start();void ADXL345_Stop();
接收應(yīng)答信號:bit ADXL345_RecvACK(),
ADXL345開始讀取采集到的數(shù)據(jù)BYTE ADXL345_RecvByte();
讀取ADXL345的加速度值,從而判斷是否發(fā)生位移void Multiple_read_ADXL345(void);
如果讀取到的數(shù)據(jù)為0XE5表示發(fā)生位移行走。devid=Single_Read_ADXL345(0X00); if(devid!=0XE5)
5.9 GPS程序設(shè)計流程圖
先是STM32單片機對串口的引腳進行配置,配置完成后我們選擇需要用到的串口引腳進行初始化,引腳初始化完成后我們選擇相對應(yīng)的波特率來進行串口通信,延遲一段時間后開始獲取采集信息,本次設(shè)計使用了串口3,4G模塊 – USART1,GPS – USART2,BLE – USART3,DEBUG – UART4GPS
。接下來進行串口時鐘使能,RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
然后是GPIO端口模式設(shè)置,GPS數(shù)據(jù)采集部分流程圖如下圖所示:
5.10 藍牙程序流程圖設(shè)計
本次設(shè)計使用HC-05藍牙模塊作為單片機和手機間的的通信工具。首先給藍牙透傳模塊上電,此時led閃爍。單片機上的藍牙模塊也上電工作,藍牙主要是通過串口進行數(shù)據(jù)傳輸,初始化顯示內(nèi)容為uchar code Init1[]="WELCOME: ";延遲void HC-05 delay(uint z);
寫入命令void RART_com(uchar com);
寫數(shù)據(jù)void write_data(uchar date);
初始化void HC-05(void)讀取字節(jié)for(i=0;i<8;i++) {write_data(Init1[i]);}
最后我們通過手機點擊“搜索位于有效范圍內(nèi)的設(shè)備”,系統(tǒng)將搜索藍牙設(shè)備,默認設(shè)備名稱“CH-05”,雙擊或者點擊右鍵選擇“添加藍牙設(shè)備”, 輸入配對密碼(默認為“1234”)。點擊“下一步”,如果密碼正確,則單片機和手機之間則建立通信,在手機選擇波特率9600,在手機上顯示經(jīng)緯度信息和時間。下圖是HC-05藍牙通信模塊流程圖:
六、實物視頻及圖片
這里經(jīng)緯度和手機指南針做一下對比,手機經(jīng)緯度如下:
測試結(jié)果還是比較準確的。
手機APP設(shè)計:
視頻如下:
基于STM32的智能手環(huán)設(shè)計
博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實物的友友請關(guān)注、點贊,私信吧!