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