加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入

基于STM32的智能手環(huán)wifi連接手機(jī)APP

09/10 17:07
3307
服務(wù)支持:
技術(shù)交流群

完成交易后在“購(gòu)買成功”頁(yè)面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長(zhǎng)和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購(gòu)買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
    • 摘要
    • 一、研究背景及意義
    • 二、實(shí)現(xiàn)功能
    • 三、系統(tǒng)方案設(shè)計(jì)
    • 四、硬件電路設(shè)計(jì)
    • 五、軟件編程設(shè)計(jì)
    • 六、實(shí)物視頻及圖片
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

需要原理圖工程,源碼,PCB工程的朋友收藏,這篇文章關(guān)注我,私我吧?。。?/p>

請(qǐng)先閱讀此部分,再讀正文

說明:本次設(shè)計(jì)是在原有的STM32智能手環(huán)設(shè)計(jì)與實(shí)現(xiàn)的基礎(chǔ)上進(jìn)行了改進(jìn),改進(jìn)如下:加入ESPwifi模塊,替換掉藍(lán)牙模塊來實(shí)現(xiàn)手機(jī)APP的連接,刪掉了原手環(huán)中的GSP經(jīng)緯度定位功能,加入了血氧監(jiān)測(cè)功能。

摘要

本次設(shè)計(jì)主要組成是STM32單片機(jī)電路、ADXL345加速度傳感器、心率檢測(cè)電路、OLED液晶顯示電路、電源電路、時(shí)鐘DS1302DS18B20溫度傳感器組成。通過ADXL345測(cè)量重力加速度,是用來判斷人體狀態(tài),根據(jù)狀態(tài)的數(shù)值變化進(jìn)行計(jì)步功能。通過心率傳感器測(cè)試,通過手指脈動(dòng)放大經(jīng)過比較器處理后發(fā)送給單片機(jī)進(jìn)行心率采集。并將步數(shù)、心率,溫度、時(shí)間等信息顯示在液晶OLED上,當(dāng)?shù)够蛘邤?shù)據(jù)異常時(shí)蜂鳴器報(bào)警并且我們也可以通過藍(lán)牙模塊把當(dāng)前的數(shù)據(jù)發(fā)生到手機(jī)端進(jìn)行提醒,本次設(shè)計(jì)功能比較全面,具有良好的市場(chǎng)前景。

一、研究背景及意義

隨著科技與時(shí)代不斷進(jìn)步,電子感應(yīng)與加速計(jì)技術(shù)出現(xiàn),取代了以前的技術(shù),因此電子計(jì)步器隨之而來。電子計(jì)數(shù)器,振動(dòng)傳感器是目前電子計(jì)步器比較重要的兩大組成部分。心率是指一般人心臟在安靜狀態(tài)下每分鐘跳動(dòng)的次數(shù),因?yàn)槟挲g或則性別等因素,存在著差異性。這是檢驗(yàn)人體健康標(biāo)準(zhǔn)的一大指標(biāo),也是本次設(shè)計(jì)較為突出的一大重點(diǎn)。并且我們還通過溫度傳感器顯示當(dāng)前溫度和時(shí)鐘芯片顯示當(dāng)前時(shí)間便于訓(xùn)練。
在這個(gè)大環(huán)境的發(fā)展格局下,想設(shè)計(jì)一款集合計(jì)步功能和心率體溫計(jì)時(shí)跌倒報(bào)警定位檢測(cè)功能于一身的智能運(yùn)動(dòng)手環(huán)。
從而達(dá)到以下目的:
(1) 有利于社會(huì)公共交通安全;
(2) 提高人們法律意識(shí);
(3) 使之便捷、安全、準(zhǔn)確、高效,便于提高人體日常紅外運(yùn)動(dòng)的普及化;

