掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
隨著人民生活水平的提高,我國(guó)居民患高血壓、高血脂等慢性疾病的人數(shù)急劇增加 [1]。生理參數(shù)監(jiān)測(cè)系統(tǒng)逐漸進(jìn)入醫(yī)療監(jiān)護(hù)領(lǐng)域,成為有效監(jiān)測(cè)慢性病及老年病的新途徑 [2]?,F(xiàn)代通信技術(shù)飛速發(fā)展,如 WiFi,ZigBee,藍(lán)牙等無(wú)線通信技術(shù)得到了廣泛應(yīng)用。WiFi 網(wǎng)絡(luò)覆蓋面積廣,使用簡(jiǎn)便,傳輸速度快且輻射小。醫(yī)療監(jiān)護(hù)領(lǐng)域?qū)鹘y(tǒng)監(jiān)護(hù)器材與現(xiàn)代通信技術(shù)相結(jié)合,實(shí)現(xiàn)遠(yuǎn)程監(jiān)護(hù)以及家庭監(jiān)護(hù)。微信小程序是現(xiàn)今火熱的手機(jī)應(yīng)用,打開微信即可使用,非常適合作為家庭監(jiān)護(hù)系統(tǒng)中手機(jī)端的顯示應(yīng)用。
針對(duì)上述情況,本文設(shè)計(jì)了相應(yīng)的硬件模塊,實(shí)現(xiàn)了對(duì)心電、心率、脈搏、血氧飽和度和體溫等臨床生理信號(hào)的監(jiān)測(cè) ;通過無(wú)線方式將采集的生理參數(shù)傳送至上位機(jī) ;上位機(jī)采用 LabVIEW 實(shí)現(xiàn)無(wú)線生理參數(shù)監(jiān)測(cè)系統(tǒng)軟件,對(duì)生理參數(shù)信號(hào)進(jìn)行處理和顯示(在手機(jī)端設(shè)計(jì)微信小程序顯示生理參數(shù))。
1 系統(tǒng)總體設(shè)計(jì)
本文設(shè)計(jì)的無(wú)線生理參數(shù)監(jiān)測(cè)系統(tǒng)可分為三個(gè)模塊,分別為信號(hào)采集模塊、無(wú)線模塊以及上位機(jī)模塊。信號(hào)采集模塊與無(wú)線模塊構(gòu)成系統(tǒng)的下位機(jī)。
(1)信號(hào)采集模塊由心電、脈搏、血氧、溫度傳感器組成,用于測(cè)量人體生理參數(shù)。
(2)無(wú)線模塊由單片機(jī)和無(wú)線模塊構(gòu)成,實(shí)現(xiàn)下位機(jī)與上位機(jī)的數(shù)據(jù)通信。
(3)上位機(jī)模塊通過 LabVIEW環(huán)境實(shí)現(xiàn),接收下位機(jī)模塊傳輸?shù)纳韰?shù)數(shù)據(jù),對(duì)生理參數(shù)數(shù)據(jù)進(jìn)行處理、顯示以及心電信號(hào)的 QRS 波形檢測(cè)。
在手機(jī)端設(shè)計(jì)了微信小程序,可實(shí)現(xiàn)手機(jī)端的生理參數(shù)顯示。系統(tǒng)總體結(jié)構(gòu)如圖 1 所示。
圖 1 系統(tǒng)總體結(jié)構(gòu)
2 下位機(jī)模塊設(shè)計(jì)
系統(tǒng)下位機(jī)由信號(hào)采集模塊和無(wú)線模塊組成。除了需要完成對(duì)用戶生理參數(shù)數(shù)據(jù)的測(cè)量及預(yù)處理之外,它還需要通過 WiFi 模塊完成 TCP 客戶端的建立,與 LabVIEW 上位機(jī)TCP 服務(wù)器建立連接并發(fā)送數(shù)據(jù)至上位機(jī)。
2.1 下位機(jī)硬件設(shè)計(jì)
下位機(jī)采用 Arduino 單片機(jī), 它是一款編程簡(jiǎn)單、結(jié)構(gòu)清晰的電子原型平臺(tái) [3],由硬件、軟件兩個(gè)主要部分組成 :硬件部分為 Arduino 開發(fā)板 ;軟件部分為軟件開發(fā)環(huán)境Arduino IDE。
Arduino 具有三種供電方式,分別為通過 USB 接口供電、通過 DC 電壓輸入接口供電和通過電源接口處 V 或者 VIN 端口供電。
測(cè)量脈搏選取 PulseSensor 光電反射式模擬脈搏傳感器, 它能夠用于脈搏心率及脈搏波形測(cè)量 [4]。傳感器由光源和光電變換器組成,使用時(shí)將傳感器佩戴于手指、耳垂等處,通過導(dǎo)線連接,把采集到的信號(hào)傳輸給單片機(jī),經(jīng)過簡(jiǎn)單計(jì)算后可得心率數(shù)值。
測(cè)量血氧飽和度采用具有集成血氧和心率監(jiān)測(cè)功能的生物傳感器模塊 MAX,它由光源、光電檢測(cè)器、電源構(gòu)成, 通過標(biāo)準(zhǔn) IC 兼容通信接口可將采集到的數(shù)值傳輸給單片機(jī)進(jìn)行后續(xù)的心率、血氧計(jì)算。
測(cè)量溫度采用 DSB 傳感器,它具有體積小、硬件開銷低、精度高等優(yōu)點(diǎn) [5]。采用單總線接口方式,僅需一條口線就能夠?qū)崿F(xiàn)單片機(jī)與傳感器的雙向通信 [6]。
采用 AD 心電傳感器模塊測(cè)量心電波形。它是一款用于ECG 及其他生物電測(cè)量的集成信號(hào)調(diào)理模塊。該器件設(shè)計(jì)用于在具有運(yùn)動(dòng)或遠(yuǎn)程電極放置產(chǎn)生噪聲的情況下提取、放大及過濾微弱的生物電信號(hào)[7]。
無(wú)線通信采用 ESP WiFi 模塊。ESP 支持無(wú)線 b/g/n 標(biāo)準(zhǔn),支持基站 / 熱點(diǎn) / 基站 + 熱點(diǎn)三種工作模式,內(nèi)置 32 位MCU,可兼作應(yīng)用處理器,單電源供電,可通過 AT 指令控制模塊。ESP 主要功能為串口透?jìng)?、PWM 調(diào)控、GPIO 控制。
下位機(jī)硬件結(jié)構(gòu)如圖 2 所示,實(shí)物如圖 3 所示。
圖 2 下位機(jī)硬件結(jié)構(gòu)
圖 3 下位機(jī)實(shí)物
2.2 下位機(jī)軟件設(shè)計(jì)
下位機(jī)軟件部分對(duì)生理參數(shù)傳感器采集的各項(xiàng)生理參數(shù)原始數(shù)據(jù)進(jìn)行處理,得到符合要求的生理參數(shù)數(shù)據(jù),通過AT指令建立 TCP客戶端,連接 WiFi網(wǎng)絡(luò),與上位機(jī)平臺(tái)的TCP 服務(wù)器進(jìn)行數(shù)據(jù)通信。
Arduino IDE 編程環(huán)境將單片機(jī)運(yùn)行流程分為 set up 與loop 兩部分。在 set up 部分實(shí)現(xiàn)各模塊的初始化,配置 WiFi 模塊,連接 WiFi 網(wǎng)絡(luò),建立 TCP 客戶端并與上位機(jī)平臺(tái)建立的服務(wù)器相連接 ;在 loop 部分配置血氧飽和度模塊使用的光傳感器,采集各項(xiàng)生理參數(shù),調(diào)用 Arduino 庫(kù)函數(shù)對(duì)測(cè)得的原始數(shù)據(jù)進(jìn)行處理,得到符合需求的生理參數(shù)數(shù)據(jù),并通過 WiFi 無(wú)線模塊將數(shù)據(jù)包發(fā)送至上位機(jī)平臺(tái)。Loop 部分不斷循環(huán)執(zhí)行,不斷獲得用戶的生理參數(shù)數(shù)據(jù)。溫度、血氧信號(hào)為數(shù)字信號(hào)輸入,采用溫度傳感器 ESP8266,遵循單總線協(xié)議,血氧傳感器為 I2C 通信接口。心電信號(hào)和脈搏信號(hào)屬于模擬信號(hào),Arduino 單片機(jī)自帶 10 位 ADC,采用analogRead 函數(shù)即可讀取輸入的模擬信號(hào)。
3 上位機(jī)平臺(tái)設(shè)計(jì)
3.1 上位機(jī)平臺(tái)總體設(shè)計(jì)
系統(tǒng)上位機(jī)平臺(tái)是與用戶人機(jī)交互的核心,需要完成用戶生理參數(shù)數(shù)據(jù)的接收及顯示,還需對(duì)心電信號(hào)進(jìn)行 QRS 波綜合檢測(cè)。上位機(jī)軟件平臺(tái)的結(jié)構(gòu)如圖 4 所示。
本系統(tǒng)上位機(jī)平臺(tái)主要功能 :利用 LabVIEW 的 TCP 工具包建立 TCP 服務(wù)器,與單片機(jī)建立的 TCP 客戶端建立連接,接收來(lái)自單片機(jī)的用戶生理參數(shù)數(shù)據(jù),軟件平臺(tái)將接收到的用戶生理參數(shù)數(shù)據(jù)實(shí)時(shí)顯示在主界面,并將心電數(shù)據(jù)進(jìn)行 QRS 波綜合監(jiān)測(cè),顯示在主頁(yè)面。
設(shè)計(jì)的無(wú)線生理參數(shù)監(jiān)測(cè)系統(tǒng)上位機(jī)平臺(tái)結(jié)合虛擬儀器技術(shù)與網(wǎng)絡(luò)技術(shù),集成了無(wú)線通信、數(shù)據(jù)提取、數(shù)據(jù)處理及數(shù)據(jù)顯示功能。
系統(tǒng)上位機(jī)平臺(tái)由 TCP 通信模塊、測(cè)試數(shù)據(jù)提取模塊、心電信號(hào)處理模塊組成。
3.2 TCP 通信模塊設(shè)計(jì)
在 LabVIEW中可以利用 TCP協(xié)議進(jìn)行網(wǎng)絡(luò)通信, LabVIEW 對(duì) TCP協(xié)議的編程進(jìn)行了高度集成,用戶通過簡(jiǎn)單編程就可以在 LabVIEW 中實(shí)現(xiàn)網(wǎng)絡(luò)通信[9]。
上位機(jī)軟件平臺(tái)作為服務(wù)器端,首先指定網(wǎng)絡(luò)端口,并由“TCP 偵聽”節(jié)點(diǎn)建立 TCP 聽者,等待客戶機(jī)的連接請(qǐng)求, 完成初始化過程。當(dāng) WiFi模塊與上位機(jī)軟件平臺(tái)建立連接之后,使用“讀取 TCP數(shù)據(jù)”節(jié)點(diǎn)讀取指定長(zhǎng)度的由 WiFi 模塊傳輸而來(lái)的用戶生理參數(shù)數(shù)據(jù)包,該節(jié)點(diǎn)中的屬性設(shè)置為 Immediate,當(dāng)“讀取 TCP數(shù)據(jù)”節(jié)點(diǎn)接收到指定長(zhǎng)度的數(shù)據(jù)后會(huì)立即讀出,以避免數(shù)據(jù)緩存區(qū)擁塞[2]。
3.3 用戶數(shù)據(jù)提取模塊
由于 TCP 通信所傳輸?shù)挠脩羯韰?shù)數(shù)據(jù)為字符串形式,所以需要按照硬件部分所發(fā)送的用戶生理參數(shù)格式對(duì)TCP 傳輸?shù)臄?shù)據(jù)包進(jìn)行分解(“掃描字符串”函數(shù))。硬件部分發(fā)送至上位機(jī)的數(shù)據(jù)格式為脈搏、心電 1 s 的波形數(shù)據(jù)以及心率、溫度、血氧的值,其中,前 50 個(gè)數(shù)據(jù)為脈搏、心電的波形數(shù)據(jù),通過“,”分隔,后 3 個(gè)數(shù)據(jù)是心率、溫度、血氧的數(shù)值,以“ ”分隔。將硬件部分發(fā)送過來(lái)的字符串?dāng)?shù)據(jù)提取分解之后,通過循環(huán)索引將脈搏、心電波形整合為數(shù)組,為波形數(shù)據(jù)的顯示以及對(duì)心電信號(hào)進(jìn)行QRS 檢測(cè)做準(zhǔn)備。
3.4 心電信號(hào)處理模塊設(shè)計(jì)
本文采用離散極值點(diǎn)法進(jìn)行 QRS 波形檢測(cè)。算法流程如下 :
(1)判斷心電信號(hào) R 波的閾值,若輸入信號(hào)有多個(gè)波峰, 則取所有波峰幅值的平均值作為 R 波的閾值 ;
(2)根據(jù) R波的閾值,將輸入心電信號(hào)的所有波峰值與閾值比較,超過閾值的波峰點(diǎn)為 R 點(diǎn) ;
(3)得到 R點(diǎn)的位置后,進(jìn)行 Q,S點(diǎn)的檢測(cè),求出心電信號(hào)中的所有波谷點(diǎn),將波谷點(diǎn)的位置與 R點(diǎn)的位置進(jìn)行比較,在 R點(diǎn)位置附近的兩個(gè)波谷點(diǎn)中前一個(gè)為 Q點(diǎn),后一個(gè)為 S 點(diǎn) [11];
(4)將 QRS點(diǎn)的幅值及位置信息與輸入的心電信號(hào)合并顯示。
采用離散極值點(diǎn)法進(jìn)行 QRS 檢測(cè)的流程如圖 5 所示。
3.5 微信小程序設(shè)計(jì)
隨著手機(jī)應(yīng)用軟件的不斷發(fā)展,微信小程序是一種不需要下載便能夠使用的應(yīng)用,適用于生理監(jiān)測(cè)系統(tǒng)手機(jī)端的顯示。本文利用微信小程序設(shè)計(jì)了手機(jī)端生理參數(shù)的顯示程序。
設(shè)計(jì)過程 :安裝 ODBC 驅(qū)動(dòng),使得電腦能夠遠(yuǎn)程連接服務(wù)器端的數(shù)據(jù)庫(kù),在 LabVIEW 中使用庫(kù)鏈接工具包LabSQL,配置主機(jī)的 IP 及數(shù)據(jù)庫(kù)的用戶名和密碼,成功連接后,在前面板中寫入插入的 SQL 語(yǔ)句,在 LabVIEW 中進(jìn)行格式轉(zhuǎn)換,使得 LabVIEW 中的數(shù)據(jù)能夠源源不斷地插入到數(shù)據(jù)庫(kù)中。在小程序端發(fā)送 Ajax 請(qǐng)求,服務(wù)器接收到請(qǐng)求后,使用 JDBC 驅(qū)動(dòng)連接服務(wù)器上的 MySQL 數(shù)據(jù)庫(kù),通過執(zhí)行 SQL 語(yǔ)句獲取數(shù)據(jù)庫(kù)最新數(shù)據(jù),并將其轉(zhuǎn)存為 Json格式,返回給小程序端,在小程序得到數(shù)據(jù)后,將其展示到頁(yè)面上。程序流程如圖 6 所示。
4 實(shí)驗(yàn)測(cè)試
對(duì)本文所設(shè)計(jì)的無(wú)線生理參數(shù)監(jiān)測(cè)系統(tǒng)進(jìn)行功能測(cè)試。首先在放松狀態(tài)下,由人體佩戴硬件模塊,監(jiān)測(cè)人體的生理參數(shù)數(shù)據(jù),實(shí)時(shí)監(jiān)測(cè)結(jié)果如圖 7 所示。由圖 7 可知,各項(xiàng)生理參數(shù)及心電信號(hào)的 QRS 點(diǎn)均能被準(zhǔn)確檢測(cè)。手機(jī)端微信小程序顯示結(jié)果如圖 8 所示,其顯示結(jié)果與 PC 端同步。
圖 6 微信小程序流程
圖 7 用戶生理參數(shù)監(jiān)測(cè)情況
圖 8 手機(jī)端顯示界面
5 結(jié) 語(yǔ)
本文設(shè)計(jì)并實(shí)現(xiàn)了基于 LabVIEW 的無(wú)線生理參數(shù)監(jiān)測(cè)系統(tǒng),通過生理參數(shù)傳感器測(cè)量用戶的生理參數(shù),再利用WiFi 模塊將生理參數(shù)遠(yuǎn)程、實(shí)時(shí)傳送至上位機(jī)平臺(tái),上位機(jī)平臺(tái)處理并顯示用戶的生理參數(shù),進(jìn)行心電信號(hào) QRS 波形檢測(cè)。此外,還可通過微信小程序進(jìn)行手機(jī)端顯示。由于本系統(tǒng)體積較小,對(duì)用戶的行動(dòng)能力限制較少,且佩戴后無(wú)不適感,同時(shí)還可通過手機(jī)獲取生理參數(shù)數(shù)據(jù),十分便捷,因此非常適合作為監(jiān)測(cè)老年人身體生理參數(shù)的家用儀器。
在實(shí)際的單片機(jī)控制系統(tǒng)中,有時(shí)候會(huì)使用數(shù)字邏輯芯片對(duì)單片機(jī)和受控元件進(jìn)行隔離,以保護(hù)單片機(jī),或者令單片機(jī)更好地對(duì)后級(jí)進(jìn)行控制。
關(guān)鍵字: 單片機(jī) 數(shù)字邏輯芯片 受控元件