陸思翰,馬煥鋒,羅逸帆,黎蓮花
(桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004)
近年來(lái),功能性電子手環(huán)越來(lái)越受到人們的喜愛(ài),但是較少的企業(yè)關(guān)注老年人對(duì)于電子手環(huán)的使用體驗(yàn),但老年人相對(duì)年輕人卻更需要一些便于攜帶、使用的智能設(shè)備來(lái)實(shí)時(shí)監(jiān)測(cè)他們的身體情況、關(guān)注他們的健康狀態(tài)[1-7]。本文設(shè)計(jì)的電子手環(huán)板載了MPU6050六軸傳感器、MAX30102心率血氧傳感器、LMT70溫度傳感器、藍(lán)牙通信模塊。整體均采用貼片式元件,在保持外觀相對(duì)精巧的同時(shí),也能夠確保手環(huán)具有多功能、高精度的特性。加以社區(qū)管理系統(tǒng),該系統(tǒng)有下位機(jī)收集數(shù)據(jù)、上傳OneNET平臺(tái)和數(shù)據(jù)視窗顯示的功能;同時(shí)還能將數(shù)據(jù)傳輸?shù)絊Qlite平臺(tái)進(jìn)行存儲(chǔ);在獲取實(shí)時(shí)數(shù)據(jù)后,可以及時(shí)更新老人的基本情況。
如圖1所示,這款電子手環(huán)板載了MPU6050六軸傳感器、MAX30102心率血氧傳感器、LMT70溫度傳感器。通過(guò)32.768 kHz外部低速晶振為RTC內(nèi)部時(shí)鐘提供時(shí)鐘信號(hào),并可以使用按鍵控制LCD顯示當(dāng)前時(shí)間、修改時(shí)間、采集心率血氧;通過(guò)六軸傳感器實(shí)時(shí)獲取手環(huán)的姿態(tài)信息;通過(guò)手環(huán)的傾斜進(jìn)行屏幕喚醒,同時(shí)也會(huì)實(shí)時(shí)采集老年人的人體加速度向量幅值,進(jìn)而判斷老人是否摔倒:當(dāng)人摔倒時(shí),人體加速度向量幅值將會(huì)比其他擺手動(dòng)作所測(cè)的值要高,判斷摔倒的閾值被設(shè)為3.5。
圖1 最小系統(tǒng)接線(xiàn)圖
為了提高檢測(cè)精度,引入六軸傳感器的角度參數(shù)作為二次判斷的依據(jù)。理論上,在老年人摔倒后的一段時(shí)間內(nèi),人體會(huì)處于靜止?fàn)顟B(tài),與地面將處于一個(gè)較為水平的姿態(tài),Z軸加速度趨近于0;同時(shí)當(dāng)人體向前或向后摔倒時(shí),人體的X軸角度在-90°和90°附近波動(dòng);當(dāng)人體向左或向右摔倒時(shí),人體的Y軸角度將會(huì)在-90°和90°附近波動(dòng),已選取±70°來(lái)作為第二個(gè)摔倒檢測(cè)閾值。
確認(rèn)符合第一個(gè)檢測(cè)閾值3 s后,判斷Z軸的加速度值是否接近0,以及X軸或Y軸的角度值是否在70°左右。如果這兩個(gè)條件同時(shí)滿(mǎn)足,那么蜂鳴器會(huì)鳴叫,一定程度上可提醒老人。如果老人清醒,可通過(guò)按下按鍵關(guān)閉蜂鳴器,如果30 s期間按鍵沒(méi)有被按下,手環(huán)將會(huì)通過(guò)藍(lán)牙向預(yù)設(shè)手機(jī)發(fā)送報(bào)警信號(hào)。
系統(tǒng)采用的是意法半導(dǎo)體的STM32F4系列單片機(jī),其使用具有512 KB閃存、128 KB SRAM的STM32F411CEU6作為微處理器。該處理器具有32位數(shù)據(jù)處理的能力,是一款成本低、功耗小、性能強(qiáng)的主控芯片[8-10]。另外該處理器工作頻率最高可達(dá)100 MHz,還有著多達(dá)13個(gè)通信接口,最多能支持81個(gè)具有中斷功能的I/O端口,可快速響應(yīng)緊急情況[11-12]。該芯片的封裝為UFQFPN48,封裝大小為7 mm×7 mm,使得所占用空間減小。STM32F411CEU6 引腳如圖2所示。
圖2 STM32F411CEU6引腳
MPU-6050是全球首個(gè)整合性六軸運(yùn)動(dòng)處理組件,具有體積小、重量輕和響應(yīng)速度快等優(yōu)點(diǎn);其可以測(cè)量整個(gè)空間的加速度,全面反映運(yùn)動(dòng)物體的空間位置。芯片內(nèi)部還有溫度傳感器能夠彌補(bǔ)器件內(nèi)外溫度不同造成的誤差。通過(guò)使用I2C完成與MCU的通信。此外利用芯片內(nèi)置的DMP功能,能便捷地獲取姿態(tài)信息,避免了復(fù)雜算法操作和多余外圍電路。DMP是MPU6050內(nèi)部的運(yùn)動(dòng)引擎,可以通過(guò)它直接輸出四元數(shù),以減輕外圍微處理器的工作負(fù)擔(dān),避免了繁瑣的數(shù)據(jù)融合,使用更加方便。六軸傳感器電路如圖3所示。
圖3 六軸傳感器電路
藍(lán)牙通信模塊是由海凌科電子開(kāi)發(fā)生產(chǎn)的一款BLE5.1主從一體藍(lán)牙-串口透?jìng)髂K。各種帶有串口的設(shè)備能夠利用此模塊簡(jiǎn)單快速地使用藍(lán)牙,以便無(wú)線(xiàn)數(shù)據(jù)收發(fā)。基于BLE5.1的設(shè)計(jì),速度會(huì)更快,傳輸距離更遠(yuǎn),空曠環(huán)境下可達(dá)40~100 m。還支持低功耗模式,休眠電流最低可達(dá)6 μA。支持自定義連接和廣播間隔,內(nèi)置看門(mén)狗,可長(zhǎng)時(shí)間穩(wěn)定運(yùn)行。藍(lán)牙通信電路如圖4所示。
圖4 藍(lán)牙通信電路
LMT70是一款具有輸出使能引腳的超小型、高精度、低功耗CMOS模擬溫度傳感器。LMT70還具有線(xiàn)性和低阻抗輸出的特性,允許與現(xiàn)成的MCU/ADC無(wú)縫連接。LMT70的耗散低于36 W,具有超低的自發(fā)熱特性,支持在寬溫度范圍內(nèi)的高精度測(cè)量。在測(cè)量20~42 ℃時(shí)典型誤差值為±0.05 ℃,具有較高的測(cè)量精度,適用于人體穿戴式設(shè)備的溫度測(cè)量。溫度測(cè)量電路如圖5所示。
圖5 溫度測(cè)量電路
基于要求所設(shè)計(jì)的QT上位機(jī)項(xiàng)目,可用于管理人員添加用戶(hù),并對(duì)輸入的設(shè)備密鑰及設(shè)備鑒權(quán)信息進(jìn)行校驗(yàn)判斷。在判斷用戶(hù)輸入的數(shù)據(jù)正確后,會(huì)將用戶(hù)數(shù)據(jù)添加到本地SQLite數(shù)據(jù)庫(kù);通過(guò)數(shù)據(jù)庫(kù)頁(yè)面可視化,可以查看當(dāng)前數(shù)據(jù)庫(kù)中的用戶(hù)信息。上位機(jī)與OneNET通信的協(xié)議為MQTT協(xié)議,可在主頁(yè)面定時(shí)1 s后,通過(guò)OneNET獲取當(dāng)前用戶(hù)的數(shù)據(jù)流,并在文本框中顯示刷新過(guò)的數(shù)據(jù);也可在定時(shí)2 s后,進(jìn)行OneNET數(shù)據(jù)庫(kù)中所有用戶(hù)數(shù)據(jù)流的刷新,并同樣在文本框中顯示已刷新的數(shù)據(jù)。當(dāng)出現(xiàn)異常數(shù)據(jù)時(shí),會(huì)出現(xiàn)警告彈窗來(lái)通知管理人員進(jìn)行處理。
系統(tǒng)是基于社區(qū)獨(dú)居老人的心率血氧、身體溫度、摔倒檢測(cè)等實(shí)時(shí)數(shù)據(jù)所設(shè)計(jì)的,并通過(guò)報(bào)警信號(hào)以及OneNET物聯(lián)網(wǎng)云平臺(tái)所存儲(chǔ)的傳感器數(shù)據(jù),進(jìn)行反饋處理。具體的程序設(shè)計(jì)如下。
人體體溫采集程序軟件設(shè)計(jì)流程如下:初始化ADC后,每30 s進(jìn)行一次ADC采集,每次采集10個(gè)LMT70的輸出數(shù)據(jù),根據(jù)如下公式可轉(zhuǎn)換出所要的溫度數(shù)據(jù)。
將溫度數(shù)據(jù)顯示在界面后,一般情況下體溫趨于穩(wěn)態(tài),并不需要實(shí)時(shí)更新溫度數(shù)據(jù)。
人體心率血氧采集程序設(shè)計(jì)流程如下:心率血氧模塊是MAX30102,接口為I2C,初始化I2C后,每1 min采集一次心率,當(dāng)出現(xiàn)異常數(shù)據(jù)時(shí),為了避免誤讀,將連續(xù)多次讀取心率數(shù)據(jù),確保異常數(shù)據(jù)是否為真實(shí)數(shù)據(jù)。確認(rèn)后,將通過(guò)蜂鳴器連續(xù)鳴叫5 s來(lái)提醒老人處理,若是5 min內(nèi)仍不斷出現(xiàn)異常數(shù)據(jù),那么將通過(guò)藍(lán)牙把異常數(shù)據(jù)發(fā)送到預(yù)設(shè)手機(jī)和云平臺(tái)端,告知家人和社區(qū)管理人員。
按鍵設(shè)計(jì)流程如下:?jiǎn)纹瑱C(jī)每隔10 ms檢測(cè)按鍵電平,若出現(xiàn)低電平,將延時(shí)50 ms后再次檢測(cè),判斷按鍵電平是否仍為低電平;如果是,則判斷按鍵已被按下,否則視為誤觸。通過(guò)3個(gè)按鍵實(shí)現(xiàn)用戶(hù)與產(chǎn)品的交互。在熄屏后,可按下任意按鍵來(lái)喚醒屏幕,還可通過(guò)按鍵切換屏幕顯示界面。
六軸傳感器數(shù)據(jù)程序設(shè)計(jì)流程如下:MPU6050接口為I2C,初始化I2C后,把讀取加速度計(jì)和陀螺儀數(shù)據(jù)的操作放在定時(shí)器時(shí)序內(nèi)進(jìn)行,這是因?yàn)閷?shí)現(xiàn)摔倒檢測(cè)要實(shí)時(shí)檢測(cè)加速度計(jì)的值并求出SVM的值。讀取加速度計(jì)和陀螺儀數(shù)據(jù)的優(yōu)先級(jí)最高,可以通過(guò)判斷陀螺儀的數(shù)據(jù)來(lái)判斷屏幕是否亮起。
在系統(tǒng)開(kāi)機(jī)后,屏幕會(huì)顯示進(jìn)度條來(lái)顯示傳感器初始化過(guò)程,成功后屏幕會(huì)處于時(shí)間顯示界面,在該界面會(huì)顯示時(shí)間、日期、體溫等數(shù)據(jù)。用戶(hù)通過(guò)手機(jī)APP“HLK-B40”來(lái)進(jìn)行藍(lán)牙的綁定連接;連接成功后,屏幕左上方會(huì)顯示藍(lán)牙的圖標(biāo)來(lái)表示藍(lán)牙已連接,位于屏幕右上方的4格電量圖標(biāo)則顯示當(dāng)前電池電壓余量。通過(guò)按鍵可以修改當(dāng)前時(shí)間,也可切換血氧檢測(cè)界面進(jìn)行血氧檢測(cè)。當(dāng)用戶(hù)無(wú)操作5 s后,屏幕將熄屏,以減少不必要功耗。再次抬起手環(huán)或按下按鍵后,屏幕會(huì)亮起,默認(rèn)處于時(shí)間顯示界面。
對(duì)體溫?cái)?shù)據(jù)檢測(cè)精確度進(jìn)行測(cè)試,并進(jìn)行數(shù)據(jù)記錄,見(jiàn)表1所列。
表1 體溫?cái)?shù)據(jù)測(cè)試
系統(tǒng)數(shù)據(jù)為本系統(tǒng)所測(cè)得的人體體溫?cái)?shù)據(jù),專(zhuān)業(yè)產(chǎn)品數(shù)據(jù)為市面上常用的溫度計(jì)所測(cè)得的人體體溫?cái)?shù)據(jù),測(cè)試環(huán)境溫度為27 ℃,系統(tǒng)固定在手腕上,通過(guò)與皮膚距離為1 cm的LMT70進(jìn)行溫度的測(cè)量。由表1可得所測(cè)的數(shù)據(jù)誤差為0~0.1 ℃,精度較高。
對(duì)系統(tǒng)檢測(cè)心率數(shù)據(jù)的準(zhǔn)確性進(jìn)行了測(cè)試,測(cè)試了靜坐、跑步、吸煙三種情況下的各兩組數(shù)據(jù),共6組數(shù)據(jù),并進(jìn)行記錄,數(shù)據(jù)見(jiàn)表2所列。血氧數(shù)據(jù)測(cè)試結(jié)果見(jiàn)表3所列。
表2 心率數(shù)據(jù)測(cè)試
表3 血氧數(shù)據(jù)測(cè)試
系統(tǒng)數(shù)據(jù)為用本系統(tǒng)采集的心率及血氧數(shù)據(jù),專(zhuān)業(yè)產(chǎn)品數(shù)據(jù)是用其他品牌手環(huán)測(cè)量得出的數(shù)據(jù)。經(jīng)過(guò)對(duì)比證明,本系統(tǒng)采集的心率和血氧數(shù)據(jù)較可靠。其中靜坐情況下的心率與專(zhuān)業(yè)數(shù)據(jù)誤差最小,而跑步和吸煙情況下相對(duì)誤差大,說(shuō)明在較動(dòng)態(tài)情況下系統(tǒng)測(cè)量相對(duì)不夠穩(wěn)定。系統(tǒng)心率數(shù)據(jù)與同類(lèi)專(zhuān)業(yè)產(chǎn)品整體誤差范圍為1~5次/分鐘,血氧測(cè)試數(shù)據(jù)的誤差范圍為0.3~0.5 mmHg,整體精度良好。
3.2.1 初始化設(shè)置
用戶(hù)單擊完添加用戶(hù)后,添加新住戶(hù)的住址、姓名、性別、設(shè)備號(hào)及密碼數(shù)據(jù)。若出現(xiàn)錯(cuò)誤窗口,請(qǐng)先關(guān)閉彈窗,重新輸入正確信息即可出現(xiàn)正確窗口,說(shuō)明已完成新住戶(hù)信息初始化,如圖6~圖8所示。
圖6 初始化錯(cuò)誤彈窗
圖7 初始化正確彈窗
圖8 初始化輸入
3.2.2 查看數(shù)據(jù)庫(kù)添加情況
用戶(hù)可以通過(guò)點(diǎn)擊數(shù)據(jù)庫(kù)來(lái)查看數(shù)據(jù)庫(kù)添加情況,如圖9所示。
圖9 數(shù)據(jù)庫(kù)界面
3.2.3 主界面的返回
用戶(hù)可以通過(guò)點(diǎn)擊主菜單返回主界面,如圖10所示。
圖10 主界面
3.2.4 目標(biāo)住戶(hù)的選擇
用戶(hù)可以點(diǎn)擊住戶(hù)選擇鍵,從下拉菜單中選擇任意數(shù)據(jù)庫(kù)中已完成初始化的住戶(hù)數(shù)據(jù),如圖11所示。
圖11 選擇目標(biāo)住戶(hù)下拉菜單圖
3.2.5 目標(biāo)住戶(hù)的數(shù)據(jù)獲取
在選擇好目標(biāo)住戶(hù)后,用戶(hù)可以點(diǎn)擊水量獲取鍵、溫度獲取鍵來(lái)分別獲取目標(biāo)住戶(hù)的用水量、目標(biāo)用戶(hù)的體溫,如圖12所示。當(dāng)水量小于1時(shí),會(huì)報(bào)錯(cuò),如圖13所示。
圖12 目標(biāo)住戶(hù)水量、體溫?cái)?shù)據(jù)獲取圖
圖13 目標(biāo)住戶(hù)水量獲取小于1時(shí)的報(bào)錯(cuò)圖
3.2.6 目標(biāo)住戶(hù)的數(shù)據(jù)更新
點(diǎn)擊更新所有數(shù)據(jù)鍵,可以獲取并更新目標(biāo)用戶(hù)的水量、溫度、脈搏、心率,如圖14所示。
圖14 目標(biāo)住戶(hù)數(shù)據(jù)更新圖
系統(tǒng)數(shù)據(jù)為手環(huán)及下位機(jī)采集的心率及脈搏數(shù)據(jù),經(jīng)多次測(cè)試,傳輸數(shù)據(jù)精確度能達(dá)到小數(shù)點(diǎn)后兩位,整體精度較良好。在聯(lián)網(wǎng)環(huán)境下,能夠在小于2 s內(nèi)完成在線(xiàn)數(shù)據(jù)庫(kù)信息輸入及住戶(hù)實(shí)時(shí)數(shù)據(jù)更新,整體響應(yīng)速度較快。
本設(shè)計(jì)以STM32F411CEU6芯片為控制核心,能夠穩(wěn)定、精準(zhǔn)地實(shí)現(xiàn)對(duì)使用者身體傾斜度的實(shí)時(shí)檢測(cè),并通過(guò)藍(lán)牙模塊進(jìn)行數(shù)據(jù)上傳。系統(tǒng)啟動(dòng)后,可以實(shí)時(shí)采集使用者的心率、血氧、體溫等信息。在經(jīng)過(guò)控制芯片處理后,數(shù)據(jù)會(huì)被上傳至OneNET平臺(tái),再進(jìn)行界面顯示。同時(shí)這些數(shù)據(jù)會(huì)被傳輸至SQLite平臺(tái)進(jìn)行存儲(chǔ),服務(wù)器會(huì)不定時(shí)更新使用者的各種身體信息,這些信息可以被監(jiān)護(hù)人訂閱查看,實(shí)時(shí)知曉老人具體情況,起到了利用數(shù)據(jù)保障老人健康生活、防止老人發(fā)生意外的作用。