李萬凱,邱海濤,邱桂田,王靖源
(東南大學成賢學院,江蘇南京,210000)
中國的人口老齡化已經進入了快速發展的時期。截止到2014年的年底,我國的60周歲及以上的老年人的總數已經遠遠地超過了2.12億,占總人口比重達到了15.5%。預計2053年,這個比例將會高達35%,預計未來我國的一個基本國情將是“三分之一的人口將會是老年人”。
本智能養老系統主要以STM32F103C8T6單片機為主控芯片,采用MAX30102心率血氧傳感器完成對人體心率血氧初始數據的采集,采用MPU6050角度加速度傳感器對人體姿態和跌倒狀態進行數據采樣判斷。
以STM32F103C8T6單片機作為主控芯片,采用MXL3061 GY-906-BAA作為紅外探頭,測量人體溫度,紅外探頭連接到開發板上,收集體溫數據,在顯示屏上顯示溫度數據。采用MAX30102連接傳感器,當LED光射向皮膚時,透過皮膚表面組織反射回的光會被光敏傳感器接收到,并處理轉換成電信號,然后再經過AD轉換成數字信號,過程大概簡化為:光信號→電信號→數字信號[1]。使用MPU6050加速度傳感器檢測人體姿態是否異常。采用定位雙模中科ATGM336H信號輸出到GPS,采用ESP8266芯片,一款串口轉無線模芯片,傳輸實時數據到家屬手機APP。
接入電源,經過系統供電穩壓輸出3.2V或5V的電壓給主控芯片和各個模塊進行供電,其中,心率血氧檢測模塊,體溫監測模塊,加速度傾角檢測模塊以及GPS定位模塊采集數據輸出到STM32主控芯片進行處理,處理后的數據值進行比較,輸出到OLED屏上,若數值異常揚聲器播報,WIFI模塊實現與手機的交互。總體設計框圖如圖1所示。

圖1 硬件總體設計框圖
軟件設計以硬件設計圖為基礎,進行各個模塊數據處理程序設計。軟件總體設計框圖如圖 2所示。

圖2 軟件基礎方案圖
本系統采用STM32為主控芯片,借助電源模塊給外部接入的電源進行升壓或降壓并進行穩壓,給各個模塊供電,各模塊之間輸入輸出端連接STM32最小系統板進行采樣處理輸出數據,輸出的數據也可由WiFi模塊傳輸到手機端。
本系統在電源的處理上采用了穩壓芯片 LM2596。我們采用 LM2596 系列三端穩壓電路為系統提供5V和3.3V的電壓。該電路中還有調節管的過流電路、過熱電路和保護電路,使用時十分可靠、方便并且安全。穩壓電路原理圖如圖3所示。

圖3 電源模塊原理圖
系統采用MAX30102芯片作為心率血氧的采樣,我們采用的MAX30102是一個包含了脈搏血氧測量儀和心率監測的生物傳感器模塊。它含有可以發射光的一個660nm紅光LED、880nm紅外光LED以及其他一些光電檢測器、光器件,它的芯片中帶有可以抑制環境光的低噪聲電子電路,可以降低環境光帶來的設備影響[2-3]。可通過軟件關斷模塊,待機電流為零,實現電源始終維持供電狀態,可運用于低功耗產品中。MAX30102內部集成了一整套完整信號采集電路,包括光信號發射及接收、AD轉換、環境光干擾消除及數字濾波部分,只將數字接口留給用戶。用戶只需通過單片機的IIC接口,對MAX30102內部的寄存器進行讀寫操作,就可以得到處理轉換后的光強度的數值。最后需要通過相應的處理算法計算出心率值和血氧飽和度。其原理圖如圖4所示。

圖4 心率血氧模塊原理圖
我們采用的MPU6050芯片內自帶了一個數據處理子模塊DMP,DMP中已經內置了相應的濾波算法。MPU6050芯片采樣后給出的數據中夾雜著比較嚴重的噪音,在芯片處理靜止狀態時數據的擺動還很大可能會超過2%。除了有較大的噪音,其他各項采樣數據也會存在偏移的現象,所以要首先對采集的數據的偏移進行校準,再通過相應的濾波算法來消除大量噪音。處理完的數據與設定值比較來判斷人體狀態,若姿態異常則觸發蜂鳴器警報。其原理圖如圖5所示。