二、實(shí)現(xiàn)功能

  1. 以STM32單片機(jī)為數(shù)據(jù)處理中心,通過DS18B20采集當(dāng)前溫度,MAX30102傳感器采集當(dāng)前人體心率值;
  2. 通過DS1302時(shí)鐘芯片可以方便時(shí)刻觀察時(shí)間;
  3. 通過ADXL345進(jìn)行計(jì)步里程,并且通過OLED液晶顯示屏顯示當(dāng)前信息;
  4. 采用按鍵可以進(jìn)行修改非常方便快捷;
  5. 通過GPS對(duì)當(dāng)前運(yùn)動(dòng)者進(jìn)行定位如果發(fā)生意外情況通過藍(lán)牙模塊發(fā)送藍(lán)牙進(jìn)行提醒;
  6. 時(shí)鐘具有掉電行走功能,重新上電后無需校準(zhǔn);

三、系統(tǒng)方案設(shè)計(jì)

系統(tǒng)方案設(shè)計(jì)框圖

在這里插入圖片描述

3.1 單片機(jī)芯片選擇

方案一:選擇ST公司的STC89C52單片機(jī)作為主控制器,STC89S52主要是低功耗、高性能器件,具有良好的存儲(chǔ)功能。該單片機(jī)價(jià)格低,功能比較全面, 功耗小,但它是個(gè)8位存儲(chǔ)器,不能達(dá)到實(shí)現(xiàn)本次設(shè)計(jì)的需求,故而因此放棄。
方案二:STM32單片機(jī)是一款超低功耗的32位器件,功能性比較豐富,模電數(shù)電集中到一個(gè)芯片上,可以較好地解決很多問題,實(shí)用性比較強(qiáng)。STM32F103C8T6是該系列應(yīng)用較為廣泛的一款控制芯片,該芯片運(yùn)行在32位系統(tǒng)、支持精簡(jiǎn)指令集、超低功耗的混合型單片機(jī),具有高可靠性、低功耗、易擴(kuò)展、體積小、性價(jià)比高、電路簡(jiǎn)單等優(yōu)勢(shì),在精密儀器上被廣泛應(yīng)用,以及很多智能化產(chǎn)品中,提高產(chǎn)品質(zhì)量,提升經(jīng)濟(jì)價(jià)值,已成為眾多單片機(jī)系列中一顆耀眼的新星。因此選擇方案二。

3.2 顯示器方案設(shè)計(jì)

方案一 :LED數(shù)碼管,這種數(shù)碼管的最大優(yōu)勢(shì)是價(jià)格較低,性能穩(wěn)定,可以非常簡(jiǎn)便的和單片機(jī)相連。主要是用于數(shù)字顯示上,實(shí)用性較高。但是數(shù)碼管顯示的數(shù)字有限,本次設(shè)計(jì)涉及數(shù)字較多,因此達(dá)不到設(shè)計(jì)的要求,此方案放棄。
方案二: 選擇OLED液晶顯示,常和單片機(jī)配合使用,他可以顯示大量的數(shù)據(jù),文字等等,顯示的位數(shù)也比較多,外觀較好,清晰,并且它的程序編寫起來比較簡(jiǎn)單。經(jīng)濟(jì)方面價(jià)格也比較低廉,其中OLED液晶顯示屏隨是比較有特色的一款,很適用于本次設(shè)計(jì),綜合下來選擇此方案。 故選擇方案二。

3.3 傾角傳感器設(shè)計(jì)

方案一 :選用陀螺儀來檢測(cè)位置的信息,功能比較強(qiáng),精度準(zhǔn)確,穩(wěn)定性強(qiáng),但是此器件精度要求高,控制起來較為復(fù)雜,不適用于本次設(shè)計(jì)。
方案二:選用ADI公司的傾角傳感器ADXL345模塊來檢測(cè)位置的信息,ADXL345功能比較全面,有很多存儲(chǔ)空間,其成本預(yù)算較低,便于控制。因此選擇方案二。

3.4心率檢測(cè)傳感器設(shè)計(jì)

