韓 君,張慶平
(深圳職業技術學院 電子與通信工程學院,廣東 深圳 518055)
脈搏是常見的生理現象,健康的成年人每分鐘脈搏跳動在60-100次左右[1].脈搏的快慢可以一定程度反映人體心臟和血管的機能狀態,每分鐘脈搏跳動的次數稱作脈率.
本文提出的基于Android平臺的脈搏檢測實驗系統由脈搏傳感器、單片機系統、智能手機組成.把脈搏傳感器固定在中指或拇指處,學生可以簡便地測出脈率值,測量的結果在學生手機上顯示出來.該實驗系統已應用于我校物聯網應用技術專業“傳感器應用技術”課程的實踐教學中.通過使用該實驗系統,學生在系統設計、電路調試、Android應用開發、軟件調試等方面都有了很大的提高.
傳統傳感器教學中常用萬用表、示波器等儀器對傳感器檢測的信號進行測量和觀察.隨著集成化程度提高,智能傳感器應用越來越廣,智能傳感器可以通過WIFI、藍牙等無線網絡和移動終端相連,移動終端方便快捷的接收并顯示傳感器的測量信息[2].Android系統手機就是一種便捷的移動終端,利用學生自己的手機不會增加實驗成本,將Android手機作為實驗系統中的一個組成部分,也會大大提高學生的參與興趣.
自2019年以來,我校物聯網應用技術專業開展了基于Android的“傳感器技術”課程建設項目,將培養學生在移動終端軟件層的設計和調試能力融入到“傳感器應用技術”課程教學中,有利于充實傳感器課程資源庫的知識點和技能點體系[3].
基于上述思想,選取脈搏信號檢測作為傳感器實訓教學的典型實驗案例,通過該實驗系統不僅僅使學生了解脈搏傳感器的基本原理,還能更大程度提高學生將傳感器、單片機系統和移動終端設備綜合使用的能力,整體提升學生軟硬件開發綜合能力.實驗系統框圖如圖1所示,由脈搏傳感器模塊,單片機模塊、WiFi傳輸模塊和移動設備顯示端組成,可以將傳感器模塊采集到的脈搏數據經單片機模塊處理,計算出脈率值,再通過 WiFi傳輸模塊發送到移動安卓終端上顯示.

圖1 系統組成框圖
本系統使用的脈搏傳感器是是一種集成式脈搏傳感器.它的內部由發光管、光敏管和放大電路組成.隨著心臟的搏動,手指端的血流量發生周期性的變化[4],照射到手指端的光信號反射到光敏接收管,反射的光信號強度同樣也會發生周期性變化,利用光敏接收管及放大電路,最終傳感器輸出與人體脈搏同步的電壓信號.
脈搏傳感器輸出電壓信號Up經過由AD8615組成的電壓跟隨器變換,輸出電壓U0接到單片機的模擬輸入通道PA0.另外,脈搏傳感器輸出信號Up經LMV358電壓比較器輸出Upo控制指示燈D1,通過指示燈D1觀察脈搏跳動的情況.脈搏傳感器電路如圖2所示.

圖2 脈搏傳感器電路
ATmega16單片機最小系統[5]組成了單片機模塊,主要完成AD轉換,脈率計算和數據通信功能,電路如圖3所示.脈搏傳感器模塊的模擬電壓信號U0接入PA0模擬通道,進行AD轉換,本實驗系統可以實現1~3個通道的脈搏檢測,其他兩個通道的脈搏傳感器電路與圖2原理相同,不再贅述.AD轉換的結果由串口—WiFi轉換模塊傳至移動設備顯示端.

圖3 單片機最小系統電路
系統采用HLK-RM04WiFi傳輸模塊,它可以將來自串口的信號轉換成 WiFi通信模式的信號,借助這個通信模塊我們就可以將脈搏傳感器采集數據發送給移動終端等設備顯示[6].WiFi傳輸模塊與單片機連接電路如圖4所示.

