西北民族大學電氣工程學院 劉艷艷
該項目的名稱是“基于單片機的老人監護系統”。本系統可以通過脈搏心率傳感器檢測老人的脈搏狀態,把老人的數據狀態在單片機內部進行處理,然后反饋到PC端通過上位機顯示出來,這樣可以讓我們隨時隨地了解到老人現在的身體情況,以便對老人的突發情況能夠做出及時的預防和處理!而且如今,隨著老人年紀不斷的增長,身體體質不斷的衰弱,在上樓梯或者走斜坡的時候很容易會發生摔倒或跌倒,如果不及時的接收到治療,很可能會造成很嚴重的后果。本套系統可以通過三軸加速傳感器實時檢測老人是否跌倒以及GPS模塊定位功能,當老人跌倒時,本系統會自動發送老人所在位置的經緯度短信通知你和報警,讓老人得到快速和有效的治療。不僅如此,隨著老人年紀不斷的增長,自身的體質和免疫力不斷的下降,本套系統可以通過傳感器不斷的檢測外界的情況,例如濕度,溫度,PM2.5!再將數據反饋到手機或液晶屏上,以便你及時的對老人進行增添衣物和對疾病的預防。
本智能醫療系統是由STM32最小系統、GSM模塊、三軸陀螺儀、穩壓模塊、HX-M02 WIFI無線透傳模塊、Arduino UNO單片機及拓展板、心率脈搏檢測裝置等部分構成。
本系統設計將STM32最小系統以及外設電路作為中央控制器,Arduino uno單片機及拓展板作為輔助控制器。輔助控制器首先通過溫濕度傳感器將老人外界環境采集到的數值進行判斷,并將采集到的數值通過WIFI無線透傳模塊發送到服務器端的數據庫中。其裝置本身還配有三軸陀螺儀和心率脈搏傳感器,當遇到老人突然發生摔倒事件或心率脈搏突發異常時,本系統會自動的報警并發送短信到指定的移動號碼上。具體的實施過程為:(1)隨著老人年齡不斷的增長,其抵抗力變得越來越弱,為了更及時有效的預防外界環境的變化所給老人的感冒、著涼。本系統通過HX-M02 WIFI無線透傳模塊實時的將采集到的溫度、濕度發送到云端數據庫中,再通過編寫手機客戶端對數據庫實時的讀取,使得無論在何時何地都可以知道老人周圍環境的數值,以便提醒老人是否添加衣物。(2)本系統還可以通過脈搏心率傳感器檢測老人的脈搏狀態,把老人的數據狀態在Arduino UNO單片機內部進行處理,然后反饋到PC端通過上位機顯示出來,這樣可以讓我們隨時隨地了解到老人現在的身體情況,以便對老人的突發情況能夠做出及時的預防和處理。(3)在對老人的姿態檢測方面,我們決定采用MPU6050三軸陀螺儀對老人的姿態角度進行實時解析,以及再使用三軸加速度計來對老人是否摔倒的檢測。(4)在檢測老人是否摔倒的軟件編程方面,我們決定將三軸陀螺儀和三軸加速度計采集到的值進行控制算法處理,例如:PID算法、卡爾曼濾波算法、互補濾波算法。使得傳感器能更好的檢測到老人的姿態,減少傳感器的誤檢。(5)當老人摔倒時,STM32單片機會通過串口通信使GSM模塊向指定的號碼撥打電話或發送短信,使得老人能夠得到及時得到有效的治療。(6)本系統還集成了GPS定位功能,當老人摔倒后,本系統會自動進行定位,并將老人所在位置的經緯度坐標通過文本短信形式發送到指定號碼的移動設備上(7)由于本系統要實時上傳采集到的數據,因此我們選用WIFI模塊連接手機熱點或者4G模塊熱點進行數據的接收與發送,這也打破了傳統意義上網線連接的局限性。在對WIFI無線透傳模塊的配置中,我們通過串口對WIFI模塊所要連接的熱點進行用戶名、密碼、連接服務器地址進行寫入。配置完成后,我們只需將熱點的用戶名、密碼設置成與其配置的一致。就可以自動的連接并進行服務器數據的交互。

