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