付學(xué)偉
(云南民族大學(xué)體育學(xué)院 云南昆明 650000)
運(yùn)動員速度與心率遠(yuǎn)程監(jiān)測系統(tǒng),能夠在運(yùn)動場地實(shí)時檢測出運(yùn)動員的心率及速度相關(guān)數(shù)據(jù),幫助教練員及醫(yī)生等隨時隨地觀察運(yùn)動員的運(yùn)動狀態(tài)參數(shù),為運(yùn)動員的科學(xué)訓(xùn)練、課程安排等提供了非常有效的實(shí)時參考數(shù)據(jù)[1]。該系統(tǒng)通過Arduino中控板對感知層各種傳感器數(shù)據(jù)進(jìn)行檢測、采集,再通過串口通信技術(shù)、WiFi無線通信技術(shù)將數(shù)據(jù)發(fā)送至云平臺,云平臺會對相關(guān)數(shù)據(jù)進(jìn)行識別、篩選、整合,并將數(shù)據(jù)在APP、Web端進(jìn)行實(shí)時顯示。管理人員可以通過Web端、APP實(shí)時查看運(yùn)動員的相應(yīng)狀態(tài)參數(shù)。
速度與心率遠(yuǎn)程監(jiān)測系統(tǒng)不受時間、地點(diǎn)等限制,針對訓(xùn)練員、醫(yī)生、校園體能等各種場景都可運(yùn)用。同時數(shù)據(jù)的實(shí)時監(jiān)測與傳輸對運(yùn)動員的一些心率突發(fā)情況可以起到有效的危險(xiǎn)防范作用,避免一些不必要的安全事故的發(fā)生。
基于“Arduino+Web+APP”的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng),主要是用來實(shí)現(xiàn)對運(yùn)動狀態(tài)參數(shù)檢測、采集,并且滿足相關(guān)管理者通過Web端與APP端對遠(yuǎn)程數(shù)據(jù)實(shí)時查看與控制的功能。
1.1.1 感知層
該層是基于Arduino+Web+APP的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)的最底層部分,也是核心部分。該層負(fù)責(zé)采集物體之間的數(shù)據(jù)。該系統(tǒng)通過單片機(jī)驅(qū)動相關(guān)傳感器來采集心率、速度等運(yùn)動狀態(tài)變量。
1.1.2 網(wǎng)絡(luò)層
該層通過有線或者無線的網(wǎng)絡(luò)對感知層采集的數(shù)據(jù)進(jìn)行編碼、識別、傳輸。該系統(tǒng)首先將采集到的數(shù)據(jù)通過串口通信由Arduino向WiFi模塊發(fā)送,接下來是WiFi模塊將數(shù)據(jù)發(fā)送到云平臺,云平臺通過封裝好的數(shù)據(jù)處理接口對數(shù)據(jù)進(jìn)行識別、整合,然后發(fā)送至遠(yuǎn)端Web與APP進(jìn)行數(shù)據(jù)的實(shí)時顯示與監(jiān)測。
1.1.3 應(yīng)用層
該層是速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)的最頂層,提供了豐富的應(yīng)用解決方案和物聯(lián)網(wǎng)應(yīng)用接口。即在云平臺將接收到的數(shù)據(jù)發(fā)送到遠(yuǎn)端Web與APP時,相關(guān)用戶可以通過Web端與APP去實(shí)時查看相應(yīng)數(shù)據(jù),監(jiān)管相應(yīng)的傳感器設(shè)備。
基于Arduino+Web的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng),主要用于對運(yùn)動狀態(tài)參數(shù)的檢測,以及相關(guān)管理者對于這些數(shù)據(jù)的監(jiān)控與對相應(yīng)設(shè)備的控制管理[2]。ZigBee+Web+APP結(jié)構(gòu)的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)以Arduino為中央控制板,結(jié)合WiFi通信、串口通信實(shí)現(xiàn)數(shù)據(jù)的傳遞和交互,然后數(shù)據(jù)會傳輸?shù)皆破脚_,經(jīng)過處理后發(fā)送至Web端與APP端,用于讓相關(guān)管理者對數(shù)據(jù)進(jìn)行檢測[3]。
該文涉及的ZigBee+Web+APP的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)首先是對運(yùn)動狀態(tài)參數(shù)的檢測,包括心率、速度等。片上系統(tǒng)首先是對數(shù)據(jù)進(jìn)行檢測與采集,然后對數(shù)據(jù)進(jìn)行判斷,發(fā)送相應(yīng)的數(shù)據(jù)包到Web[4,5]。
心率檢測具體流程如圖1所示。速度檢測具體流程如圖2所示。WiFi模塊數(shù)據(jù)傳輸具體流程圖如圖3所示。
圖1 心率監(jiān)測模塊系統(tǒng)圖
圖2 速度監(jiān)測模塊系統(tǒng)圖
圖3 WiFi模塊系統(tǒng)圖
系統(tǒng)整體包括數(shù)據(jù)的采集、數(shù)據(jù)的傳輸、數(shù)據(jù)的顯示三大部分:通過心率傳感器與測距模塊進(jìn)行數(shù)據(jù)的采集;通過WiFi模塊進(jìn)行數(shù)據(jù)的遠(yuǎn)程無線傳輸;通過Web端與APP端進(jìn)行數(shù)據(jù)的顯示。
具體的功能流程如下。首先單片機(jī)驅(qū)動板上搭載的心率采集模塊對心率進(jìn)行采集,同時驅(qū)動測距模塊對距離進(jìn)行檢測,并通過內(nèi)部的時間統(tǒng)計(jì)函數(shù)計(jì)算出速度,完成數(shù)據(jù)的采集功能。然后單片機(jī)將心率數(shù)據(jù)、速度數(shù)據(jù)通過板上的通信串口發(fā)送至ESP8266WiFi模塊,再對WiFi模塊的工作模式與數(shù)據(jù)發(fā)送方式進(jìn)行配置與指令的寫入,通過ESP8266WiFi模塊將數(shù)據(jù)發(fā)送至云平臺,完成數(shù)據(jù)的無線遠(yuǎn)程發(fā)送。云平臺接收到數(shù)據(jù)后,對數(shù)據(jù)進(jìn)行整合與處理,然后實(shí)時在Web與APP界面進(jìn)行顯示,并生成日志,便于用戶查看,完成數(shù)據(jù)的顯示功能。
2.2.1 中控板簡介
系統(tǒng)采用Arduino單片機(jī)作為中央控制板,該開發(fā)板的部分?jǐn)?shù)字引腳支持PWM波的輸出,也便于對模塊進(jìn)行各種占空比的控制。同時具有豐富的第三方庫,只需要在IDE中添加相應(yīng)模塊的庫,就可以調(diào)用庫中的函數(shù)驅(qū)動各種模塊進(jìn)行工作[6]。
2.2.2 電路原理圖設(shè)計(jì)
Arduino單片機(jī)具有數(shù)字引腳與模擬引腳兩種輸入輸出類型,其中數(shù)字引腳D2、D3用于驅(qū)動紅外對管模塊對速度數(shù)據(jù)進(jìn)行采集;TXD、RXD引腳是模塊的串口通信引腳,分別與ESP8266的數(shù)據(jù)接收、發(fā)送引腳連接,用于數(shù)據(jù)的遠(yuǎn)程收發(fā)功能;A4、A5是單片機(jī)的模擬引腳,與心率采集傳感器模擬輸出引腳連接,用于接收模塊采集的心率數(shù)據(jù)。
2.3.1 模塊簡介
系統(tǒng)采用MAX30102心率檢測模塊實(shí)現(xiàn)對用戶的心率采集功能。該模塊相較于其他模塊,穩(wěn)定性高,內(nèi)置有轉(zhuǎn)換電路,可以直接讀取引腳上的心率數(shù)據(jù)。
2.3.2 電路原理圖設(shè)計(jì)
該模塊有7個引腳,系統(tǒng)用到其中的4個。其中GND、VIN引腳與開發(fā)板的GND、3.3V連接,用于提供模塊正常工作的電壓。SDA是模塊的數(shù)據(jù)信號輸出引腳,與單片機(jī)的A4連接,通過讀取該引腳輸出的模擬電壓,再通過單片機(jī)內(nèi)部的ADC轉(zhuǎn)換,得到心率的采集數(shù)據(jù)。SCL是模塊的時鐘信號引腳,用于和單片機(jī)保持同步的數(shù)據(jù)傳輸頻率,與單片機(jī)的A5引腳連接。
2.4.1 模塊簡介
系統(tǒng)使用紅外對管模塊用于對運(yùn)動相關(guān)數(shù)據(jù)進(jìn)行采集,該模塊具有一對紅外發(fā)射與接收管,工作時,發(fā)射管會發(fā)射出一定頻率的紅外線,當(dāng)運(yùn)動員經(jīng)過時,紅外線會被反射回來并由接收管接收,從而實(shí)現(xiàn)對運(yùn)動員運(yùn)動參數(shù)的采集。
2.4.2 電路原理圖分析
系統(tǒng)使用2個紅外發(fā)射模塊對速度數(shù)據(jù)進(jìn)行檢測,2個模塊之間距離固定,當(dāng)運(yùn)動員通過時,模塊會發(fā)送低電平,通過2個低電平之間的時間差,計(jì)算出運(yùn)動的速度數(shù)據(jù)。該模塊有3個引腳,其中1號、3號引腳與開發(fā)板的5V、GND連接,提供模塊工作需要的電壓;2號引腳是模塊的信號觸發(fā)引腳,分別與單片機(jī)的數(shù)字引腳D2、D3連接,當(dāng)運(yùn)動員通過時,單片機(jī)讀取到低電平“0”,但沒有運(yùn)動員通過時,讀取到高電平“1”。
2.5.1 模塊簡介
系統(tǒng)使用OLED顯示模塊對心率、速度數(shù)據(jù)進(jìn)行顯示。OLED模塊采用OLED自發(fā)光技術(shù),當(dāng)電流通過時,有機(jī)材料就會發(fā)光,可以顯示漢字、ASCLL碼、圖案等。
2.5.2 電路原理圖設(shè)計(jì)
系統(tǒng)使用OLED模塊對相應(yīng)數(shù)據(jù)進(jìn)行顯示。模塊具有4個引腳,其中VCC、GND與開發(fā)板的供電引腳相連,為模塊提供正常的工作電壓。SCL是模塊的時鐘線引腳,與單片機(jī)的A5引腳連接,用于控制模塊與開發(fā)板的時鐘頻率。SDA為模塊數(shù)據(jù)線,與單片機(jī)的A4引腳相連,用于接收模塊發(fā)送的顯示數(shù)據(jù)。
2.6.1 模塊簡介
速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)采用WiFi模塊進(jìn)行數(shù)據(jù)的傳輸交互,用于物聯(lián)網(wǎng)傳輸層。該系統(tǒng)采用有人-WiFi模塊,該型號模塊掉電后數(shù)據(jù)并不會丟失,不需要像其他模塊一樣每次掉電重啟后需要再次通過單片機(jī)燒寫啟動程序。
2.6.2 電路原理圖設(shè)計(jì)
該模塊有8個引腳。其中1號、5號是模塊的工作電壓提供引腳,與開發(fā)板的3.3V、GND連接。4號引腳是模塊的串行數(shù)據(jù)發(fā)送引腳,與開發(fā)板的數(shù)據(jù)接收串口引腳RXD連接,8號引腳是模塊的串行數(shù)據(jù)接收引腳,與開發(fā)板的數(shù)據(jù)發(fā)送串口引腳TXD連接。開發(fā)板首先通過8號引腳將配置指令寫入到WiFi模塊中,設(shè)置為AP模式,設(shè)置模塊的端口號、名稱、密碼等參數(shù)。再將采集到的數(shù)據(jù)通過串口通信發(fā)送到WiFi模塊,再由WiFi模塊將數(shù)據(jù)發(fā)送至云平臺進(jìn)行處理。
云平臺的創(chuàng)建與接入流程如下。首先在貝殼物聯(lián)進(jìn)行賬號的注冊、登錄,確定系統(tǒng)的產(chǎn)品名稱,以及對速度及心率數(shù)據(jù)的格式、范圍的設(shè)定,并選擇采用WiFi+MCU的物聯(lián)網(wǎng)解決方案。然后獲取云平臺為系統(tǒng)生成的APIKey,點(diǎn)擊生成代碼,獲取該系統(tǒng)的封裝代碼包[7]。再將代碼包添加到Arduino庫中,在系統(tǒng)的程序設(shè)計(jì)中添加云平臺聯(lián)網(wǎng)的工程代碼及速度、心率數(shù)據(jù)接收與發(fā)送的工程代碼。最后將平臺為該系統(tǒng)生成的唯一產(chǎn)品ID燒寫到WiFi模塊中,對系統(tǒng)上電聯(lián)網(wǎng)后,就可以實(shí)現(xiàn)系統(tǒng)對云平臺的接入。
首先是對系統(tǒng)整體功能的測試,包括系統(tǒng)硬件端的外設(shè)電路、電源電路等的焊接,測試結(jié)果正常,接觸良好,并且能夠給單片機(jī)與各個外設(shè)模塊穩(wěn)定供電。
其次是對心率與速度數(shù)據(jù)的采集與OLED顯示功能的測試,系統(tǒng)會實(shí)時對心率與速度數(shù)據(jù)進(jìn)行檢測與采集,并將數(shù)據(jù)發(fā)送到OLED液晶顯示進(jìn)行實(shí)時的顯示,測試結(jié)果正常。
再次是Web端對心率與速度數(shù)據(jù)的顯示功能的測試,該功能以折線圖的形式對速度、心率進(jìn)行實(shí)時的顯示,供管理者對數(shù)據(jù)進(jìn)行查看,測試結(jié)果正常。
最后是APP端對數(shù)據(jù)的顯示功能,APP端具有數(shù)字顯示與歷史數(shù)據(jù)折線圖顯示2種功能,通過頁面上的功能按鈕進(jìn)行切換,測試結(jié)果正常。
在測試過程中,該文對基于ZigBee+Web+APP的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)的感知層、傳輸層、應(yīng)用層三部分進(jìn)行測試。在測試過程中遇到的問題主要有以下2個。
第一是硬件端的實(shí)現(xiàn),Arduino單片機(jī)驅(qū)動各個傳感器。對于這個問題,查閱相關(guān)資料,閱讀相似代碼,反復(fù)地編寫代碼嘗試,記錄、比較每次驅(qū)動的結(jié)果,最終解決問題,成功驅(qū)動各個傳感器模塊。
第二是數(shù)據(jù)交互的實(shí)現(xiàn)與否。該系統(tǒng)涉及多次的數(shù)據(jù)交互:Arduino開發(fā)板與串口的數(shù)據(jù)交互、串口與WiFi模塊的數(shù)據(jù)交互、WiFi模塊與云平臺的數(shù)據(jù)交互。這三層數(shù)據(jù)交互在系統(tǒng)制作過程中都出現(xiàn)過或大或小的問題。通過反復(fù)的代碼修改,硬件調(diào)試,將測試結(jié)果顯示在串口助手進(jìn)行比較,記錄每一次的測試結(jié)果,反復(fù)調(diào)試,最終解決了三層數(shù)據(jù)交互遇到的問題。
此次設(shè)計(jì)的基于Arduino+Web+APP的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)雖然已經(jīng)實(shí)現(xiàn)了一部分智能心率、速度遠(yuǎn)程監(jiān)測的功能,但這僅僅只是完整功能的一部分,未來可以繼續(xù)去完善此次設(shè)計(jì)的基于Arduino+Web+APP的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng),如可以增加對周遭環(huán)境的檢測、遠(yuǎn)程通話功能等,這些都是可以加入到速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)的,同時為了更方便,還可設(shè)計(jì)一款手機(jī)APP供相關(guān)人員進(jìn)行使用。
但是整體來說,與一個成熟完整的速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)相比,功能還是略顯單一,在后續(xù)工作中,會不斷完善現(xiàn)有的功能,使其安全性、穩(wěn)定性得到提高。同時通過后續(xù)的學(xué)習(xí)與思考,并結(jié)合如今較為流行的人工智能,為速度與心率遠(yuǎn)程監(jiān)控系統(tǒng)增添新的功能。在軟件端,對于Web的功能設(shè)計(jì),以及功能的豐富性、穩(wěn)定性也有著很大的提升空間。