方案一 :選用壓力傳感器收集心率血氧數(shù)據(jù),但其抗干擾能力較差,會(huì)對(duì)設(shè)計(jì)測(cè)量產(chǎn)生偏差,且測(cè)量的難度相對(duì)較大,很難達(dá)到本次設(shè)計(jì)的預(yù)期目的,所以排除此方案。
方案二 :選用MAX30102紅外模塊采集心率信號(hào),此模塊對(duì)管心率信號(hào)采集較為穩(wěn)定,其抗干擾能力較強(qiáng),測(cè)量的數(shù)值比較準(zhǔn)確,波形穩(wěn)定,相對(duì)于本次設(shè)計(jì)是一個(gè)很好的選擇。故選擇方案二。

3.5 溫度傳感器設(shè)計(jì)

DS18B20溫度傳感器是美國(guó)達(dá)拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等做在一個(gè)很小的集成電路芯片上。溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比較和考慮后決定的,此傳感器不但可以防水溫度檢測(cè)的范圍比較廣,價(jià)格低廉而且使用起來也比較方便。

3.6 無線數(shù)據(jù)傳輸設(shè)計(jì)

方案一 :選擇采用NRF24L01模塊進(jìn)行傳輸,但是傳輸過程中需要只是2快板子分為主從才可以進(jìn)行無線通信。
方案二: 選用HC05藍(lán)牙模塊,我們只需要通過此模塊進(jìn)行串口通信在手機(jī)端下載廠家提供的APP就可以完成數(shù)據(jù)的傳輸和顯示,價(jià)格也比較便宜傳輸數(shù)據(jù)穩(wěn)定。故選擇方案二。

3.7 時(shí)鐘模塊設(shè)計(jì)

方案一 :選擇單片機(jī)內(nèi)部時(shí)鐘,通過程序來顯示當(dāng)前的信息和參數(shù),不需要外接傳感器,但是內(nèi)部時(shí)鐘精度較差,非常容易產(chǎn)生積累誤差并且無法掉電行走。
方案二 :選用DS1302時(shí)鐘芯片,此芯片價(jià)格便宜,是專門用來處理萬年歷方面的信息,精準(zhǔn)度較高,并且數(shù)據(jù)可以通過電子進(jìn)行掉電行走,上電后無需重新設(shè)置。故選擇方案二。

四、硬件電路設(shè)計(jì)

4.1 STM32單片機(jī)介紹

單片機(jī)的最小系統(tǒng)應(yīng)能讓單片機(jī)正常工作并且能夠正常的發(fā)揮其功能的一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。它是一個(gè)小型的電腦設(shè)備所具有的那樣擁有者明顯的大腦,也就是控制的核心。同時(shí),也具有一些輸出設(shè)備,還有就是定時(shí)器,能夠作為時(shí)間的控制中心,具有作為通訊的接口,把所有需要用到的都集中在一個(gè)小小的芯片之上,這就是單片機(jī)。當(dāng)然單片機(jī)現(xiàn)在的發(fā)展已經(jīng)比較先進(jìn),我們來看一下作為最基本的存在它是怎樣的。如下圖:在這里插入圖片描述
STM32F103是STM32f101的增強(qiáng)型單片機(jī),在32位的MCU中性能最強(qiáng);具有出眾的控制和通訊,非常適合低電壓/低功耗的應(yīng)用場(chǎng)合。下圖為STM32內(nèi)核:
在這里插入圖片描述
對(duì)于本次設(shè)計(jì),我們選擇的單片機(jī)是STM32F103C8T6單片機(jī)。此單片機(jī)和51系列相比多了很多功能,不但運(yùn)行速度比51單片機(jī)要快很多,自帶2個(gè)AD轉(zhuǎn)換,方便我們?cè)谠O(shè)計(jì)煙霧和CO的時(shí)候免去了需要加外部ADC進(jìn)行轉(zhuǎn)換,非常方便;
STM32實(shí)物圖如下圖所示:在這里插入圖片描述

