趙利國(guó) 李志先 韓哲 嚴(yán)祥帥
摘―要:文章設(shè)計(jì)的系統(tǒng)由STM32F103C8T6芯片以及ADXL345模塊、DS18B20溫度檢測(cè)模塊,心率檢測(cè)模塊,LCD1602液晶顯示模塊構(gòu)成。作為核心電路,STM21F103C8T6單片機(jī)在電路中起著總控作用;ADXL345模塊通過(guò)重力加速度來(lái)檢測(cè)人體當(dāng)前傾斜狀態(tài),以記錄步數(shù),計(jì)算行走速度;DS18B20溫度檢測(cè)模塊可以檢測(cè)人體溫度,并將人體溫度模擬量轉(zhuǎn)換為數(shù)字量發(fā)送給單片機(jī);心率檢測(cè)模塊可以檢測(cè)人體當(dāng)前的心率數(shù)值;LCD1602液晶顯示模塊則將所有的檢測(cè)數(shù)據(jù)顯示在液晶屏幕上。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);STM32F103C8T6;傳感器﹔手環(huán);溫度
中圖法分類(lèi)號(hào):TP368文獻(xiàn)標(biāo)識(shí)碼:A
Design of body temperature detection of intelligent bracelet pulse heart ratepedometer based on STM32 single chip microcomputer
ZHAO Liguo,LI Zhixian,HAN Zhe,YAN Xiangshuai
(School of Computer and Information Engincering,Luoyang Institute of Science and'Technology,L.uoyang,Henan 471000,China)
Abstract:This design consists of STM32F103C8T6 chip and ADXL345 module,DS18B20temperature detection module,heart rate detection module,LCD1602 liquid crystal display module.As the core circuit,the STM21F103C8T6 single-chip microcomputer plays a general control role inthe circuit,the ADXL345 module detects the current tilt state of the human body through theacceleration of gravity to record the number of steps and calculate the walking speed,the DS18B20temperature detection module can detect the human body temperature and simulate the human bodytemperature. The quantity is converted into digital quantity and sent to the microcontroller,the heartrate detection module can detect the current heart rate value of the human body,the LCD1602 liquidcrystal display module displays all the detection data on the LCD screen.
Key words:single chip microcomputer,STM32F103C8T6,sensor,bracelet,temperature
1? 前言
21世紀(jì)的人類(lèi)對(duì)自己的健康狀態(tài)愈加關(guān)注,對(duì)電子產(chǎn)品的要求也越來(lái)越高。在智能手環(huán)中,人們更加傾向于選擇可以實(shí)時(shí)監(jiān)測(cè)運(yùn)動(dòng)狀態(tài)和心率狀態(tài)的產(chǎn)品?;诖?,本設(shè)計(jì)在已有的計(jì)步器的基礎(chǔ)上加入了對(duì)用戶(hù)心率實(shí)時(shí)監(jiān)測(cè)的功能,兼容了對(duì)步數(shù)、心率以及體溫的實(shí)時(shí)監(jiān)測(cè),并做出了一款以 STM32單片機(jī)為核心的電子設(shè)備。本設(shè)計(jì)由 STM32F103C8T6芯片以及 ADXL345模塊、DS18B20溫度檢測(cè)模塊、心率檢測(cè)模塊、LCD1602液晶顯示模塊構(gòu)成。通過(guò)本設(shè)計(jì),可以滿(mǎn)足用戶(hù)的心率、步數(shù)、溫度的實(shí)時(shí)監(jiān)測(cè)需求[1 ]。
隨著生活的不斷改善,人們對(duì)自己的身體健康越來(lái)越重視。智能計(jì)步器可以作為檢測(cè)人體運(yùn)動(dòng)狀態(tài)的一種裝置,可以記錄人們當(dāng)天的運(yùn)動(dòng)步數(shù)和運(yùn)動(dòng)里程數(shù)據(jù),其使用起來(lái)也非常方便,同時(shí)計(jì)算出人體本日運(yùn)動(dòng)所消耗的能量,因此越來(lái)越多的人選擇該裝置來(lái)檢測(cè)身體狀態(tài)、分析人體的健康狀態(tài),從而制定出合理的運(yùn)動(dòng)方案。如今,可佩戴式電子計(jì)步檢測(cè)裝置愈發(fā)流行,同時(shí)又有大量的市場(chǎng)需求未得到滿(mǎn)足。早期的計(jì)步器都是利用鐘擺原理來(lái)記錄運(yùn)動(dòng)者的步數(shù),其中配有一個(gè)可以左右晃的鐵塊來(lái)碰撞擋板,利用計(jì)數(shù)器來(lái)記錄擊打擋板次數(shù),從而完成了簡(jiǎn)單的計(jì)步。然而,計(jì)步器只能單純記錄人的運(yùn)動(dòng)步數(shù),對(duì)于運(yùn)動(dòng)時(shí)的心率情況一概不知。此前,記錄人體心率的設(shè)備主要是心電機(jī),而其主要應(yīng)用于醫(yī)療機(jī)構(gòu),專(zhuān)門(mén)用于檢測(cè)心率的儀器較少。但是,隨著電子科技的進(jìn)步和發(fā)展,心率檢測(cè)裝置也將越來(lái)越普及。未來(lái),心率檢測(cè)裝置將會(huì)朝著更加廣泛、更高精度以及更加輕便的方向發(fā)展?;诖耍驹O(shè)計(jì)在已有的計(jì)步器中加入心率檢測(cè)裝置,研究了智能手環(huán)用于實(shí)時(shí)檢測(cè)人的運(yùn)動(dòng)狀態(tài)、心率以及體溫,并且根據(jù)相關(guān)數(shù)據(jù)來(lái)分析人體的健康狀態(tài),以制定每日運(yùn)動(dòng)計(jì)劃。
2? 系統(tǒng)功能及體系結(jié)構(gòu)
2.1? 系統(tǒng)功能
STM32芯片在單片機(jī)中起著總控作用,用于處理和分析接收到的信號(hào),并向每個(gè)模塊發(fā)送相應(yīng)的信息;ADXL345模塊用來(lái)檢測(cè)人體當(dāng)前傾斜狀態(tài),并記錄走路步數(shù)和計(jì)算行走速度;DS18B20溫度檢測(cè)模塊用來(lái)檢測(cè)人體的當(dāng)前溫度;ST188模塊用來(lái)檢測(cè)人體當(dāng)前的心率;LCD1602模塊則將所有的檢測(cè)數(shù)據(jù)顯示在液晶屏幕上。
2.2? 系統(tǒng)總體架構(gòu)
本系統(tǒng)具體架構(gòu)框圖如圖1 所示。
2.3? 電路設(shè)計(jì)
(1)STM32單片機(jī)核心電路設(shè)計(jì)
本設(shè)計(jì)選用的 STM32單片機(jī)易于上手,在各領(lǐng)域都有廣泛的應(yīng)用,擁有極大的研究意義和學(xué)習(xí)價(jià)值。
(2)ST188脈搏心率傳感器模塊設(shè)計(jì)
作為一款紅外光電傳感器,ST188在許多場(chǎng)合發(fā)揮著重要作用。ST188紅外傳感器的工作原理與大多數(shù)紅外傳感器一樣,即利用光敏三極管收到的紅外光信號(hào)來(lái)實(shí)現(xiàn)檢測(cè)[2]。光電傳感器可以分為兩類(lèi),即對(duì)射型光電傳感器和反射型光電傳感器。而本設(shè)計(jì)采用的 ST188紅外傳感器屬于反射型光電傳感器。該傳感器擁有兩個(gè) LED ,即發(fā)射紅外光的 LED 和接收光敏信號(hào)的紅外三極管。工作時(shí),發(fā)光 LED 發(fā)射紅外光,接收三極管不發(fā)光,僅當(dāng)傳感器前有障礙物阻擋時(shí),光敏三極管才能收到反射光線(xiàn)。作為雙向運(yùn)算放大器,LM358擁有兩個(gè)互不干擾、高放大倍數(shù)且自動(dòng)彌補(bǔ)缺陷的高性能放大器。
本設(shè)計(jì)采用的心率檢測(cè)模塊是 ST188紅外傳感器模塊和 LM358模塊。首先,由 ST188反射紅外光電傳感器的發(fā)光 LED 燈工作,將紅外光照射到人的血管內(nèi),由于人的脈搏周期性跳動(dòng),人體血管內(nèi)的充容量也會(huì)發(fā)生規(guī)律性變化,因此反射出來(lái)的光強(qiáng)會(huì)隨之改變。光電三極管接收到不同強(qiáng)度的紅外反射光后,將接收到的變化信號(hào)轉(zhuǎn)換為連續(xù)變化的電壓信號(hào)。電壓信號(hào)經(jīng)過(guò)耦合并通過(guò)低通濾波之后被傳送到1/2LM358運(yùn)算放大器構(gòu)成的反向放大器,再放大約300倍。然后,輸出到另外的1/2LM358所構(gòu)成的比較放大器,再與由電阻分壓建立的同相端的比較基準(zhǔn)相比較。最后,由比較結(jié)果輸出矩形脈沖[3]。
(3)DS18B20溫度傳感器模塊設(shè)計(jì)
作為一種可以輸出數(shù)字信號(hào)的溫度傳感器, DS18B20溫度傳感器對(duì)硬件的要求不太高,同時(shí)其較強(qiáng)的抗干擾能力和可得到較精準(zhǔn)的測(cè)量結(jié)果受到了廣大使用者的青睞。DS18B20的使用相當(dāng)方便,在與單片機(jī)一起工作時(shí)不需要多接電源線(xiàn),使用數(shù)據(jù)線(xiàn)便可完成供電。與傳統(tǒng)的溫度傳感器相比,DS18B20可以將溫度轉(zhuǎn)化為數(shù)字并從數(shù)據(jù)線(xiàn)中讀出。DS18B20可以很好地測(cè)量出0.5℃的溫差變化,同時(shí)溫度檢測(cè)量程為-10℃~ 85℃。基于以上優(yōu)點(diǎn),DS18B20 自發(fā)布以后就被應(yīng)用于各種場(chǎng)景,如恒溫控制系統(tǒng)、消費(fèi)類(lèi)產(chǎn)品、環(huán)境溫度檢測(cè)等。
3? 系統(tǒng)軟件設(shè)計(jì)
3.1? 開(kāi)發(fā)環(huán)境
因?yàn)榫幊痰挠?jì)算量較大,所以 STM32系列單片使用 C 語(yǔ)言比匯編語(yǔ)言有更多的好處:(1)擁有諸多庫(kù)和諸多系統(tǒng)自動(dòng)生成的函數(shù)以及用戶(hù)定義函數(shù);(2) 沒(méi)有煩瑣的指令集,編譯器會(huì)自動(dòng)完成對(duì)寄存器的分配;(3)編寫(xiě)簡(jiǎn)單,與高級(jí)匯編語(yǔ)言相比,程序開(kāi)發(fā)流程更短、調(diào)試時(shí)間更少;(4) C 語(yǔ)言是一門(mén)結(jié)構(gòu)性很強(qiáng)的設(shè)計(jì)語(yǔ)言,編寫(xiě)者可以很好地聯(lián)想到一個(gè)模塊所需要滿(mǎn)足的要求,其在后期的優(yōu)化中十分便利;(5) C 語(yǔ)言編譯器優(yōu)化了代碼的編譯速度,其編譯速度遠(yuǎn)高于其他的匯編語(yǔ)言。
3.2? 單片機(jī)程序開(kāi)發(fā)環(huán)境
Keil uVision5是由 ARM 公司發(fā)布的一款軟件,擁有編輯、編譯、連接和調(diào)試等功能。Keil uVision5完美兼容 Windows 操作系統(tǒng),擁有完整的軟件開(kāi)發(fā)界面,同時(shí)采用 C 語(yǔ)言編寫(xiě),在功能和結(jié)構(gòu)以及后期維護(hù)方面擁有很大的優(yōu)勢(shì),便于使用者進(jìn)行環(huán)境開(kāi)發(fā)。Keil uVision5與 Keil uVision4 IDE 相比,強(qiáng)化了對(duì) Cortex? M 控制器的開(kāi)發(fā),并且 Keil5代碼生成效率非常高,并對(duì)原有的開(kāi)發(fā)形式和界面做了相應(yīng)的優(yōu)化處理。
(1)流程圖描述
本系統(tǒng)設(shè)計(jì)劃分為不同的模塊,每個(gè)模塊分開(kāi)進(jìn)行設(shè)計(jì),最終將所有的模塊整合到一起,形成一個(gè)完整的系統(tǒng)。該系統(tǒng)首先初始化系統(tǒng)各個(gè)模塊以及初始化定時(shí)器和各個(gè)串口,然后判斷定時(shí)讀取以及檢測(cè)角度是否到時(shí),如果是,則進(jìn)行溫度采集和步數(shù)采集。接著判斷單位時(shí)間心率數(shù)據(jù)采集是否完成,如果完成,則進(jìn)行心率計(jì)算。最終進(jìn)行 LCD 液晶屏幕更新顯示。
(2)各模塊程序流程描述
LCD1602模塊可進(jìn)行各種數(shù)據(jù)的顯示,其在工作時(shí)先對(duì)液晶屏幕進(jìn)行初始化。當(dāng)單片機(jī)將信號(hào)發(fā)送給 LCD1602后,LCD1602進(jìn)行寫(xiě)數(shù)據(jù)和寫(xiě)地址的操作; DS18B20溫度檢測(cè)模塊進(jìn)行溫度檢測(cè),首先進(jìn)行初始 DS18B20,接著讀取 DS18B20的數(shù)據(jù),然后將數(shù)據(jù)寫(xiě)入 DS18B20,最后將溫度讀給單片機(jī);心率采集模塊進(jìn)行心率采集,該模塊首先初始化,然后進(jìn)行濾波防止抖動(dòng),接著記錄兩次事件的間隔,如果記錄超過(guò)四次則進(jìn)行濾波處理,最后計(jì)算四次記錄的平均心率。
3.3? 程序燒錄
制作燒錄程序最常用的便是FlyMcu,其使程序的燒錄非常簡(jiǎn)便。作為一款單片機(jī)在線(xiàn)編程軟件,其在電路編程和應(yīng)用編程中有著很大的使用價(jià)值,同時(shí)擁有編程后執(zhí)行、校驗(yàn)、連續(xù)燒錄模式等各種功能。程序燒錄前,需要下載驅(qū)動(dòng)模塊 PL203,保證計(jì)算機(jī)以及電路設(shè)計(jì)無(wú)誤。具體燒錄步驟為:首先打開(kāi)FlyMcu,選擇菜單欄上的 STMISP 選項(xiàng),接著選擇 USB 轉(zhuǎn)串口 COMPORT,然后將程序編譯生成的 HEX 文件導(dǎo)入,最后設(shè)置相應(yīng)的燒錄方式,點(diǎn)擊開(kāi)始編程。
4? 系統(tǒng)調(diào)試
在對(duì)系統(tǒng)進(jìn)行調(diào)試之前,在硬件方面,必須檢查焊接是否正常。比如,是否出現(xiàn)明顯的斷裂、虛焊、脫焊、器件損壞以及正負(fù)極是否存在問(wèn)題等。同時(shí),用萬(wàn)用表測(cè)量電源的正負(fù)極是否存在問(wèn)題,如果存在問(wèn)題,需要用萬(wàn)用表將每一個(gè)模塊進(jìn)行測(cè)試,以確保焊接不再出現(xiàn)任何問(wèn)題。在軟件方面,首先是檢查調(diào)試程序是否存在問(wèn)題,然后檢查調(diào)試程序是否能實(shí)現(xiàn)所具備的功能,如果出現(xiàn)問(wèn)題則需要進(jìn)行解決,直到滿(mǎn)足設(shè)計(jì)要求。
(1)系統(tǒng)程序調(diào)試
軟件調(diào)試步驟如下:首先打開(kāi) Keil uVision5軟件,然后在菜單欄點(diǎn)擊“Project”選項(xiàng),接著點(diǎn)擊“New uVision Project”,選擇保存位置并設(shè)置項(xiàng)目名稱(chēng)。此時(shí),選擇? STM 系列芯片的? STM32F103C8,點(diǎn)擊“Source Group”,向其 add 所需要的常用文檔,或者直接編輯一個(gè)新的文檔,完成所有的模塊設(shè)計(jì)即可。然后進(jìn)行編譯,點(diǎn)擊“Translate”和“Build”,在輸出窗口會(huì)看到“編譯完成”和“ HEX”文件生成的信息,如果為“未生成”錯(cuò)誤則檢查程序,重新編寫(xiě)。
(2)硬件測(cè)試
對(duì)硬件進(jìn)行測(cè)試是整個(gè)設(shè)計(jì)的最后一步。在進(jìn)行硬件測(cè)試時(shí),萬(wàn)用表、電源是不可或缺的裝備。硬件檢測(cè)就是為了檢查系統(tǒng)是否可以正常工作,檢測(cè)分為靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè)。
在動(dòng)態(tài)檢測(cè)前,先進(jìn)行靜態(tài)檢測(cè)。首先是用肉眼觀察,一般可以直接看出焊接的大問(wèn)題,查看器件引腳是否損壞。然后用萬(wàn)用表檢查電源是否能夠連通,如果不能連通,需要仔細(xì)檢測(cè)每個(gè)模塊是否可以通電。前兩步如果沒(méi)有問(wèn)題,便可以進(jìn)行上電測(cè)試,逐個(gè)檢查模塊是否可以正常工作。靜態(tài)檢測(cè)以后,再進(jìn)行動(dòng)態(tài)檢測(cè)。動(dòng)態(tài)檢測(cè)就是查看每個(gè)器件是否正常工作,設(shè)計(jì)要求是否滿(mǎn)足和功能是否齊全。
(3)心率檢測(cè)模塊測(cè)試
將右手中指平穩(wěn)放在 ST188紅外反射模塊上,若燈閃爍,則表示開(kāi)始測(cè)量心率。手指放置幾秒后,在 LCD 液晶顯示屏幕上輸出測(cè)量的心率值。
(4)DS18B20溫度檢測(cè)模塊測(cè)試
用手捏住 DS18B20,幾秒后在 LCD1602屏幕上顯示數(shù)據(jù)。
5? 結(jié)論
基于 STM32單片機(jī)的系統(tǒng)開(kāi)發(fā)設(shè)計(jì)可讓相關(guān)人員更加熟悉單片機(jī)的開(kāi)發(fā)流程。在硬件方面,可使其對(duì)電路布局有了更深的理解;可使其在軟件編程方面,編程思路更加清晰。
參考文獻(xiàn):
[1] 曾非一.嵌入式軟件開(kāi)發(fā)技術(shù)研究—MPC860目標(biāo)機(jī)底層軟件的實(shí)現(xiàn)[D].四川:電子科技大學(xué),2014.
[2] 趙華峰.LCD1602模塊的漢字顯示研究[ J].現(xiàn)代信息科技,2020,4(17):35?37.
[3] 紀(jì)峰,徐壯,郝靜.基于單片機(jī) PIC18F87J11串行通信模塊驅(qū)動(dòng) LCD1602的設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2019,2(13):145?146.
作者簡(jiǎn)介:
趙利國(guó)(1981— ),碩士,講師,研究方向:信號(hào)處理。