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

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

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

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

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

虛擬商品不可退

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

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

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

請先閱讀此部分,再讀正文

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

摘要

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

一、研究背景及意義

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

二、實現(xiàn)功能

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

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

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

4.1 STM32單片機介紹

單片機的最小系統(tǒng)應(yīng)能讓單片機正常工作并且能夠正常的發(fā)揮其功能的一個集成在一塊芯片上的完整計算機系統(tǒng)。它是一個小型的電腦設(shè)備所具有的那樣擁有者明顯的大腦,也就是控制的核心。同時,也具有一些輸出設(shè)備,還有就是定時器,能夠作為時間的控制中心,具有作為通訊的接口,把所有需要用到的都集中在一個小小的芯片之上,這就是單片機。當(dāng)然單片機現(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ā)光器件。當(dāng)有電流通過時,這些有機材料就會發(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兩者中的較大者供電。當(dāng)Vcc2大Vcc1+0.2V時,Vcc2給DS1302供電。當(dāng)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è)置減;清除當(dāng)前步數(shù)里程。我們采用的是獨立式的按鍵,獨立式按鍵就是每單個的按鍵就會有一條單獨的I/O線,他們之間互不影響,按鍵一端接地,采用的是低電平有效,按下按鍵就會連接該條線路。鍵盤抖動的消除采用的是軟件消除,因為硬件需要外接器件成本高也比較麻煩,軟件消除的原理是線建立一個子程序,在檢測到按鍵閉合時先執(zhí)行子程序延時功能,按鍵斷開時也執(zhí)行數(shù)毫秒的功能從而達到消除抖動的目的。電路圖設(shè)計:在這里插入圖片描述

4.2.8 蜂鳴器報警電路設(shè)計

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

4.2.9 WIFI模塊設(shè)計

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

五、軟件編程設(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進行溫度采集,心率傳感器通過獲取當(dāng)前心率值,時鐘顯示當(dāng)前的時間,最后把數(shù)據(jù)通過藍牙發(fā)送到手機端,控制OLED顯示當(dāng)前采集到的數(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āng)管腳為高電平時,三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。當(dāng)管腳為低電平時,三極管截至,蜂鳴器不發(fā)出聲音。其電路如圖所示。
流程圖如下:
在這里插入圖片描述

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

本次設(shè)計采用的是ADXL345三軸傳感器來檢測當(dāng)前行走的步數(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 WIFI模塊設(shè)計

本次設(shè)計采用的無線通信模塊esp8266,此模塊我們只需要和單片機進行串口通信通過相應(yīng)的AT指令集就可以對數(shù)據(jù)進行無線傳輸,利用wifi模塊的熱點模式。供電電壓3-3.6V ,峰值輸出功率20DBM。峰值電流240毫安。波特率我們采用115200。我們只需要連接3.3V,GND TXD RXD就可以和單片機進行通信,并且手機端可以接受到當(dāng)前wifi 發(fā)送的數(shù)據(jù)信息。
首先初始化波特率為115200 . void esp8266_init(),配置wifi模式為AP熱點模式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”);建立多路連接模式(可由一個或者是多個esp8266向手機端發(fā)送數(shù)據(jù)),Uart1_SendStr(“AT+CIPSERVER=1,8080rn”);配置端口號為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第一個表示ID號第二個表示數(shù)據(jù)長度。strx = strstr((const char*)Usart1RecBuf,(const char*)“SEND OK”);發(fā)送完成

六、實物視頻及圖片

視頻:

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

實物圖片:
在這里插入圖片描述
在這里插入圖片描述

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

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

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

相關(guān)推薦

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