基于可穿戴心率監(jiān)測(cè)器項(xiàng)目開發(fā)介紹
近年來可穿戴設(shè)備在多個(gè)市場呈現(xiàn)爆炸性增長,這很大程度上是因?yàn)樗鼈兲峁┑谋憷砸约按罅康南嚓P(guān)信息。運(yùn)動(dòng)跟蹤器(比如三星的Gear Fit 2)、醫(yī)療設(shè)備(比如Qardio Arm血壓劑)以及安德瑪(Under Armor)推出的UA Speedform Gemini 3智能跑鞋就是其中一些例子。這些設(shè)備能夠?yàn)橛脩籼峁└鞣N反饋信息,包括睡眠質(zhì)量、VO2水平(氧攝入量)、運(yùn)動(dòng)水平、步行和跑步節(jié)奏等數(shù)據(jù)點(diǎn)。
設(shè)計(jì)可穿戴設(shè)備需要添加外圍設(shè)備來感應(yīng)和顯示各類數(shù)據(jù),同時(shí)需要在云端存儲(chǔ)和檢索數(shù)據(jù)。本項(xiàng)目采用美信公司(Maxim)推出的Pegasus Rapid開發(fā)平臺(tái),開發(fā)板上集成了關(guān)鍵的外圍設(shè)備以及Maxim推出的700-MAXREFDES117#心率監(jiān)測(cè)器參考設(shè)計(jì),這大大的簡化了開發(fā)流程。此外我們采用了Mbed操作系統(tǒng)(OS)用于云編程,Ubidots云服務(wù)以及Android Studio軟件實(shí)現(xiàn)云應(yīng)用接口。
如果你是一名設(shè)計(jì)師(或“DIYer”),借助這些集成特性、參考設(shè)計(jì)和云編程工具會(huì)讓你在起跑線上領(lǐng)先一步。下面的內(nèi)容標(biāo)注了必需的工程材料、幫助你進(jìn)行編程、組裝開發(fā)板卡、編譯和下載安卓App、將數(shù)據(jù)傳輸?shù)脑品?wù)。
項(xiàng)目材料和資源
我們建議在開始此項(xiàng)目前收集好如下材料和資源:
項(xiàng)目材料清單(BOM)
在Mouser.com官網(wǎng)上查看該項(xiàng)目需要的清單,包括各種組件:
Maxim公司推出的700-MAX32630FTHR#開發(fā)平臺(tái),集成了MAX36630 ARM Cortex M4F微控制器和MAX14690 PMIC電池管理器件
Maxim公司推出的700-MAXREFDES117#心率監(jiān)測(cè)器,集成心率/脈搏監(jiān)測(cè)傳感器、降壓型DC/DC轉(zhuǎn)換器和邏輯電平轉(zhuǎn)換器
鋰聚合物電池
貿(mào)澤HRM Mbed repository
貿(mào)澤HRM Gihub repository
硬件:
? 電烙鐵
? 跳線或普通導(dǎo)線
? 助焊劑
? 接頭引腳
? 面包板
? 數(shù)字萬用表(可選)
? 示波器(可選)
? 外圍擴(kuò)展設(shè)備(可選)
賬號(hào)和軟件
? 一個(gè)Ubidots云服務(wù)賬號(hào)
? Mbed.org官網(wǎng)賬號(hào)
? Android Studio開發(fā)軟件
項(xiàng)目技術(shù)概述
這是一個(gè)針對(duì)于有編程和焊接經(jīng)驗(yàn)工程師和DIY愛好者的高級(jí)開發(fā)項(xiàng)目,設(shè)計(jì)這個(gè)項(xiàng)目我們采用了如下技術(shù):
Maxim(美信)MAX32630FTHR Pegasus開發(fā)平臺(tái)
驅(qū)動(dòng)這個(gè)項(xiàng)目的是Maxim公司全新推出的MAX32630FTHR Pegasus開發(fā)平臺(tái)(圖1)。集成了MAX32630 Arm Cortex M4F微控制器以及MAX14690 PMIC電池充電管理器件,這個(gè)平臺(tái)會(huì)協(xié)助工程師進(jìn)行快速的原型設(shè)計(jì)。該功能豐富的板卡包含多個(gè)集成外設(shè),比如加速度計(jì)/陀螺儀、雙模式藍(lán)牙以及SPI、I2C、UART、66個(gè)GPIO接口等。MAX32630FTHR小巧的外觀尺寸與幾款現(xiàn)成的擴(kuò)展板以及標(biāo)準(zhǔn)面包板相兼容,這帶來了無限的可能性。如果你對(duì)某些內(nèi)容好奇,我們提供了擴(kuò)展外設(shè)的介紹鏈接。
圖1:Maxim推出的MAX32630FTHR# Pegasus開發(fā)平臺(tái)集成了Arm Cortex M4F微控制器和PMIC電源管理器件
Maxim推出的MAXREFDES117#心率模塊參考設(shè)計(jì)
Maxim流行的MAXREFDES117#心率模塊參考設(shè)計(jì)(圖2)非常的小巧,它集成了Maxim MAX30102心率/脈搏、血氧傳感器、MAX1921降壓型DC/DC轉(zhuǎn)換器以及MAX14595邏輯電平轉(zhuǎn)換器。這種多功能設(shè)計(jì)可以用于Arduino和Mbed平臺(tái)實(shí)現(xiàn)快速集成。示例提供的固件就適合這兩種平臺(tái),給用戶提供了非?;镜乃惴?,可以確定心率、血氧飽和度等參數(shù),幫助他們快速實(shí)現(xiàn)原型設(shè)計(jì)。
圖2:Maxim流行的MAXREFDES117#心率模塊參考設(shè)計(jì)非常的小巧,集成了心率、脈搏、血氧傳感器、降壓式DC/DC轉(zhuǎn)換器和邏輯電平轉(zhuǎn)換器
Mbed操作系統(tǒng)(OS)實(shí)現(xiàn)云編程
MbedOS提供了一個(gè)方便的基于云編程的工具,幫助簡化和加速創(chuàng)建物聯(lián)網(wǎng)(IoT)平臺(tái)。Mbed提供的工具幫助實(shí)現(xiàn)代碼協(xié)作、提交并且軟件發(fā)布,同時(shí)幫助維護(hù)詳細(xì)的修訂歷史記錄。使用Mbed非常的簡單,創(chuàng)建賬號(hào)、尋找和選擇期望使用的硬件。如果你已經(jīng)擁有了賬號(hào),你可以去Mbed Repositpry(代碼倉)將提供的代碼導(dǎo)入你的編譯器從而開始你的工程。
Ubidots實(shí)現(xiàn)云服務(wù)
Ubitots為所有希望想開展IoT或云項(xiàng)目的開發(fā)者提供了很好的起點(diǎn)。除了有多種開發(fā)平臺(tái)的指導(dǎo)手冊(cè),Ubidots為在服務(wù)和安卓App之間搭建接口也提供了教程,信用系統(tǒng)能夠讓你以簡單且經(jīng)濟(jì)的方式開發(fā)和維護(hù)你的項(xiàng)目,并且提供了多種方法可以獲得更多的信用值。
Android Studio實(shí)現(xiàn)云服務(wù)接口
你需要相應(yīng)的接口來實(shí)現(xiàn)將數(shù)據(jù)從Maxim板卡和傳感器傳輸?shù)皆贫?,這可以通過一個(gè)移動(dòng)設(shè)備(比如平板電腦、智能手機(jī))來實(shí)現(xiàn)。對(duì)于這個(gè)項(xiàng)目我們使用的是安卓框架,并且借助Android Studio來創(chuàng)建App實(shí)現(xiàn)傳感器數(shù)據(jù)的可視化。
開發(fā)心率監(jiān)測(cè)器
如果你已經(jīng)擁有Mbed賬號(hào),使用貿(mào)澤提供的 HRM Mbed代碼倉并將其中的代碼導(dǎo)入到你的編譯器。
對(duì)于新手用戶:
1. 訪問Mbed.org網(wǎng)站
2. 點(diǎn)擊Mbed OS鏈接會(huì)轉(zhuǎn)到開發(fā)者頁面
3. 點(diǎn)擊“Log in/Sign up”,輸入相關(guān)信息進(jìn)行登錄/注冊(cè)
一旦注冊(cè)你可以選擇高亮的“Compiler”鏈接來開始一個(gè)新的項(xiàng)目或者訪問Mouser HRM Mbed repository鏈接將其中的代碼導(dǎo)入你的編譯器。通過點(diǎn)擊編譯器右上角的按鈕你可以進(jìn)行選擇、查看、添加或者改變相應(yīng)的目標(biāo)平臺(tái)。在Mbed你會(huì)發(fā)現(xiàn)其他幾種Maxim產(chǎn)品和軟件示例也是有支持的。
連接開發(fā)板卡和參考設(shè)計(jì)
將MAX32630FTHR和MAXREFDES117連接起來只需要很少的連接線,使用面包板會(huì)更加的簡單,為此請(qǐng)遵循如下步驟:
1. 將心率傳感器的SCL和SDA管腳連接到MAX32630FTHR的P3_5和P3_4管腳,將INT管腳連接到P3_0(圖3)
2. 心率傳感器的VIN輸入范圍在2.5到5.5V之間,我建議從3.3V或電池的SYS管腳引入電源,在嘗試使用5V時(shí)我已經(jīng)遇到了多個(gè)問題。
3. 連接地線
圖3:Maxim MAX32630FTHR#手冊(cè)中提供的管腳說明
對(duì)開發(fā)板卡進(jìn)行編程
對(duì)開發(fā)板卡進(jìn)行編程就像將文件從一個(gè)文件夾拖放到另一個(gè)文件夾那樣簡單,當(dāng)你將代碼上傳到板卡時(shí),MAX32630FTHR模塊還提供了調(diào)試接口。
我們按如下步驟開始:
1. 用10-Pin的連接器將接口板卡與MAX32630FTHR相連接,尤其要注意Pin1管腳。
2. 將標(biāo)記有HDK的USB接口連接到PC的USB端口上,此時(shí)會(huì)自動(dòng)安裝驅(qū)動(dòng),根據(jù)你使用的DAPLINK模塊的不同,它可能有多個(gè)接口或者只有一個(gè)接口(見圖4或圖5),當(dāng)驅(qū)動(dòng)程序完成安裝后,在電腦文件資源管理器中會(huì)顯示標(biāo)記為DAPLINK的新驅(qū)動(dòng)器。
3. 采用micro USB或者JST電源連接器為MAX32630FTHR模塊提供電源。
圖4:多個(gè)輸入接口的DAPLINK模塊
圖5:只有單個(gè)輸入口的DAPLINK模塊
一旦你建立了與開發(fā)板卡的連接和接口,你就需要編譯代碼生成.bin文件,然后將其下載到MAX32630FTHR中,Mbed編譯器操作如下:
1. 點(diǎn)擊“編譯”或者使用下拉菜單選擇你的操作。一段時(shí)間后就會(huì)在Downloads文件下就會(huì)生成.bin文件。
2. 打開Downloads文件夾找到.bin文件
3. 打開一個(gè)新的資源管理器窗口,在這個(gè)窗口內(nèi)你會(huì)看到一個(gè)新的DAPLINK驅(qū)動(dòng)器的盤符,這就是開板卡的接口
4. 將新創(chuàng)建.bin文件拖動(dòng)或者復(fù)制到DAPLINK驅(qū)動(dòng)器上,這是就會(huì)開始向開發(fā)板下載程序
當(dāng)我們?cè)谙螺d程序過程中,DAPLINK板卡上的LED燈應(yīng)該會(huì)快速的閃爍,完成后LED燈會(huì)熄滅或者保持緩慢且穩(wěn)定的閃爍
5. 按下MAX32630FTHR上的復(fù)位按鈕重新啟動(dòng)執(zhí)行新下載的程序
板卡復(fù)位時(shí),板卡上紅色的LED燈會(huì)亮起并且保持穩(wěn)定。
云服務(wù)
登錄后你會(huì)發(fā)現(xiàn)打開的是控制面板(Dashboard)頁面,有很多選項(xiàng)供你選擇,比如查看所有的設(shè)備、查看可用的事件、查看個(gè)人文件、查看賬戶有多少信用值。需要注意的是對(duì)于任何項(xiàng)目來說有些內(nèi)容是必需的,比如API token、設(shè)備和變量ID。
查看API Tokens
想要查看API tokens,需要在頁面的右上方點(diǎn)擊“Profile”按鈕,然后選擇“API CredenTIals”,此時(shí)會(huì)在左側(cè)下拉菜單顯示所有的API token信息,對(duì)于每個(gè)用戶API token都是唯一的,這是在創(chuàng)建賬戶時(shí)生成的,這是為了防止你設(shè)備的數(shù)據(jù)發(fā)送給錯(cuò)誤的賬戶。
添加設(shè)備
當(dāng)添加變量時(shí)會(huì)為每個(gè)新的設(shè)備創(chuàng)建變量ID,首先我們從添加設(shè)備開始:
1. 確認(rèn)你在“設(shè)備頁面”(圖6)
2. 點(diǎn)擊頁面右上角的黃色的圓圈(內(nèi)有加號(hào))
3. 給設(shè)備重命名,從“My Data Source”改為任何你想要的名字
4. 點(diǎn)擊頁面的任意位置完成設(shè)備的添加,此時(shí)會(huì)彈出一個(gè)對(duì)話框提示創(chuàng)建成功
圖6:從“設(shè)備”頁面開始
這個(gè)“設(shè)備”代表你的一個(gè)項(xiàng)目,一個(gè)賬號(hào)下支持多個(gè)項(xiàng)目。“變量ID”用來幫助每個(gè)設(shè)備來識(shí)別特定的傳感器、數(shù)據(jù)輸入源以及所處的位置。這有利于我們維護(hù)多個(gè)項(xiàng)目和以及獨(dú)立的或者共享的傳感器設(shè)備。
創(chuàng)建變量ID
創(chuàng)建變量ID與創(chuàng)建設(shè)備非常的類似:
1. 點(diǎn)擊“新建設(shè)備”按鈕,這時(shí)會(huì)打開此設(shè)備的詳細(xì)頁面,允許我們創(chuàng)建個(gè)人的變量
2. 點(diǎn)擊頁面右上方的黃色圓圈(內(nèi)有加號(hào)標(biāo)記)創(chuàng)建新的變量
3. 對(duì)變量進(jìn)行重命名
4. 點(diǎn)擊頁面的任何位置,會(huì)彈出一個(gè)對(duì)話框表明你成功創(chuàng)建了ID
點(diǎn)擊這個(gè)新的按鈕會(huì)彈出“創(chuàng)建變量”頁面(圖7),在左側(cè)會(huì)顯示多條信息,你可以編輯左側(cè)中大部分信息,其中包括API標(biāo)簽、允許的范圍、測(cè)量單位和相似度(重要的一項(xiàng)就是ID,它用來標(biāo)識(shí)你的程序應(yīng)該放在的位置)。
圖7:Ubidots “變量”顯示
我強(qiáng)烈建議大家查看教程文檔,當(dāng)鼠標(biāo)放在“Profile”按鈕上時(shí)會(huì)有下拉菜單,其中就包括指導(dǎo)手冊(cè)。文檔中提供了非常多的信息和主題,涉及MQTT、HTTP API接口等物聯(lián)網(wǎng)應(yīng)用技術(shù)。
Android Studio軟件
我們需要向的接口才能將數(shù)據(jù)從Maxim板卡和傳感器傳輸?shù)皆品?wù),這可以借助移動(dòng)設(shè)備(比如平板電腦、智能手機(jī))來完成。對(duì)于這個(gè)項(xiàng)目我們采用的是安卓框架,使用Android Studio創(chuàng)建App應(yīng)用,并將心率傳感器采集的數(shù)據(jù)進(jìn)行可視化處理。
為了節(jié)省時(shí)間,我使用“BluetoothLeGatt”這個(gè)示例進(jìn)行演示,這個(gè)應(yīng)用我們可以瀏覽可用的藍(lán)牙設(shè)備,連接這些設(shè)備并且查看有哪些有用的資源。這對(duì)于創(chuàng)建自己的藍(lán)牙應(yīng)用有非常好的借鑒作用(如果你選擇設(shè)計(jì)相關(guān)應(yīng)用的話)。Ubidots同樣提供了相關(guān)文檔來說明如何使用App連接和發(fā)送數(shù)據(jù)到云服務(wù),我建議大家查看API token和變量token相關(guān)的說明。
導(dǎo)入代碼
1. 從Mouser的Gihub上下載BLEHR.7z文件,這對(duì)于導(dǎo)入Android Studio是必需的。由于文件大小的限制,這個(gè)項(xiàng)目的源代碼被分為兩部分,你需要將它們分別進(jìn)行解壓。
2. 通過在啟動(dòng)界面點(diǎn)擊“打開已存在的Android Studio項(xiàng)目”或者點(diǎn)擊“文件”菜單就可以將代碼導(dǎo)入Android Studio,下面你可以看到我如何改變和實(shí)現(xiàn)Ubidots API接口的(圖8)
(注:在編譯程序前修改token密鑰,前面已經(jīng)提到過了,如果編譯前沒有進(jìn)行修改,你的數(shù)據(jù)將不會(huì)顯示在Ubidots上)
圖8:安卓Studio Ubidots API token代碼
編譯App
為了測(cè)試和調(diào)試代碼,你可以進(jìn)行如下操作:
?
編譯應(yīng)用程序并下載到開發(fā)板卡中,如果你不想在更新API和變量token后修改代碼可以此方法
?
使用“開發(fā)者模式”,這種方式支持USB調(diào)試,你可以將你的手機(jī)或者平板電腦作為虛擬測(cè)試平臺(tái),將其與你的開發(fā)PC進(jìn)行連接,借助網(wǎng)絡(luò)搜索或者Android Studio的教程你可以找到如何進(jìn)入“開發(fā)者模式”的說明。
如果你決定使用一個(gè)設(shè)備作為開發(fā)工具,那么只需要點(diǎn)擊菜單欄的“Run”按鈕,然后選擇你的設(shè)備開發(fā)編譯和運(yùn)行App。一旦加載完成應(yīng)用程序就會(huì)在你選擇的設(shè)備上運(yùn)行起來。(注:你不可以在虛擬設(shè)備上運(yùn)行這個(gè)應(yīng)用,因?yàn)樘摂M設(shè)備不支持藍(lán)牙)
如果你打算進(jìn)行安裝調(diào)試,你需要先編譯程序,選擇“Build”然后是“Build APK(s)”,這會(huì)創(chuàng)建一個(gè)新的文件,你可將其拷貝到你選擇設(shè)備上進(jìn)行安裝。
雖然如果你不打算對(duì)軟件進(jìn)行更改,那么安裝應(yīng)用程序是一個(gè)很好的選擇,但是我建議選擇一個(gè)設(shè)備作為測(cè)試平臺(tái)。在“USB調(diào)試模式”下你可以進(jìn)行更新、重編譯、重復(fù)執(zhí)行代碼,這對(duì)于編程和調(diào)試非常有用。
進(jìn)行系統(tǒng)組裝
當(dāng)你完成程序的加載并且啟動(dòng)后,在界面的右上方你會(huì)看到“Scan”按鈕,點(diǎn)擊它可以掃描查看附近范圍內(nèi)所有藍(lán)牙設(shè)備,如果你對(duì)MAX32630FTHR和MAXREFDES117進(jìn)行了正確的連接和編程,當(dāng)設(shè)備啟動(dòng)后在設(shè)備列表中你會(huì)看到一個(gè)標(biāo)有HRM的設(shè)備。
準(zhǔn)備好查看結(jié)果了嗎?
1. 確保啟動(dòng)了位置訪問權(quán)限,如果你不確定此選項(xiàng)的位置,請(qǐng)參閱設(shè)備的在線幫助或者文檔
2. 選擇HRM打開一個(gè)新的窗口,你會(huì)看到一些數(shù)據(jù):設(shè)備地址、當(dāng)前狀態(tài)、數(shù)據(jù)輸出
3. 點(diǎn)擊右上方的“連接”按鈕允許連接到這個(gè)設(shè)備,在下拉菜單中你可以查看對(duì)應(yīng)的服務(wù)列表
4. 最后選擇“心率測(cè)量”,你會(huì)看到界面上開始顯示數(shù)據(jù)(圖9)
圖9:當(dāng)你選擇“心率測(cè)量”選項(xiàng)時(shí),你就會(huì)看到屏幕上顯示數(shù)據(jù)
如果你更新了代碼,包括正確的API和變量token,那么你現(xiàn)在應(yīng)該能夠登錄你的Ubidots賬戶查看該設(shè)備上傳的數(shù)據(jù),點(diǎn)擊“設(shè)備”選項(xiàng)。
現(xiàn)在你可以創(chuàng)建一個(gè)控制面板,根據(jù)你的要求可以按照不同的格式來查看數(shù)據(jù)信息(圖10)。Ubidots最近推出了一個(gè)beta版本的Android App,你可以選擇在智能手機(jī)或者平板電腦上進(jìn)行安裝來查看你的設(shè)備和數(shù)據(jù)(圖11)。
圖10:Ubidots安卓應(yīng)用控制面板
圖11:Ubidots網(wǎng)頁控制面板總結(jié)
可穿戴設(shè)備是非常有用的工具,它可以為我們的日常生活添加很多的便利。這些設(shè)備能夠提供給用戶各種反饋數(shù)據(jù),比如睡眠質(zhì)量、最大攝氧量(VO2)、運(yùn)動(dòng)水平、步行和跑步節(jié)奏等數(shù)據(jù)。此外,它們還可以幫助你監(jiān)測(cè)你的健康情況,并且可以將你的信息(比如每日血壓、血糖水平)發(fā)動(dòng)給醫(yī)療機(jī)構(gòu)進(jìn)行溝通。
設(shè)計(jì)可穿戴設(shè)備需要添加外圍設(shè)備來進(jìn)行感應(yīng)、顯示、存儲(chǔ)和檢索數(shù)據(jù),Pegasus Rapid開發(fā)平臺(tái)集成了關(guān)鍵的外設(shè)設(shè)備,大大簡化了系統(tǒng)開發(fā),700-MAXREFDES117#心率監(jiān)測(cè)器參考設(shè)計(jì)也可以提供直接的借鑒作用。Mbed OS、Ubidots和Android Studio軟件分別針對(duì)基于云編程、云服務(wù)和云接口等技術(shù)進(jìn)行了完善。