4.2 主要功能模塊電路設(shè)計(jì)

4.2.1 電源電路設(shè)計(jì)

單片機(jī)的電源采用直流5V供電,電源模塊包括一個(gè)3腳的電源座子和6腳的電源開關(guān)。電源座子用于連接外部的電源插頭,電源開關(guān)用于控制整個(gè)單片機(jī)的電路開和關(guān)。原理圖如下:在這里插入圖片描述

4.2.2 ADXL345傾角傳感器電路設(shè)計(jì)

ADXL345的內(nèi)部功能結(jié)構(gòu)如下圖所示,X、Y、Z三個(gè)相互正交的的方向上的加速度由 G-Cell傳感器感知,經(jīng)過容壓變換器、增益放大、濾波器和電壓信號(hào)輸出。然后我們就可以得到步數(shù),我們?cè)O(shè)置步數(shù)距離后可以通過步數(shù)在計(jì)算里程,ADXL345內(nèi)部功能圖如下:在這里插入圖片描述
ADXL345的三個(gè)相互正交的測(cè)量方向如下圖,固定在人體上后,這三個(gè)方向上的數(shù)據(jù)意義也就隨之確定了。在這里插入圖片描述
引腳配置(頂視圖):在這里插入圖片描述
ADXL345是一款小而薄的超低功耗3軸加速度計(jì),分辨率高(13位),測(cè)量范圍達(dá)±16g。數(shù)字輸出數(shù)據(jù)為16位二進(jìn)制補(bǔ)碼格式,可通過SPI(3線或4線)或I2C數(shù)字接口訪問。ADXL345非常適合移動(dòng)設(shè)備應(yīng)用。它可以在傾斜檢測(cè)應(yīng)用中測(cè)量靜態(tài)重力加速度,還可以測(cè)量運(yùn)動(dòng)或沖擊導(dǎo)致的動(dòng)態(tài)加速度。其高分辨率(3.9mg/LSB),能夠測(cè)量不到1.0°的傾斜角度變化。
在這里插入圖片描述

4.2.3 心率傳感器電路設(shè)計(jì)

測(cè)心率實(shí)際上也在同時(shí)檢測(cè)血氧,只是基于本模塊我們只用到心率檢測(cè),把血氧檢測(cè)到的數(shù)據(jù)不顯示,所以實(shí)際在運(yùn)用的時(shí)候我們也在同時(shí)測(cè)血氧飽和度。
MAX30102 是一個(gè)集成的脈搏血氧儀和心率監(jiān)測(cè)儀生物傳感器的模塊。它集成了一個(gè)紅光 LED 和一個(gè)紅外光 LED、光電檢測(cè)器、光器件,以及帶環(huán)境光抑制的低噪聲電子電路。
原理說明:
傳統(tǒng)的脈搏測(cè)量方法主要有三種:一是從心電信號(hào)中提??;二是從測(cè)量血壓時(shí)壓力傳感器測(cè)到的波動(dòng)來計(jì)算脈率;三是光電容積法。前兩種方法提取信號(hào)都會(huì)限制病人的活動(dòng),如果長(zhǎng)時(shí)間使用會(huì)增加病人生理和心理上的不舒適感。而光電容積法脈搏測(cè)量作為監(jiān)護(hù)測(cè)量中最普遍的方法之一,其具有方法簡(jiǎn)單、佩戴方便、可靠性高等特點(diǎn)。在這里插入圖片描述

4.2.4 OLED顯示屏電路設(shè)計(jì)