圖5 MPU6050加速度陀螺儀原理圖
采用的ESP8266芯片是一款串口轉無線WiFi模塊芯片,內部有一些自帶固件,用戶操作起來比較簡單,比如:無需編寫時序信號等。本次實驗我用的是ESP8266-01s系列。這款芯片使用的是3.3V的直流電源,模塊體積較小,功耗低,并且支持透傳,數據傳輸丟包現象不嚴重,相對來說價格低。我們通過blinker平臺連接ESP8266WiFi模塊,通過Arduino編寫程序與手機實現信息的傳輸與接受[4]。
我們采用AD繪制的pcb電路板并打印;利用Keil5版本軟件和Arduino,使用C語言編寫和修改程序,通過燒錄工具以J-Link的燒錄方式將設計好的程序下載到STM32單片機中調式運行。Keil STM32是STM32系列兼容單片機 C 語言的軟件開發系統,為編程設計提供了一個很好的環境,他能高效的編譯C語言寫出的代碼,在我們調試研究中提供很大幫助。另外我們還采用的blinker(點燈科技)平臺,我們簡單設計了app的數據界面,blinker平臺可以高效地連接核心板上的ESP8266 WiFi模塊獲取STM32發送的數據也可以簡單地修改各項數據的報警閾值,完成手機和設備的交互。
我們采用的blinker 平臺是一個物聯網接入方案,旨在讓用戶可以暢快 DIY 自己物聯網設備。IOS、Android都支持,本地、遠程可以都支持,藍牙、WiFi也都支持,可自己拖拽布局設備控制界面,輕松打造物聯網設備。

圖6 軟件設計流程圖
首先對系統進行初始化,進行時鐘分頻后進行數據采樣,從模塊化芯片中獲取各項數據進行算法分析,分析后的數據經過處理后在OLED屏幕上顯示,經過算法判定數據的異常值,手機APP端也會做出相應的報警處理。
我們將跌倒檢測列為我們的項目重點,跌倒是一個比較復雜的過程。我們對其運動過程做了分析得出兩個重要參數,加速度和角度變化值。跌倒檢測的硬件主要包括陀螺儀 MPU6050和主控 STM32F103C8T6,其中 MPU6050是一款9軸運動傳感器。它集成了 3 軸( X,Y,Z) MEMS 陀螺儀,3軸加速度計,以及一個可擴展的數字運動處理器 DMP( Digital Motion Processor) ,可用 I2C接口連接一個第三方傳感器,比如磁力計。擴展之后就可以通過它的 I2C 接口輸出一個 9 軸的信號[3]。在本項目系統中我們只用了其中 6 軸,即角度測量和加速度測量。設aax表示人體左右方向上的加速度,aay表示人體前后方向上的加速度,aaz表示人體上下方向上的加速度,SVM表示人體的合加速度,是區分人體運動的重要參數,計算公式如下(單位:m/s2):

經過觀察和分析可得到,首先老人跌倒發生的時候,人體的重力加速度會有一個猛然下降的趨勢和過程,之后人體會在與地面接觸的時候與地面產生一個很大的沖擊,即加速度的驟減,接下來人體的角度也會發生變化。整理分析每次測得的數據可得到,人每次的摔倒都會產生一個 SVM < 2 的過程,所以我們將 SVM < 2 作為跌倒的第一個判斷依據。當人體向前摔倒時航向角y 軸角度大于 70o,當人體向后摔倒時 y 軸角度小于 - 70o,人體向左摔倒翻滾角 x 軸角度大于 70o,人體向右摔倒時 x 軸角度小于 - 70o。所以我們想要判斷老人是否跌倒,還需要判斷X,Y 兩軸角度的絕對值是否超過 70o即可。 圖 7 為跌倒檢測算法的流程圖,人體的合加速度 SVM 一直會進行更新和判斷。一旦滿足 SVM < 2 后,會延時2s再判斷 X,Y 兩軸的角度是否滿足跌倒條件。如果當前兩項數據都滿足條件后,設備就會發出跌倒警報,做最后一項判斷。若老人在跌倒后,能自主站起 5s 后系統解除警報,若沒有站起,系統會馬上對老人進行定位,并通過WiFi模塊將位置發給用戶,手機APP也會隨即報警。

圖7 跌倒報警算法流程圖
本文介紹了我們智能養老輔助系統的項目組在指導老師和成員的積極配合和努力下,項目的研究內容和研究方案,本項目通過這次的研究和實驗發現,我們對老人身體的體溫,心率及血氧,以及身體姿態進行了檢測,與當前市面上的一些已存在的產品所測量的數據進行了數據的對比后進行了分析,雖然各項數據均存在著細微的偏差,但是并不影響數據的正確性和可靠性,人體的跌倒過程是一個相當復雜的過程化的運動,我們對跌倒的過程進行了分析和做了簡易的過程歸納,大致分為加速度和傾斜角度的檢測來記錄和分析數據,再經過一定相關的算法處理后,最終判別是否符合報警條件來觸發警報,并尋求幫助。
在未來的幾年里,隨著經濟和時代的發展,中國的老齡化將繼續嚴重,未來的中國三分之一的人口為老人將成為中國的基本國情之一,智能輔助養老系統的設計的初衷是為了能夠讓外出務工子女能夠更方便地了解到家中老人的身體狀況,來判斷老人是否需要幫助或者就醫,本設備實用性高,相比市場上功能單一的可穿戴設備有較大優勢。