圖1 基于單片機的老人監護系統硬件框圖
主控芯片STM32F103RBT6是以ARM 32的Cortex—M3為內核的處理器,最高工作頻率可達72MHz,內置大容量高速存儲器,為處理老人大量的姿態算法數據提供了足夠的內存和處理時間;具備FSMC靈活的靜態存儲器控制器,用其來驅動液晶屏極大地提高了刷新率;同時,它內嵌有支持CAN 2.0B的控制器,無需外擴專用芯片便可以組成CAN網絡。因此作為此次模擬系統的中央控制器。
而作為輔助處理線程的Arduino uno是基于ATmega328P的單片機開發板。該開發板由14路數字輸入/輸出引腳(其中6路可以用作PWM輸出)、6路模擬輸入、1個16MHz的石英晶體振蕩器、一個USB接口、1個電源接頭、1個ICSP數據頭以及1個復位按鈕組成。Uno包含了單片機運行所需的所有要素,只需用USB連接線將其連接到計算機,或利用AC-DC適配器或電池供電后即可啟動。Uno的特色在于將Atmega16U2編程為一個USB-to-serial轉換器,以便能簡單、輕松和自由地安裝驅動程序。
MPU-6050整合了3軸陀螺儀、3軸加速器,并含可藉由第二個I2C端口連接其他廠牌之加速器、磁力傳感器、或其他傳感器的數位運動處理(DMP:Digital Motion Processor)硬件加速引擎,由主要I2C端口以單一數據流的形式,向應用端輸出完整的9軸融合演算技術。我們將MPU6050陀螺儀模塊與STM32最小系統板連接,單片機通過IIC總線通訊協議讀取轉化采集到的角度姿態。并通過軟件濾波方式使輸入的數據變得更加平滑與連續,從而系統檢測變得更加穩定。
在STM32最小系統板的程序設計上,通過編程對寄存器操作以及SCL、CLK、SDA時序邏輯的轉變從而使得溫濕度傳感器以及MPU6050三軸陀螺儀模塊正常檢測。在檢測老人是否摔倒的程序編寫上,我們將MPU6050陀螺儀檢測到的傾角數值通過卡爾曼濾波算法、低通濾波算法、PID算法使數值的變化曲線趨近于平滑的曲線,以便能夠更好的對老人姿態進行準確的檢測。當單片機檢測到老人摔倒后,再通過單片機的串口通信開啟GPS定位功能,將老人所在位置的經緯度通過GSM模塊短信文本發送到指定號碼的移動設備上,以便老人能夠得到及時的救治。
由于脈搏傳感器檢測信號為模擬量,為了將其轉化為數字量,我們需要接入ADC0832芯片以及外設電路,并通過單片機內自帶的AD通道將其數值采集轉換。當檢測到老人的脈搏發生異常時,通過IO的高低電平轉換,控制GSM通過單品機的串口通信向指定的號碼撥打電話和報警。作為拓展,我們將Arduino連接HX-M02 WiFi模塊,并通過外網傳輸將單片機采集到的溫濕度數值以及脈搏傳感器數值分別發送到程序指定的云服務數據庫中,我們僅需在另一終端上登錄指定數據庫就可以將數值顯示出來。
為了將檢測結果更能簡單方便的顯示給用戶,我們決定使用手機應用程序來讀取數據庫中老人身體狀態的數值。因此我們將采用Andriod Studio軟件來進行安卓程序的編寫。在軟件的開發中,我們設計了登錄界面、老人狀態顯示界面。并通過添加方法將登錄、注冊功能寫入,增加了其系統的安全性。當我們登錄成功后,頁面會自動跳轉到老人狀態顯示界面。在此界面中,文本框顯示老人的身體狀態數值,以及對數值進行分析得出合理性的建議。在數據的接收和分析中,我們在云服務器中創建一個網頁,并通過PHP語言編寫條件的邏輯判斷以及對數據庫的讀寫操作,從而實現數據的交互傳輸。
本文通過對老人監護系統的硬件電路選擇以及軟件控制程序編寫的介紹,系統結合了硬件優化結構的電路控制和單片機濾波程序控制兩種方式,先經過模擬電路初步調節,再通過單片機程序軟件逐步精細優化、以及安卓應用程序的不斷測試修改。在測試過程中,表現出了穩定、靈活、高效的特點,能夠有效體現系統的方便智能,具有廣闊的應用前景、市場價值。