有機(jī)發(fā)光顯示器(Organic Light Emitting Display,OLED)是一種新型發(fā)光和顯示器件。OLED實(shí)質(zhì)上是一個(gè)薄膜器件,即在陽極和陰極之間夾多層有機(jī)薄膜組成的穩(wěn)定的綠色有機(jī)薄膜電致發(fā)光器件。當(dāng)有電流通過時(shí),這些有機(jī)材料就會(huì)發(fā)光。OLED使用普通的矩陣交叉屏,OLED位于交叉排列的陽極和陰極中間,通過對(duì)陽極和陰極組合的選通,可以控制每一個(gè)OLED的點(diǎn)亮。
液晶顯示模塊電路如圖所示,P5是一個(gè)4孔的排針,專門供OLED液晶顯示屏使用,5V是指接的5V電壓;顯示屏的SCL引腳連接的是單片機(jī)的B6引腳,通過SCL引腳傳輸串行時(shí)鐘數(shù)據(jù);SDA引腳連接的是單片機(jī)的B7引腳,通過SDA引腳傳輸串行數(shù)據(jù)。在這里插入圖片描述
在這里插入圖片描述

4.2.5 DS18B20溫度電路設(shè)計(jì)

DS18B20 是美國(guó) DALLAS 半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。它的主要技術(shù)特性如下:
① 具有獨(dú)特的單線接口方式,即微處理器與其接口時(shí)僅需占用 1 位I/O 端口;
② 支持多節(jié)點(diǎn),使分布式多點(diǎn)測(cè)溫系統(tǒng)的線路結(jié)構(gòu)設(shè)計(jì)和硬件開銷大為簡(jiǎn)化;
③ 測(cè)溫時(shí)無需任何外部元件:
④ 可以通過數(shù)據(jù)線供電,具有超低功耗工作方式:
⑤ 測(cè)溫范圍為-55~+125℃,測(cè)溫精度為±0.5℃:
⑥ 溫度轉(zhuǎn)換精度 9-12 位可編程,能夠直接將溫度轉(zhuǎn)換值以 16 位二進(jìn)制數(shù)碼的方式串行輸出。12 位精度轉(zhuǎn)換的最大時(shí)間為 750ms。
DS18B20溫度傳感器結(jié)構(gòu)圖:
在這里插入圖片描述

4.2.6 DS1302時(shí)鐘電路設(shè)計(jì)

DS1302是一款專門處理時(shí)鐘的芯片,晶振為32.768,
1、由美國(guó)DALLAS公司推出。
2、它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路。
3、DS1302使用方便,接線簡(jiǎn)單,適合此電子時(shí)鐘的設(shè)計(jì)制作。
4、DS1302可以對(duì)年月日時(shí)分秒等進(jìn)行計(jì)時(shí),并且?guī)в虚c年補(bǔ)償功能。
5、它可以一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)。并且內(nèi)部有存放數(shù)據(jù)的RAM寄存器
6、DS1302的 工作電壓寬達(dá)2.5~5.5V。同時(shí)還提供了對(duì)后備電源的引腳。
在這里插入圖片描述
1引腳:VCC2為主電源引腳。

8引腳:VCC1備用電源引腳。

備注:DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。由于本設(shè)計(jì)未引用備用電源,只引用了1引腳,主電源引腳。

2和3引腳:X1、X2外接晶振引腳。(外接32.768kHz晶振)

4引腳:GND為接地引腳。

5引腳:CE/RST為復(fù)位/片選線。通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。

RST接通控制邏輯,允許地址/命令序列送入移位寄存器;

RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。

6引腳:I/O為數(shù)據(jù)輸入輸出口。在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。

7引腳:SCLK為串行時(shí)鐘,輸入。

4.2.7 按鍵電路設(shè)計(jì)

本設(shè)計(jì)一共設(shè)置有5個(gè)控制命令按鍵:參數(shù)設(shè)置;設(shè)置加;設(shè)置減;清除當(dāng)前步數(shù)里程。我們采用的是獨(dú)立式的按鍵,獨(dú)立式按鍵就是每單個(gè)的按鍵就會(huì)有一條單獨(dú)的I/O線,他們之間互不影響,按鍵一端接地,采用的是低電平有效,按下按鍵就會(huì)連接該條線路。鍵盤抖動(dòng)的消除采用的是軟件消除,因?yàn)橛布枰饨悠骷杀靖咭脖容^麻煩,軟件消除的原理是線建立一個(gè)子程序,在檢測(cè)到按鍵閉合時(shí)先執(zhí)行子程序延時(shí)功能,按鍵斷開時(shí)也執(zhí)行數(shù)毫秒的功能從而達(dá)到消除抖動(dòng)的目的。電路圖設(shè)計(jì):在這里插入圖片描述

