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