遼寧大學(xué) 韓鵬飛 曹 政 都 瑞
本文采用TI單片機MSP-EXP430F5529LP為控制核心,通過通信用單片機WEMOS D1,與開源服務(wù)器Blynk相連接,實現(xiàn)無線傳輸與云端控制的物聯(lián)網(wǎng)功能。同時,通過心電信息模塊、運動信息模塊、溫度信息模塊來組成整體系統(tǒng)。實驗結(jié)果表明,該系統(tǒng)對信息處理穩(wěn)定且精確,通過無線傳輸可以實現(xiàn)所得數(shù)據(jù)在上位機的顯示,同時表現(xiàn)出Blynk平臺作為開源項目,便于自建服務(wù)器來實現(xiàn)數(shù)據(jù)的傳遞與保存的優(yōu)勢。
運動傳感器節(jié)點(Motion Sensor node)作為智能手環(huán)接受外界信息的重要部件,隨著智能手環(huán)的普及,越來越受到外界關(guān)注。傳統(tǒng)的運動傳感器節(jié)點,只能將內(nèi)部傳感器收到的外界信息進行處理直接顯示在屏幕上,同時系統(tǒng)維護也不夠便捷,導(dǎo)致結(jié)果只具有瞬時性。隨著科學(xué)技術(shù)的進步與發(fā)展,怎樣確保得到的數(shù)據(jù)在可以被保存下來的基礎(chǔ)上保證數(shù)據(jù)的精度,已成為急需解決的一個問題。本文將設(shè)計的一個可實現(xiàn)無線上傳和數(shù)據(jù)保存功能,并且可以顯示人體體溫、運動距離與步數(shù)、心電信息及對應(yīng)心電圖的無線運動傳感器節(jié)點系統(tǒng)。
該系統(tǒng)可以實現(xiàn)心電測量、溫度測量與運動信息測量,以及將這些信息無線傳輸至上位機并保存的功能。系統(tǒng)主要采用主控單片機MSPEXP430F5529LP、無線傳輸機WEMOS D1、以及各個傳感器模塊組成。圖1所示為系統(tǒng)拓撲結(jié)構(gòu)圖。
圖1 系統(tǒng)拓撲結(jié)構(gòu)圖
系統(tǒng)采用專用溫度傳感器LMT70傳遞溫度信息,心電信息專用數(shù)模轉(zhuǎn)換器ADS1292處理心電信息,陀螺儀mpu6050傳遞運動信息。采用鋰電池作為電源的主要供給,其與傳統(tǒng)的USB供電方式相比,最大的好處是給予了系統(tǒng)可移動性,從而解決了系統(tǒng)運動狀態(tài)下無法穩(wěn)定工作的問題。在電池與元器件之間接入穩(wěn)壓芯片,將鋰電池提供的大電壓,轉(zhuǎn)化成5V與3.3V的電壓供給給元器件使用。系統(tǒng)采用顯示屏ssd1306作為顯示部件,實時顯示所測得的心率、步數(shù)、距離、溫度與心電圖。
系統(tǒng)框圖如圖2所示。
圖2 系統(tǒng)框圖
心電信息由醫(yī)用電極與導(dǎo)聯(lián)進行接收與傳輸,其中導(dǎo)聯(lián)焊接的穩(wěn)定與否,直接影響了外界噪聲對有用信息干擾的大小。該部分僅需采用3根導(dǎo)聯(lián)線,分別接左腰下側(cè)、左胸上側(cè)、右胸上側(cè)。通過這三根導(dǎo)聯(lián)線便可得到穩(wěn)定可靠的心電信息。心電信息經(jīng)電極收集后,由導(dǎo)聯(lián)傳輸給專用心電模數(shù)轉(zhuǎn)換芯片ads1292進行處理。
溫度信息的接收由專用的溫度傳感器LMT70負責,其+10.0mV/℃增益足以保證原始數(shù)據(jù)的穩(wěn)定性與精確性。溫度信息專用模數(shù)轉(zhuǎn)換器ads1115可以將從LMT70處得到的心電模擬電壓轉(zhuǎn)換成數(shù)字量,這個電壓測量的范圍包含人體體溫理論上轉(zhuǎn)變?yōu)槟M電壓的最大值和最小值。
運動信息由陀螺儀MPU6050進行接收傳輸,MPU6050在通過程序設(shè)定初始位置之后,由其自身運動產(chǎn)生的加速度,經(jīng)過本身處理,產(chǎn)生一系列的數(shù)字電信號傳給MSP-EXP430F5529LP,從而經(jīng)由算法處理,可得到精確的運動步數(shù)與運動距離信息。
無線傳輸模塊由arduino系列的WEMOS D1單片機進行處理。WEMOS D1包含esp8266無線通信模塊,相較于單獨的esp8266模塊具有引腳全,接線少,燒錄程序時可直接連線而不用于借助于其他模塊的優(yōu)點,
因此選擇D1作為無線收發(fā)機。加入W25QXX作為存儲芯片,可將接收到的信息進行存儲,保證舊信息的可查性。將熱點與esp8266模塊進行連接,從而在虛擬服務(wù)器中實現(xiàn)信息的無線上傳與保存。
本次設(shè)計采用Energia進行編程,使用比較完善的庫,以MSPEXP430F5529LP作為主要的數(shù)據(jù)采集、數(shù)據(jù)處理芯片。由于此次心電數(shù)據(jù)模塊ADS1292自帶時鐘,提供采樣頻率不同的工作模式,這里只需讀取ADS1292的特定引腳就可以判斷是否要采集數(shù)據(jù),基于這一特點,程序中沒有采用中斷,而是利用這一特點,選取125HZ的采樣頻率,在每次采樣的8ms間隔內(nèi),進行數(shù)據(jù)的處理的信息的反饋。
關(guān)于信息的顯示,這里采用了兩個渠道,一個是通過主控單片機MSP-EXP430F5529LP連接的SSD1306顯示屏直接顯示,另一個是通過將數(shù)據(jù)加密后通過串口發(fā)送到無線傳輸機WEMOS D1,WEMOS D1將解密后的數(shù)據(jù)通過其上的WIFI模塊發(fā)送到上位機。
圖3所示是MSP-EXP430F5529LP的程序流程圖。
圖3 MSP-EXP430F5529LP的程序流程圖
3.2.1 心率計算方法
將心電信息模數(shù)轉(zhuǎn)換器ADS1292采集回來的數(shù)據(jù)經(jīng)過濾波之后存儲在十六位的數(shù)組中,數(shù)組的長度起碼能夠包括兩個完整的心跳周期,由于采樣頻率是125HZ,所以暫把數(shù)組長度設(shè)置為300。根據(jù)QRS波的特點,R波峰值較大,遠遠大于其它波,找到最大最小值,將最大值減最小值為間隔,進而把比最大值小十分之一間隔的值作為閾值,找到R波波峰上升一側(cè)的閾值點,相鄰的兩個閾值點x1、x2之間的時間間隔即為周期,心率的計算公式為:
3.2.2 步數(shù)算法
運動信息是與心率信息一同采集并存儲在較大的數(shù)組中,當數(shù)組采集完成后,先用卡爾曼濾波算法將陀螺儀MPU6050采集的加速度信息進行去噪聲處理,然后把x,y,z三軸方向上的加速度進行合成,即r=(x^2+y^2+z^2)^2,合成數(shù)據(jù)的曲線應(yīng)該是一條平滑的曲線。在實際運動測量的時候會產(chǎn)生峰值,通過檢測曲線的大峰值個數(shù),來確定行走的步數(shù),這時要多檢測幾組峰值點兩邊的數(shù)據(jù),避免將小擾動誤判為走動。根據(jù)查閱資料和實際測量,一步大約行走0.5m,行走距離即為步數(shù)×0.65。
3.2.3 溫度算法
用溫度傳感器和測溫槍(代表準確的實際溫度)分別測二十個人的手心溫度,將穩(wěn)定后的度數(shù)記錄下來,得到二十組,四十個數(shù)據(jù)。溫度傳感器的值作為x(自變量),測溫槍的值作為y(因變量)在MATLAB的擬合曲線工具箱中擬合一條二次曲線,再經(jīng)過調(diào)試得到由傳感器讀數(shù)到準確的實際溫度轉(zhuǎn)換公式:
WEMOS D1的核心芯片是esp8266。使用Arduino作為開發(fā)環(huán)境,blynk作為物聯(lián)網(wǎng)平臺。Arduino其中包含WEMOS D1這塊板子作為設(shè)備接入blynk的例程,在此基礎(chǔ)上進行改編聯(lián)結(jié)至手機提供的熱點網(wǎng)絡(luò),定時向物聯(lián)網(wǎng)云端發(fā)送接受到的數(shù)據(jù)信息。終端采用物聯(lián)網(wǎng)軟件Blynk從云端進行接收數(shù)據(jù)并顯示。
測試方案:
實驗在固定設(shè)置的手機熱點的條件下進行(無線模塊所必須)。測試者佩戴好整套裝置,用右手攥住溫度傳感器LMT70的測溫部分來傳遞手掌溫度,將系統(tǒng)整體置于小臂處,在一個周長為30m的固定圓形線路上運動。實現(xiàn)對心率、體表溫度、步數(shù)及步距測量的實時測量,在無線運動傳感器節(jié)點顯示測量結(jié)果和動態(tài)心電圖。同時將數(shù)據(jù)上傳,在上位機ipad端的blynk服務(wù)器界面顯示測量結(jié)果和動態(tài)心電圖。完整的Blynk項目界面圖如圖4所示。
圖4 Blynk項目界面圖
本設(shè)計使用通信用單片機WEMOS D1實現(xiàn)數(shù)據(jù)在主控單片機與上位機間的無線傳輸,使用溫度傳感器LMT70測量溫度信息,使用心電專用模數(shù)轉(zhuǎn)換器ADS1292處理心電信息,使用陀螺儀MPU6050處理步數(shù)信息,進而由步數(shù)信息通過公式運算測得距離信息。該系統(tǒng)穩(wěn)定性好,測量結(jié)果精確,測量速度較快,并可實時現(xiàn)實。測試時的顯示屏界面如圖5所示。
圖5 測試時的顯示屏界面