4.2.8 蜂鳴器報(bào)警電路設(shè)計(jì)

按鍵我們可以用于設(shè)置心率體溫上限,血氧下限,當(dāng)參數(shù)不在范圍內(nèi)蜂鳴器進(jìn)行聲光報(bào)警提醒。
蜂鳴器是一種蜂鳴元器件,供電時(shí)就進(jìn)行蜂鳴,操作非常簡(jiǎn)單。市場(chǎng)上有很多蜂鳴器,我們選擇提供5V電源的蜂鳴器被認(rèn)為是實(shí)用的。當(dāng)我們使用蜂鳴器時(shí),我們有一個(gè)小技巧。如果我們覺得蜂鳴器不夠響,我們可以把蜂鳴器頂部的紙去掉。在本次設(shè)計(jì)中,當(dāng)檢測(cè)到溫度或者煙霧濃度高于報(bào)警上限時(shí),蜂鳴器報(bào)警。蜂鳴器電路如圖3.6所示,由3部分組成,一部分是一個(gè)1k的電阻,第二部分是一個(gè)PNP三極管,最后一部分就是蜂鳴器。三極管采用NPN三極管,其主要功能是放大電流和電平特性,因?yàn)閱纹瑱C(jī)電路的電路非常小,無法提供蜂鳴器所需的電流,經(jīng)過三極管放大驅(qū)動(dòng)電流后,電流放大200倍,驅(qū)動(dòng)蜂鳴器報(bào)警。
在這里插入圖片描述

4.2.9 WIFI模塊設(shè)計(jì)

本次設(shè)計(jì)關(guān)于無線通信方面我們采用的模塊是WIFI模塊,我們通過此模塊可以把當(dāng)前的數(shù)據(jù)和參數(shù)無線端發(fā)送到用戶手機(jī)上進(jìn)行顯示。
本次設(shè)計(jì)無線通信部分采用ESP8266無線串口模塊作為數(shù)據(jù)發(fā)送模塊。ESP8266模塊是一款超低功耗的UART-WiFi 透?jìng)髂K,功能非常強(qiáng)大,通信距離很遠(yuǎn),價(jià)格低,體積小,方便去嵌入奧任何產(chǎn)品,功能強(qiáng)大內(nèi)部跑LWIP協(xié)議,支持AP,STA,AP+STA三種模式,簡(jiǎn)潔高效的AT指令。ESP8266無線模塊工作電壓是3.3V,單片機(jī)5V電壓滿足其工作電壓要求,而且體積很小,價(jià)格非常便宜。在本次設(shè)計(jì)中用于單片機(jī)和手機(jī)之間的無線通信,通過WIFI模塊,單片機(jī)將溫濕度和煙霧濃度值發(fā)送給手機(jī)端,最后顯示在APP上。下圖是ESP8266模塊電路圖,從圖中可以看出,2號(hào)、4號(hào)和8號(hào)引腳接地,1號(hào)引腳連接單片機(jī)的RXD引腳,5號(hào)引腳連接單片機(jī)的TXD引腳。
在這里插入圖片描述

五、軟件編程設(shè)計(jì)

完整的控制系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成,前一章主要闡述了系統(tǒng)的硬件電路的設(shè)計(jì)方案,若要充分發(fā)揮系統(tǒng)的設(shè)計(jì)功能,則需要支持硬件平臺(tái)的軟件程序,即燒寫到單片機(jī)內(nèi)部的程序。本設(shè)計(jì)利用STM32為控制中心,采用的的是STM32F103C8T6芯片,開發(fā)環(huán)境是Keil uVision5 by ARM軟件,這款開發(fā)環(huán)境是目前STM32單片機(jī)系統(tǒng)的主流軟件,使用的非常頻繁。程序的燒錄使用的是STLINKV2下載器進(jìn)行燒錄程序。

