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