張翠玉,王軍敏,胡海峰
(平頂山學(xué)院 信息工程學(xué)院,河南平頂山,467000)
心血管疾病嚴(yán)重威脅人類健康和生命安全,需要對(duì)此類疾病患者進(jìn)行科學(xué)高效地監(jiān)測(cè)[1]。但現(xiàn)有的心電監(jiān)測(cè)系統(tǒng)存在一些不足,例如操作復(fù)雜、價(jià)格昂貴等。為了解決上述問(wèn)題,本文設(shè)計(jì)一個(gè)微型化、智能化、便攜式的心電監(jiān)測(cè)系統(tǒng),使用戶能實(shí)時(shí)便捷地、不受外界環(huán)境條件限制地對(duì)自身心電信號(hào)進(jìn)行監(jiān)測(cè)。
基于STM32 單片機(jī)的心電監(jiān)測(cè)系統(tǒng)設(shè)計(jì)主要包含硬件和軟件兩部分。一方面控制硬件利用傳感器采集各項(xiàng)數(shù)據(jù)并顯示到TFT 顯示屏上,當(dāng)心率值和體溫超過(guò)閾值則發(fā)出警報(bào);另一方面通過(guò)藍(lán)牙模塊將數(shù)據(jù)信息發(fā)送至移動(dòng)端APP,達(dá)到遠(yuǎn)程實(shí)時(shí)查看的功能。
該系統(tǒng)主要實(shí)現(xiàn)心率監(jiān)測(cè)、溫度監(jiān)測(cè)、運(yùn)動(dòng)步數(shù)和狀態(tài)監(jiān)測(cè)。心電監(jiān)測(cè)系統(tǒng)的STM32 主控單元負(fù)責(zé)接收數(shù)據(jù),當(dāng)讀取到心率值或溫度超過(guò)閾值時(shí),蜂鳴器啟動(dòng)報(bào)警。此外,主控將數(shù)據(jù)讀取后,可以通過(guò)藍(lán)牙模塊將數(shù)據(jù)上傳到移動(dòng)客戶端,實(shí)現(xiàn)數(shù)據(jù)在客戶端APP 的實(shí)時(shí)顯示,用戶還可以通過(guò)手機(jī)APP 下發(fā)命令,實(shí)現(xiàn)對(duì)系統(tǒng)的遠(yuǎn)程控制。
圖1 展示了該系統(tǒng)的架構(gòu)圖。該系統(tǒng)可以完成各項(xiàng)數(shù)據(jù)的采集,按鍵控制、閾值的設(shè)置和長(zhǎng)鳴報(bào)警,數(shù)據(jù)信息的遠(yuǎn)距離無(wú)線傳輸以及用戶遠(yuǎn)程的控制操作。
圖1 基于STM32 單片機(jī)的心電監(jiān)測(cè)系統(tǒng)原理圖
本系統(tǒng)采用Pulsesensor 脈搏心率傳感器對(duì)用戶的心率進(jìn)行檢測(cè),此傳感器是集成了放大電路和噪聲消除電路的光學(xué)心率傳感器[2]。另外選擇LM393 比較器將進(jìn)行波形濾波,使傳感器輸出信號(hào)轉(zhuǎn)換為標(biāo)準(zhǔn)方波信號(hào),更利于單片機(jī)采集,保證了信號(hào)的穩(wěn)定檢測(cè)。圖2 為利用LM393 比較器模塊對(duì)Pulsesensor 脈搏心率傳感器模塊濾波的電路原理圖。
采用DS18B20 溫度傳感器檢測(cè)用戶體溫,DS18B20 是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號(hào),具有體積小、硬件開銷低、抗干擾能力強(qiáng)、精度高的特點(diǎn)[3]。DS18B20 的工作電源為3.0~5.5V,測(cè)溫范圍為-55℃~ +125℃。圖3 為溫度檢測(cè)模塊的電路原理圖,VCC 接5V 電源,GND 接地。
圖3 溫度檢測(cè)電路原理圖
本系統(tǒng)采用ADXL345 傾角傳感器檢測(cè)用戶的運(yùn)動(dòng)步數(shù)和運(yùn)動(dòng)狀態(tài),ADXL345 是一款小而薄的超低功耗3軸加速度計(jì),測(cè)量范圍達(dá)± 16g[4]。ADXL345 非常適合移動(dòng)設(shè)備應(yīng)用,它可以在傾斜檢測(cè)應(yīng)用中測(cè)量靜態(tài)重力加速度,還可以測(cè)量運(yùn)動(dòng)或沖擊導(dǎo)致的動(dòng)態(tài)加速度。該器件具有較高的空間分辨能力,能夠測(cè)量不到1.0°的傾斜角度變化。圖4 為傾角檢測(cè)電路的原理圖。
圖4 傾角檢測(cè)電路原理圖
本系統(tǒng)所采用的報(bào)警模塊為5V有源蜂鳴器模塊,電路中采用三極管9012 來(lái)驅(qū)動(dòng),只要單片機(jī)控制引腳為高電平,蜂鳴器就會(huì)鳴叫報(bào)警,反之則不報(bào)警[5]??梢酝ㄟ^(guò)控制單片機(jī)引腳方波輸出形式控制蜂鳴器的鳴叫方式。電阻為限流電阻,起保護(hù)作用。圖5 為蜂鳴器報(bào)警電路的原理圖。
圖5 蜂鳴器報(bào)警電路原理圖
本系統(tǒng)的顯示電路采用2.4 寸TFT彩屏模塊,具有高亮度、高對(duì)比度、層次感強(qiáng)、色彩鮮艷等優(yōu)點(diǎn)。TFT 液晶為每個(gè)像素都設(shè)有一個(gè)半導(dǎo)體開關(guān),每個(gè)像素都可以通過(guò)點(diǎn)脈沖直接控制,因而每個(gè)節(jié)點(diǎn)都相對(duì)獨(dú)立,并可以連續(xù)控制。圖6 為顯示電路的原理圖。
圖6 顯示電路原理圖
STM32 單片機(jī)使用單線接口方式連接DS18B20 模塊,通過(guò)一個(gè)IO 口改變輸入輸出狀態(tài)并讀取溫度數(shù)據(jù)。利用STM32 的AD 采集功能實(shí)時(shí)采集心率傳感器信號(hào)輸出引腳輸出的模擬電壓,通過(guò)將采集到的模擬信號(hào)在STM32 內(nèi)部進(jìn)行運(yùn)算處理,將數(shù)據(jù)波形實(shí)時(shí)顯示到TFT 顯示屏上。當(dāng)心率值和體溫超標(biāo)時(shí),驅(qū)動(dòng)蜂鳴器進(jìn)行報(bào)警。使用USART 串口進(jìn)行單片機(jī)與藍(lán)牙模塊的通信,然后將采集到的數(shù)據(jù)發(fā)送至手機(jī)APP,從而進(jìn)行數(shù)據(jù)的可視化顯示,同時(shí)可以在APP 界面進(jìn)行一些控制命令的下發(fā),如修改心率值和體溫的閾值。圖7 為主程序的工作流程圖。
圖7 主程序的工作流程圖
3.2.1 溫度檢測(cè)子程序設(shè)計(jì)
首先復(fù)位DS18B20 溫度傳感器,初始化DS18B20 的IO 口,檢測(cè)DS 是否存在,若不存在則返回0 然后繼續(xù)檢測(cè),若存在則傳感器開始讀取采集到的數(shù)據(jù),讀取到數(shù)據(jù)后進(jìn)行溫度值轉(zhuǎn)換,轉(zhuǎn)換成功后返回精確度為0.1 的溫度值。圖8(a)為溫度檢測(cè)子程序的工作流程圖。
圖8 子程序的工作流程圖
3.2.2 心率檢測(cè)子程序設(shè)計(jì)
首先進(jìn)行心率數(shù)組、心率濾波計(jì)數(shù)、心率延時(shí)處理、心率值等變量的定義,初始化光電心率傳感器,設(shè)置濾波防止抖動(dòng)的定時(shí)周期為300ms,濾波濾掉手指未放的情況。記錄前后兩次事件的間隔,記錄超過(guò)4 次后進(jìn)行濾波處理,每次定時(shí)5ms,取60s 內(nèi)4 次數(shù)據(jù)的平均值,得到心率值,最后進(jìn)行延時(shí)清零。圖8(b)為心率檢測(cè)子程序的工作流程圖。
3.2.3 傾角檢測(cè)子程序流程設(shè)計(jì)
首先初始化ADXL345,設(shè)置數(shù)據(jù)傳輸速度為100Hz 并開啟測(cè)量模式,讀取x,y,z 三個(gè)軸的數(shù)據(jù)并存儲(chǔ)在BUF 中,接著連續(xù)讀取ADXL345 times 次數(shù)后根據(jù)次數(shù)取平均值,計(jì)算數(shù)據(jù)后得到角度。最后根據(jù)角度變化判斷出運(yùn)動(dòng)步數(shù)和狀態(tài),返回步數(shù)值和運(yùn)動(dòng)狀態(tài)。圖8(c)為傾角檢測(cè)子程序的工作流程圖。
本系統(tǒng)的手機(jī)端基于Eclipse 進(jìn)行APP 開發(fā),這是一款基于Java 的可擴(kuò)展開發(fā)平臺(tái)。Eclipse 具有強(qiáng)大的代碼輔助功能,能夠幫助程序開發(fā)人員自動(dòng)完成語(yǔ)法、補(bǔ)全文字、代碼修正、API 提示等編碼工作,可以節(jié)省大量的開發(fā)時(shí)間[6]。
在設(shè)計(jì)本系統(tǒng)的界面時(shí),從開發(fā)界面左邊的表單、空格和文本框中根據(jù)需要進(jìn)行選擇,然后拖動(dòng)到設(shè)計(jì)界面上的相應(yīng)位置,并根據(jù)需要在右側(cè)工作區(qū)的屬性欄中修改屬性,如文字的顏色、字體大小等。本系統(tǒng)設(shè)計(jì)的移動(dòng)終端界面如圖9 所示,可以在主界面對(duì)心率值、體溫、運(yùn)動(dòng)步數(shù)以及運(yùn)動(dòng)狀態(tài)等數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示,并且可以在移動(dòng)終端對(duì)心率值和體溫的閾值進(jìn)行設(shè)置。
圖9 移動(dòng)端主界面
本文采用STM32 單片機(jī)、多種傳感器和藍(lán)牙模塊設(shè)計(jì)一個(gè)心電監(jiān)測(cè)系統(tǒng),該系統(tǒng)以STM32 單片機(jī)為控制核心,使用Pulsesensor 脈搏心率傳感器、DS18B20 溫度傳感器等多種類型的傳感器采集各項(xiàng)數(shù)據(jù),并利用藍(lán)牙通信模塊將數(shù)據(jù)傳送至移動(dòng)客戶端,用戶可通過(guò)客戶端APP 遠(yuǎn)程實(shí)時(shí)查看心率值和體溫狀況,具有重要的應(yīng)用價(jià)值。