5.1軟件整體流程圖設(shè)計(jì)

主程序模塊:系統(tǒng)上電后,我們需要配置個(gè)個(gè)傳感器的引腳,然后初始化IIC 讓oled進(jìn)行液晶顯示和ADXL345進(jìn)行數(shù)據(jù)采集,采集完成后藍(lán)牙串口初始化等待發(fā)送數(shù)據(jù),DS18B20進(jìn)行溫度采集,心率傳感器通過獲取當(dāng)前心率值,時(shí)鐘顯示當(dāng)前的時(shí)間,最后把數(shù)據(jù)通過藍(lán)牙發(fā)送到手機(jī)端,控制OLED顯示當(dāng)前采集到的數(shù)據(jù),最后進(jìn)入按鍵掃描判斷按鍵是否按下如果按下則處理按鍵掃描函數(shù)。
如下圖所示,是整個(gè)系統(tǒng)的主程序流程圖:
在這里插入圖片描述

5.2 心率程序設(shè)計(jì)

本次設(shè)計(jì)采用的是MAX30102芯片對(duì)人體心率或者血氧進(jìn)行采集,我們此次是用來做心率采集,MAX30102我們采用的是IIC進(jìn)行通信首先我們需要在程序里面配置IIC數(shù)據(jù)傳輸的引腳分別進(jìn)行配置,然后對(duì)IIC進(jìn)行初始化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); 計(jì)算心率,通過檢測(cè)PPG (photoplethysmographic,光電容積脈搏波描記法)周期的峰值和相應(yīng)的紅/紅外信號(hào)的AC/DC,計(jì)算出心率值

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è)計(jì)

要讓液晶顯示屏正常工作,首先寫入命令控制字,然后在寫入需要顯示的數(shù)據(jù)。寫入命令控制字之前,必須用指令來查看液晶是否正在工作。如果正在工作,那就必須等待,直到液晶發(fā)出工作完成的信號(hào)時(shí),才能夠?qū)懭肟刂谱趾蛿?shù)據(jù)。液晶顯示模塊程序流程圖如下圖所示。
在這里插入圖片描述

5.4 按鍵程序設(shè)計(jì)

