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