圖4 WiFi傳輸模塊與單片機連接電路
脈搏顯示界面上顯示三個脈搏采集點的狀態和數值,界面程序MainActivity.java流程圖如圖5所示.學生手機通過獲取服務器IP地址,與傳輸模塊生成的 WiFi節點連接,接收傳輸模塊上傳的數據,并在顯示控件對應位置顯示脈率值,未連接傳感器的采集點顯示待連接狀態.界面運行效果如圖6所示.

圖5 顯示界面程序流程圖

圖6 顯示界面運行效果圖
為了能夠接收到參數數據,需要在項目包下新建Client.java文件,在文件中創建connect方法連接服務器.在顯示界面的程序流程中連接服務器部分即調用了 connect方法.數據請求客戶端Client.java程序流程圖如圖7所示.

圖7 客戶端數據請求程序流程圖
定義對象是為了后面的創建構造方法和創建連接方法做準備.采用Socket通信方式,這種方式方便與底層傳感器模塊通信,速度快而且靈活高效[7].
創建Client構造方法,相當于定義使用它時的入口和出口參數.前面獲得的服務器 IP地址傳到這里,又通過myHandler返回傳感器數據和狀態消息,流程圖如圖8所示.

圖8 Client構造方法程序流程圖
創建 connect連接方法,這是數據請求客戶端設計的核心部分.利用 socket通信方式,通過 IP地址和端口port,啟動子線程thread讀取數據輸入流.程序流程圖如圖9所示.

圖9 connect連接方法程序流程圖
數據流讀取在子線程thread中進行,讀取的數據放在數組buffer中,如果讀到數據符合傳感器的數據格式,則通過myHandler發送buffer中的數據和連接成功消息.
本實驗系統由脈搏傳感器電路實驗部分、單片機模塊實驗部分、界面設計實驗部分三個實驗模塊組成.每個實驗模塊安排了具體的實驗內容.實驗內容豐富,由簡入繁,可以根據學生程度自由選擇.表1列出了實驗的具體內容、知識點、技能點,下面對實驗過程進行簡要說明.

表1 實驗內容列表
首先,為了讓學生建立質量管理的概念,實驗中對選用的脈搏傳感器進行質量測試,使用示波器觀察其輸出電壓Up,根據說明書進行對比,進一步掌握脈搏傳感器轉換原理.示波器測量Up點的波形如圖10所示.然后,按照文中圖2電路進行脈搏傳感器電路焊接,焊接完成后用示波器測量電路輸出信號U0和Up0.示波器測量U0和Upo點的波形如圖11所示,圖中上方藍色波形是U0,下方黃色波形是經過比較器電路的輸出信號Upo.對比觀察兩個信號在時序上對應關系,并繪制脈搏波形曲線,計算脈率值.

圖10 Up點的波形圖

圖11 U0和Upo點的波形如圖
進一步指導學生連接單片機和 WiFi傳輸模塊,下載單片機程序,按照文中所述系統界面設計的流程,在AndroidStudio開發平臺上指導學生進行 APP界面的布局設計,及脈率數據讀取設計,進行軟件調試,最終在手機上顯示采集點的脈率值,顯示效果在文中圖6所示.通過這個實驗,學生能夠基本掌握脈搏傳感器原理和選型,電路制作和調試、常規電子儀表使用、Android界面布局,客戶端數據請求程序設計和調試方法,并可以直觀的在手機上觀測到脈率值.
基于Android平臺的脈搏檢測實驗系統在本校物聯網應用技術專業的“傳感器應用技術”課程的實踐教學中充分調動了學生的積極性,收到良好的教學效果.通過使用該實驗系統,學生可以掌握脈搏傳感器的原理,更加熟練使用常規電子儀表,對模擬電路和單片機系統也有了更深的認識,學生在Android應用軟件設計和調試方面的能力也有了顯著的提高.實驗內容由簡入繁,學生的選擇更靈活.可以分組進行實驗,組成員之間相互配合,分工合作,硬件電路調試和界面開發可同時進行,對學生團隊協作能力的培養也有很大的幫助作用.