按鍵電路有四個(gè)引腳。其中兩兩相同。我們?cè)谶B接電路的時(shí)候只需要連接2個(gè)引腳就可以了。工作原理其實(shí)就是一個(gè)對(duì)信號(hào)的高低電平檢測(cè)。在我們按鍵被按下時(shí),單片機(jī)引腳的IO口就會(huì)檢測(cè)為低電平。這些IO口電平特性的改變就會(huì)程執(zhí)行相應(yīng)的功能操作。判斷按鍵是否按下if(K10){while(K10)去延時(shí),數(shù)值加;if(K20){delay_key()延遲,然后while(K20);是否按下如果按下,數(shù)值減。單獨(dú)按第三個(gè)按鍵就是清零流程圖如下圖所示:
在這里插入圖片描述

5.5 DS18B20溫度采集程序設(shè)計(jì)

從DS18B20中讀取溫度的過程是:首先獲取DS18B20中的溫度值,該溫度值為BCD碼形式,然后通過轉(zhuǎn)換,以十進(jìn)制形式輸出溫度值,且此時(shí)輸出的溫度值含有兩位小數(shù),但輸出時(shí)沒有小數(shù)點(diǎn),輸出的溫度值是實(shí)際溫度的一百倍。它的步驟如下:
(1)初始化函數(shù)
(2)讀取溫度傳感器的溫度
(3)計(jì)算實(shí)際溫度值

如果測(cè)得的溫度大于0,只要將測(cè)到的數(shù)值乘以0.0625即可得到實(shí)際溫度;如果溫度小于0,測(cè)到的數(shù)值需要取反加1再乘以0.0625才能得到實(shí)際溫度。
在這里插入圖片描述

5.6 DS1302時(shí)鐘程序設(shè)計(jì)

在這里插入圖片描述

5.7 蜂鳴器報(bào)警程序設(shè)計(jì)

蜂鳴器的正極性的一端聯(lián)接到三極管上,為了防止三極管直接被導(dǎo)通我們加一個(gè)1K的限流電阻,通過單片機(jī)iO口來輸出高點(diǎn)電平,當(dāng)管腳為高電平時(shí),三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。當(dāng)管腳為低電平時(shí),三極管截至,蜂鳴器不發(fā)出聲音。其電路如圖所示。
流程圖如下:
在這里插入圖片描述

5.8 ADXL345三軸傳感器程序設(shè)計(jì)

本次設(shè)計(jì)采用的是ADXL345三軸傳感器來檢測(cè)當(dāng)前行走的步數(shù),ADXL345有2種通信方式,我們采用的是IIC進(jìn)行數(shù)據(jù)傳輸。首先我們需要在程序里面配置IIC數(shù)據(jù)傳輸?shù)囊_分別為SCL對(duì)應(yīng)A6 ,SDL對(duì)應(yīng)A7,然后對(duì)ADXL345進(jìn)行初始化Init_ADXL345();寫入開始信號(hào)和停止信號(hào)。void ADXL345_Start();void ADXL345_Stop();接收應(yīng)答信號(hào):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 WIFI模塊設(shè)計(jì)

本次設(shè)計(jì)采用的無線通信模塊esp8266,此模塊我們只需要和單片機(jī)進(jìn)行串口通信通過相應(yīng)的AT指令集就可以對(duì)數(shù)據(jù)進(jìn)行無線傳輸,利用wifi模塊的熱點(diǎn)模式。供電電壓3-3.6V ,峰值輸出功率20DBM。峰值電流240毫安。波特率我們采用115200。我們只需要連接3.3V,GND TXD RXD就可以和單片機(jī)進(jìn)行通信,并且手機(jī)端可以接受到當(dāng)前wifi 發(fā)送的數(shù)據(jù)信息。
首先初始化波特率為115200 . void esp8266_init(),配置wifi模式為AP熱點(diǎn)模式void esp_ap_mode(void),Uart1_SendStr(“AT+CWMODE=2rn”);設(shè)置wifi名稱和密碼Uart1_SendStr(“AT+CWSAP=“TEST”,“12345678”,1,3rn”); 通過串口把指令發(fā)送出去,Uart1_SendStr(“AT+CIPMUX=1rn”);建立多路連接模式(可由一個(gè)或者是多個(gè)esp8266向手機(jī)端發(fā)送數(shù)據(jù)),Uart1_SendStr(“AT+CIPSERVER=1,8080rn”);配置端口號(hào)為8080。開始發(fā)送數(shù)據(jù)void esp_send_buf(unsigned char conn_id, char * buf, unsigned char len); printf(“AT+CIPSEND=%d,%drn”,conn_id,len);d第一個(gè)表示ID號(hào)第二個(gè)表示數(shù)據(jù)長(zhǎng)度。strx = strstr((const char*)Usart1RecBuf,(const char*)“SEND OK”);發(fā)送完成

六、實(shí)物視頻及圖片

視頻:

基于STM32的智能手環(huán)wifi連接手機(jī)APP

實(shí)物圖片:
在這里插入圖片描述
在這里插入圖片描述

手機(jī)APP設(shè)計(jì):
在這里插入圖片描述

博客主頁(yè):https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實(shí)物的友友請(qǐng)關(guān)注、點(diǎn)贊,私信吧!

  • 聯(lián)系方式.txt

相關(guān)推薦

電子產(chǎn)業(yè)圖譜