黃鳳英
摘 要:文中設(shè)計(jì)了一種能夠?qū)崟r(shí)監(jiān)測(cè)人體溫度、統(tǒng)計(jì)運(yùn)動(dòng)步數(shù)的多功能智能手表。設(shè)計(jì)采用STM32F103C8T6單片機(jī)作為系統(tǒng)主控,將德州儀器設(shè)計(jì)生產(chǎn)的TMP100作為溫度采集傳感器,可對(duì)人體溫度、運(yùn)動(dòng)步數(shù)等參數(shù)進(jìn)行采集、分析和顯示。當(dāng)體溫?cái)?shù)據(jù)處于不正常范圍時(shí),智能手表會(huì)發(fā)出相應(yīng)的提示警告。經(jīng)測(cè)試,文中設(shè)計(jì)的手表可實(shí)現(xiàn)準(zhǔn)確計(jì)時(shí)與人體溫度的實(shí)時(shí)監(jiān)控及每日步數(shù)的實(shí)時(shí)記錄,方便用戶根據(jù)獲取的體溫及運(yùn)動(dòng)數(shù)據(jù)對(duì)自身的健康狀況做出處理。
關(guān)鍵詞:傳感器;體溫;計(jì)步;智能手表;STM32F103C8T6單片機(jī);TMP100
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)03-00-03
0 引 言
體溫是機(jī)體不斷新陳代謝的結(jié)果,同時(shí)體溫又是機(jī)體功能活動(dòng)正常進(jìn)行的重要保障。在正常情況下,人體溫度不隨外界環(huán)境溫度的變化而變化,保持在37 ℃左右。但是當(dāng)人體內(nèi)的某些機(jī)能發(fā)生變化或某些部位產(chǎn)生病變時(shí),恒定的體溫將會(huì)發(fā)生改變。在臨床醫(yī)學(xué)中,體溫是一個(gè)重要的生理參數(shù),病人的體溫為醫(yī)生提供了了解生理狀況的重要信息,同時(shí)還可以對(duì)某些重大疾病或隱藏于身體內(nèi)部的健康問(wèn)題起到積極的預(yù)防和警示作用[1]。所以人們需要并有必要實(shí)時(shí)了解自身的體溫狀況,使自己的體溫維持在一個(gè)相對(duì)穩(wěn)定的狀態(tài)。
針對(duì)人們對(duì)自身體溫實(shí)時(shí)監(jiān)測(cè)的需求,本文設(shè)計(jì)了一個(gè)擁有128×64大小OLED顯示屏的智能多功能手表,主要采用STM32F103C8T6單片機(jī)作為系統(tǒng)主控單元,將德州儀器設(shè)計(jì)生產(chǎn)的TMP100作為溫度采集傳感器。該手表可實(shí)時(shí)記錄采集的數(shù)據(jù)與每日運(yùn)動(dòng)量,并對(duì)人體溫度進(jìn)行實(shí)時(shí)監(jiān)控。當(dāng)用戶獲得自身的健康數(shù)據(jù)后便可以采取相應(yīng)措施使自己保持健康的狀態(tài)。在這基礎(chǔ)之上,本文采用更低功耗的主控芯片與外圍器件,提高設(shè)備的續(xù)航能力,優(yōu)化用戶操作界面,使設(shè)備能真正運(yùn)用到生活中,為實(shí)時(shí)健康監(jiān)測(cè)提供可能。
1 系統(tǒng)功能介紹
本文設(shè)計(jì)的智能手表主要具有時(shí)鐘功能、體溫實(shí)時(shí)檢測(cè)功能和計(jì)步功能,系統(tǒng)功能結(jié)構(gòu)如圖1所示。
(1)在時(shí)鐘功能界面下,用戶可以選擇手動(dòng)校準(zhǔn)時(shí)間。
(2)在體溫檢測(cè)功能界面下,用戶可以查看此刻自身的體溫,也可以查看當(dāng)天自身體溫的變化情況。
(3)在計(jì)步功能界面下,用戶可以查看當(dāng)天的累計(jì)步數(shù),了解自身運(yùn)動(dòng)量。
此外,用戶在使用設(shè)備的過(guò)程中一旦體溫下降或者上升,低于或超過(guò)閾值,則系統(tǒng)會(huì)向用戶發(fā)出警告,提醒用戶此刻體溫處于非正常狀態(tài),用戶可根據(jù)自身情況及時(shí)處理。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件組成及原理
多功能智能手表系統(tǒng)硬件主要由電源管理模塊、主控芯片模塊、溫度傳感器模塊、加速度傳感器模塊和OLED液晶顯示器與按鍵組成,硬件系統(tǒng)的組成及連接關(guān)系如圖2所示。電源管理模塊將不穩(wěn)定的電池電壓轉(zhuǎn)換成系統(tǒng)需要的3.3 V穩(wěn)定電壓,并輸送給各個(gè)模塊。主控芯片從溫度傳感器和加速度傳感器獲取采集數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行算法處理,最終通過(guò)人機(jī)交互模塊顯示出來(lái)。
2.2 系統(tǒng)主要硬件模塊設(shè)計(jì)
STM32F103C8T6是一款基于ARM 32位Cortext M3內(nèi)核的單片機(jī),具有2.0~3.6 V的寬電壓供電范圍,CPU工作頻率最大可達(dá)72 MHz,具有單周期乘法指令和硬件除法功能,以及優(yōu)先級(jí)可編程的中斷系統(tǒng)[2]。同時(shí)它還具有 64 KB的FLASH存儲(chǔ)器與20 KB的SRAM存儲(chǔ)器,集成了豐富的片內(nèi)外設(shè),如看門狗,定時(shí)器,GPIO口,DMA控制器,ADC,UART,SPI接口,I2C接口等,具有成本低、速度快、性價(jià)比高等優(yōu)點(diǎn)[3]。
人體溫度采集傳感器采用德州儀器生產(chǎn)的TMP100。TMP100是一個(gè)SOT23-6封裝的兩線串行輸出溫度傳感器,無(wú)需其他元器件,精度可達(dá)0.062 5 ℃。此外TMP100具有系統(tǒng)管理總線以及I2C接口的兼容性,可在總線上掛載8個(gè)設(shè)備。工作溫度為-55~125 ℃,測(cè)量精度可通過(guò)程序編程選擇。TMP100的器件地址由ADD0和ADD12個(gè)引腳決定,引腳輸入與器件地址的關(guān)系見表1所列。根據(jù)設(shè)計(jì)原理與圖中ADD0和ADD1引腳接地可知,TMP100的器件地址應(yīng)為0x48。
加速度傳感器模塊采用飛思卡爾,這是一款比較新的MMA8452加速度傳感器。飛思卡爾是具有12位分辨率的智能低功耗、三軸、電容式微機(jī)械加速度傳感器,其主要特性如下:
(1)可以感受X,Y,Z三個(gè)自由度的加速度信號(hào),全方位感知人體運(yùn)動(dòng)信息。
(2)具有±2 g/±4 g/±8 g的可選量程。傳感器的靈敏度在±2 g量程時(shí)為1 024個(gè)數(shù)字/g,靈敏度精度為±2.5%。
采集的加速度數(shù)據(jù)可以通過(guò)傳感器內(nèi)部的高通濾波器實(shí)時(shí)輸出,濾波器的截止頻率可以通過(guò)軟件設(shè)置,也可以不經(jīng)過(guò)濾波器直接輸出。輸出信號(hào)被轉(zhuǎn)換為12位數(shù)字量信號(hào),經(jīng)I2C接口輸出,輸出數(shù)據(jù)速率在1.25~800 Hz之間,可調(diào)[4]。
電源管理芯片采用德州儀器設(shè)計(jì)生產(chǎn)的TPS79333,其具有超低噪聲、高PSRR、快速射頻、高電平啟用的200 mA低壓降穩(wěn)壓器,可將3.7~5 V的電源電壓穩(wěn)定在3.3 V,具有體積小、效率高、噪聲小等特點(diǎn)[5-7]。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 程序主框架搭建
本文設(shè)計(jì)采用主循環(huán)和定時(shí)器中斷相結(jié)合的運(yùn)行框架。主循環(huán)中實(shí)現(xiàn)OLED顯示功能。定時(shí)器可定時(shí)對(duì)溫度、加速度傳感器進(jìn)行數(shù)據(jù)采集和算法處理。程序主框架如圖3所示。
3.2 時(shí)鐘功能設(shè)計(jì)與實(shí)現(xiàn)
時(shí)鐘模塊主要以定時(shí)器中斷為主,打開一個(gè)定時(shí)器中斷,中斷時(shí)間為0.1 s,累計(jì)600次加1分鐘,累計(jì)60分鐘加1小時(shí),效果如圖4所示。
3.3 體溫監(jiān)測(cè)功能設(shè)計(jì)與實(shí)現(xiàn)
TSP100溫度傳感器是一款數(shù)字傳感器,為I2C通信方式。ADD0和ADD1同時(shí)接地,查表可知,器件地址為0x90,初始化STM32F103C8T6的I2C后就可得到TSP100采集的數(shù)據(jù)。相比其他等價(jià)傳感器,TSP100溫度傳感器的精度較高,但也會(huì)因?yàn)榄h(huán)境等因素產(chǎn)生一些噪音(噪音可控),本文采用中位值濾波解決該問(wèn)題。體溫檢測(cè)界面效果如圖5所示。
3.4 記步功能設(shè)計(jì)與實(shí)現(xiàn)
MMA8452加速度傳感器是一款數(shù)字輸出傳感器,與采集溫度的方式相同,不同之處在于加速度傳感器是慣性傳感器,在靜態(tài)狀態(tài)下能表現(xiàn)出良好的穩(wěn)定性,但運(yùn)動(dòng)后其數(shù)據(jù)變化較大。如果將處于運(yùn)動(dòng)中的加速度計(jì)的返回值以時(shí)間為X軸,值為Y軸,靜態(tài)時(shí)會(huì)呈現(xiàn)一條平滑的曲線,運(yùn)動(dòng)時(shí)將會(huì)是雜亂無(wú)章的噪點(diǎn),所以對(duì)加速度傳感器的采集值進(jìn)行濾波十分必要。本文設(shè)計(jì)采用低通濾波和防脈沖干擾平均濾波相結(jié)合的方式[8-12]。
當(dāng)對(duì)加速度傳感器采集到的數(shù)據(jù)進(jìn)行處理后,默認(rèn)當(dāng)前獲得的數(shù)值即實(shí)際數(shù)值,之后對(duì)數(shù)據(jù)進(jìn)行分析,使之轉(zhuǎn)化為需要的步數(shù)。據(jù)研究,距離、速度、加速度等都可以作為描述人體行走狀態(tài)的參數(shù)。近年來(lái),由于MEMS加速度傳感器的快速發(fā)展和其優(yōu)越特性,被廣泛用于人體運(yùn)動(dòng)檢測(cè)。行走時(shí)腳、腿、腰、手臂都在運(yùn)動(dòng),會(huì)產(chǎn)生相應(yīng)的加速度,垂直方向的加速度信號(hào)變化最大。人行走的過(guò)程分析:腳蹬地離開地面是一步的開始,此時(shí)由于地面的反作用力,垂直加速度開始增大,身體重心上移,當(dāng)腳要達(dá)到最高位置時(shí)垂直加速度達(dá)到最大,然后腳向下運(yùn)動(dòng),垂直加速度開始減小,直至腳著地,加速度減小至最小值,接著下一次邁步發(fā)生。利用腰部的垂直加速度來(lái)檢測(cè)步數(shù)是可行的,通過(guò)對(duì)加速度的峰值檢測(cè)可以得到行走的步數(shù)[13-15]。
一對(duì)連續(xù)的波峰和波谷代表了人體行走的一步,本文采用統(tǒng)計(jì)波峰的方法來(lái)統(tǒng)計(jì)步數(shù)。由于人體運(yùn)動(dòng)一般不會(huì)超過(guò)5步/s,即在1 s內(nèi)理論上不會(huì)出現(xiàn)多于5個(gè)波峰,連續(xù)兩個(gè)波峰之間的時(shí)間差也不會(huì)小于0.2 s。設(shè)定采樣頻率為50次/s,記錄采樣時(shí)間t和Z軸的加速度信息Acc。如果一個(gè)點(diǎn)的Acc值比前后各兩次采樣值都大,則視為一個(gè)極大值并將該信息與前一個(gè)極值的時(shí)間差Δt及Acc值存入一個(gè)二維鏈表。時(shí)間差Δt代表兩個(gè)假定步伐之間的時(shí)間差,如果Δt小于0.2 s,則將兩個(gè)極大值中Acc較小者視為采樣噪點(diǎn),從二維鏈表中去掉,并將剩下的數(shù)據(jù)重新與鏈表中前一記錄比較,大于0.2 s且Acc值比前后Acc值都小20%或者更多,也視為噪點(diǎn)去掉。剩下的極大值就確定為一個(gè)有效步伐[10]。最后系統(tǒng)可獲得比較精準(zhǔn)的計(jì)步結(jié)果,如圖6所示。
4 結(jié) 語(yǔ)
本文設(shè)計(jì)了一個(gè)可實(shí)現(xiàn)對(duì)人體溫度實(shí)時(shí)監(jiān)測(cè)、運(yùn)動(dòng)步數(shù)實(shí)時(shí)統(tǒng)計(jì)的智能可穿戴多功能手表。通過(guò)理論與實(shí)踐的結(jié)合,從硬件實(shí)現(xiàn)與軟件實(shí)現(xiàn)切入,清晰展現(xiàn)了軟硬件的設(shè)計(jì)流程,并提供了解決辦法。從實(shí)現(xiàn)結(jié)果可以看出,本文的設(shè)計(jì)方案可行,能實(shí)現(xiàn)對(duì)人體溫度的實(shí)時(shí)監(jiān)控和對(duì)個(gè)人每日運(yùn)動(dòng)量的實(shí)時(shí)記錄,當(dāng)體溫處于不正常數(shù)據(jù)值時(shí),智能手表又能給出相應(yīng)的提示警告,從而方便用戶根據(jù)獲取的體溫及運(yùn)動(dòng)數(shù)據(jù)對(duì)自身的健康狀況及時(shí)做出處理。
參 考 文 獻(xiàn)
[1]孫雪松.你的體溫和健康有關(guān)[J].現(xiàn)代養(yǎng)生,2009(1):59-61.
[2]楊偉,肖義平.基于STM32F103C8T6單片機(jī)的LCD顯示系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014(20):29-31.
[3]傅智河,苗軍林,范宜標(biāo),等.基于STM32F103C8T6多功能健康測(cè)試腕表的設(shè)計(jì)與實(shí)現(xiàn)[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2016,32(18):9-11.
[4]芮新芳,朱朝霞,牛耀國(guó).使用Altium Designer Winter 09軟件快速設(shè)計(jì)印刷電路板[J].軟件導(dǎo)刊,2011(6):69-71.
[5]朱江,李春芾,宋洪慧.J-Link仿真器程序無(wú)法下載問(wèn)題的硬件電路解析[J].信息技術(shù),2016(2):89-91.
[6]李萍,陳鵬宇,李澤仁.基于MMA8452Q傳感器的計(jì)步器抗干擾設(shè)計(jì)[J].電子設(shè)計(jì)工程,2014(7):161-164.
[7]佚名.ARM發(fā)布Keil Vision4集成開發(fā)環(huán)境為嵌入式軟件開發(fā)提供簡(jiǎn)化的開發(fā)環(huán)境[J].電子與電腦,2009(4):70.
[8]龐晶,牟為華.基于ADXL202的計(jì)步器[J].電子世界,2004(2):51-52.
[9]邢輝,趙敏.基于MMA7260加速度傳感器的電子計(jì)步器[J].中國(guó)高新技術(shù)企業(yè),2010(22):15-17.
[10]朱東.基于加速度傳感器的計(jì)步器設(shè)計(jì)[J].數(shù)字通信世界,2017(9):79.
[11]韓文正,馮迪,李鵬,等.基于加速度傳感器LIS3DH的計(jì)步器設(shè)計(jì)[J].傳感器與微系統(tǒng),2012,31(11):97-99.
[12]宋浩然,廖文帥,趙一鳴.基于加速度傳感器ADXL330的高精度計(jì)步器[J].傳感技術(shù)學(xué)報(bào),2006(4):1005-1008.
[13]侯向鋒,劉蓉,周兆豐.加速度傳感器MMA7260在步態(tài)特征提取中的應(yīng)用[J].傳感技術(shù)學(xué)報(bào),2007(3):507-511.
[14]陳泓竹.一種基于物聯(lián)網(wǎng)的計(jì)步器設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2012(3):71-76.
[15]郝立果.基于加速度傳感器ADXL330的運(yùn)動(dòng)信息采集平臺(tái)設(shè)計(jì)[J].天津工程師范學(xué)院學(xué)報(bào),2008,18(1):30-32.