基于移動(dòng)設(shè)備的智能手表設(shè)計(jì)與實(shí)現(xiàn)
點(diǎn)擊:1004
A+ A-
所屬頻道:新聞中心
摘要:智能手表是一種新型的可穿戴式設(shè)備,其中蘊(yùn)含了大量的新穎的設(shè)計(jì)理念,包括傳感器的實(shí)時(shí)監(jiān)測(cè)生命體征,無線通信將實(shí)時(shí)的監(jiān)控?cái)?shù)據(jù)向其他設(shè)備發(fā)送。它的出現(xiàn)體現(xiàn)了可穿戴式設(shè)備的快速發(fā)展,同時(shí)也體現(xiàn)出可穿戴式設(shè)備的應(yīng)用將一步一步走向人們的生活。而其智能手機(jī)客戶端,在保證智能手表的基礎(chǔ)功能的前提下,同時(shí)優(yōu)化了智能手表的用戶體驗(yàn),并收集來自智能手表的數(shù)據(jù),向服務(wù)器傳輸,達(dá)到云端監(jiān)控的目的。設(shè)計(jì)將主要闡述構(gòu)建基礎(chǔ)可穿戴設(shè)備的幾項(xiàng)關(guān)鍵技術(shù),如可穿戴技術(shù)、無線通訊技術(shù)(BLE 傳輸、Socket 傳輸)、相關(guān)傳感器技術(shù)、單片機(jī)系統(tǒng)、以及iOS的應(yīng)用開發(fā),其中還會(huì)對(duì)新型的TI CC2540 BLE 技術(shù)以及iOS BLE 技術(shù)進(jìn)行詳細(xì)的介紹與分析。
0 引言
智能手機(jī)的發(fā)展增速很快,但是可穿戴式設(shè)備的發(fā)展還是相對(duì)空白,不僅市面上可以看到的產(chǎn)品有限,而且目前的產(chǎn)品涉及面也相對(duì)較窄,技術(shù)還不算成熟,所以可穿戴式設(shè)備還算是一個(gè)相對(duì)新穎的領(lǐng)域。但作為繼智能手機(jī)之后的下一個(gè)智能終端熱點(diǎn),它的潛力不可估量。所以有研究能力的科技公司早早地就已經(jīng)進(jìn)行對(duì)該領(lǐng)域的開發(fā),如三星的SamsungGear,Google 的Google glass。目前可穿戴式設(shè)備的研究領(lǐng)域主要涉及到傳感器技術(shù)以及無線通訊技術(shù)。
本項(xiàng)目主要通過整合單片機(jī)系統(tǒng)、BLE 技術(shù)及相關(guān)傳感器技術(shù),設(shè)計(jì)出可穿戴設(shè)備,再通過開發(fā)iOS 應(yīng)用作為客戶端,最終設(shè)計(jì)出相對(duì)完整的可穿戴式設(shè)備及其客戶端的開發(fā)。其中客戶端通過接入互聯(lián)網(wǎng)可以與云端服務(wù)器進(jìn)行交互,從而獲取云端服務(wù)器的支持。
1 系統(tǒng)結(jié)構(gòu)
本項(xiàng)目整體是按照數(shù)據(jù)采集—數(shù)據(jù)分析-數(shù)據(jù)處理-控制輸出-回饋的框架來實(shí)現(xiàn),利用DHT11 溫濕度傳感器收集環(huán)境數(shù)據(jù),再通過Atmel 單片機(jī)芯片[3]進(jìn)行數(shù)據(jù)分析,隨后通過藍(lán)牙芯片將數(shù)據(jù)發(fā)送給手機(jī)客戶端。手機(jī)客戶端以處理數(shù)據(jù)為主,并可以通過藍(lán)牙向智能手表發(fā)送信息,從而達(dá)到控制智能手表的目的。
智能手表及其手機(jī)客戶端的系統(tǒng)框架圖如圖1 所示:
圖1 系統(tǒng)框圖
2 系統(tǒng)硬件設(shè)計(jì)
2.1 Bluno 開發(fā)板介紹
圖2 Bluno 主控板實(shí)物圖
Bluno 主控板是基于ATmega528 芯片,有14 個(gè)數(shù)字I/O 口,其中6 個(gè)I/O 口可以以PWM 口來用,6個(gè)模擬輸入口,16 MHz 的晶振頻率,一個(gè)USB。一個(gè)TI CC2540 芯片,支持低功耗藍(lán)牙通信。同時(shí)主控板支持I2C 和SPI 總線,提供UART TLL 串口通信。
2.2 Arduino 拓展板介紹
圖3 Bluno 拓展板實(shí)物圖
Bluno 拓展主要為主控板提供額外的拓展功能,它內(nèi)部含有一個(gè)128*64 的OLED 顯示屏,一個(gè)有源蜂鳴器,一個(gè)DHT11 溫濕度傳感器,一個(gè)1.5 A 繼電器模塊,一個(gè)螺旋電位器,一個(gè)RGB LED 燈,一個(gè)Mini 搖桿按鍵。
2.3 手機(jī)硬件
本項(xiàng)目開發(fā)的手機(jī)客戶端是iOS 應(yīng)用,所以,最終完成的應(yīng)用可以兼容iOS 6 及以上iOS 系統(tǒng),iPhone 4s及以上iPhone 設(shè)備。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括兩大部分,智能手表部分和手機(jī)客戶端部分。其中智能手表部分的軟件主要有BLE 通訊部分,傳感器數(shù)據(jù)采集部分,時(shí)間功能,以及單片機(jī)系統(tǒng)組成。而手機(jī)客戶端部分主要由BLE通訊部分,Socket 通訊部分,設(shè)備控制部分組成。系統(tǒng)流程圖如圖4 所示:
圖4 系統(tǒng)主程序流程圖
3.1 BLE 通訊協(xié)議
BLE 通訊采用UTF8 編碼,幀格式如下所示:
< Command > content1;
< Command > content1, content2,…;
< Command + ExtraString>stringLength;
3.2 藍(lán)牙通訊協(xié)議
智能手表藍(lán)牙通訊主要由兩個(gè)部分組成,分別是BLE 雙向透?jìng)髂K和串口封裝模塊。
BLE 雙向透?jìng)髂K是基于BLE 協(xié)議棧以及OSAL(TI CC2540 內(nèi)部的實(shí)時(shí)系統(tǒng))的開發(fā)。而串口雙向透?jìng)鞯哪康脑谟诤雎詤f(xié)議棧以及OSAL 的成分,將其視為一個(gè)簡(jiǎn)單的輸入輸出系統(tǒng)。所以在進(jìn)行串口透?jìng)髦埃O(shè)定固定的BLE service 以及固定BLE characteristic。整個(gè)系統(tǒng)的流程最開始需要進(jìn)入初始化流程,分別是硬件初始化、OSAL 初始化、BLE 協(xié)議棧初始化、串口初始化、應(yīng)用層初始化。當(dāng)整個(gè)系統(tǒng)初始化完成以后進(jìn)入事件輪詢流程。
串口接收數(shù)據(jù)部分:BLE 協(xié)議棧檢測(cè)到characteristic的變化后,會(huì)調(diào)用用戶填入的回調(diào)函數(shù),而在整個(gè)回調(diào)函數(shù)中可以處理characteristic 的數(shù)據(jù),隨后將有效數(shù)據(jù)填入串口回調(diào)函數(shù)最終將數(shù)據(jù)輸出至串口。
串口發(fā)送數(shù)據(jù)部分:串口收到數(shù)據(jù)后將調(diào)用串口回調(diào)函數(shù),在回調(diào)函數(shù)中調(diào)用BLE 協(xié)議棧提供的寫入characteristic 函數(shù),隨后將數(shù)據(jù)處理并寫入characteristic中(對(duì)于監(jiān)聽該characteristic 的設(shè)備而言,將能夠發(fā)現(xiàn)該值的變化,從而讀取數(shù)據(jù))。
由于雙向透?jìng)髂K并沒有隱藏串口,所以如果想要進(jìn)行數(shù)據(jù)I/O,還需要經(jīng)過串口的操作,勢(shì)必會(huì)帶來不必要的麻煩。所以設(shè)計(jì)串口封裝模塊,忽略串口的存在,并遵循通信協(xié)議下的數(shù)據(jù)收發(fā)格式。
3.3 智能手表傳感器數(shù)據(jù)采集
本項(xiàng)目主要使用的傳感器是DHT11 溫濕度傳感器。DHT11 是一個(gè)相對(duì)較友好的硬件模塊。它對(duì)數(shù)據(jù)的封裝以及數(shù)據(jù)的IO 已經(jīng)做了很好的處理。對(duì)于軟件上的設(shè)計(jì),所做的工作不多。首先需要進(jìn)行DHT11的初始化,主要目的是通知DHT11 做好準(zhǔn)備。
而在讀取數(shù)據(jù)時(shí),由于讀取數(shù)據(jù)的方式是同步的,所以在智能手表系統(tǒng)需要等待DHT11 設(shè)備處理并準(zhǔn)備好數(shù)據(jù)后,才能讀取。其中準(zhǔn)備過程以及讀取過程都需要進(jìn)行硬延時(shí)。這在一定程度上會(huì)對(duì)系統(tǒng)的定時(shí)功能造成影響(尤其本設(shè)計(jì)是一塊手表,所以對(duì)時(shí)間有著嚴(yán)格的要求),所以系統(tǒng)獲取DHT11 數(shù)據(jù)是有一個(gè)較長(zhǎng)的軟延時(shí)間隔。
3.4 智能手表時(shí)間功能
時(shí)間功能主要由時(shí)間類以及日期類組成,其中時(shí)間類負(fù)責(zé)時(shí)分秒的計(jì)算,而日期類主要負(fù)責(zé)日期的計(jì)算。
3.5 智能手表單片機(jī)系統(tǒng)
整個(gè)單片機(jī)系統(tǒng)由顯示模塊、系統(tǒng)初始化模塊、系統(tǒng)定時(shí)器模塊、系統(tǒng)時(shí)間輪詢模塊串口輪詢以及BLE 通訊輪詢組成。其中顯示模塊負(fù)責(zé)封裝硬件信息,并設(shè)計(jì)適合進(jìn)行軟件操作的接口。
系統(tǒng)初始化主要包含以下幾個(gè)任務(wù):OLED 初始化、串口初始化、系統(tǒng)時(shí)鐘設(shè)置、繼電器及蜂鳴器初始化、BLE 通訊模塊初始化、系統(tǒng)狀態(tài)位初始化。
系統(tǒng)定時(shí)器進(jìn)程的設(shè)置是因?yàn)樵趩纹瑱C(jī)中能夠設(shè)置的定時(shí)器是十分有限的。所以只能利用有限的定時(shí)器去“生成”更多的定時(shí)器。在本設(shè)計(jì)中,如果需要新增定時(shí)器,首先需要添加自定義定時(shí)器。隨后系統(tǒng)定時(shí)器進(jìn)程將會(huì)根據(jù)自定義定時(shí)器進(jìn)行生成定時(shí)。
系統(tǒng)事件的輪詢主要的實(shí)現(xiàn)是基于系統(tǒng)定時(shí)器的實(shí)現(xiàn)。每隔50 ms 對(duì)系統(tǒng)事件進(jìn)行檢測(cè),所涉及到的系統(tǒng)事件主要為按鍵事件。
串口收發(fā)輪詢用于收發(fā)來自串口的數(shù)據(jù),其目的主要用于調(diào)試。BLE 通訊輪詢進(jìn)程主要用于收發(fā)來自BLE 通訊模塊的數(shù)據(jù)。其流程如圖5 所示:
圖5 BLE 通訊流程
3.6 手機(jī)客戶端藍(lán)牙通訊
BLE 通訊的設(shè)計(jì)主要使用了Cocoa touch 自帶的Core Bluetooth 框架,并再此之上進(jìn)行二次開發(fā),并對(duì)BLE 的特性進(jìn)行一定程度的隱藏。在本設(shè)計(jì)中,iOS 客戶端的BLE 角色是Central 的,需要進(jìn)行廣播的搜索,以及鏈接的建立,找到感興趣的peripheral后,訂閱其中的characteristic,最終實(shí)現(xiàn)數(shù)據(jù)的交互。
3.7 手機(jī)客戶端Socket 通訊
Socket 類的設(shè)計(jì)使用了Cocoa touch 中的CF-Socket,并將Socket 的特性進(jìn)行了一定程度的隱藏,以方便與云端服務(wù)器進(jìn)行通訊。
3.8 手機(jī)客戶端硬件控制
設(shè)備控制模塊主要負(fù)責(zé)配置智能手表的信息,當(dāng)配置完成以后,將數(shù)據(jù)發(fā)送給智能手表。
4 結(jié)束語
本系統(tǒng)設(shè)計(jì)出的智能手表及其客戶端具有以下特點(diǎn):
?。?)Bluno 主控板及其拓展板是基于Arduino 平臺(tái),方便進(jìn)行硬件設(shè)計(jì)以及軟件開發(fā)。
?。?)本項(xiàng)目使用的BLE 通訊不僅功耗低,而且能夠保證相對(duì)可靠地通訊,它可以在開闊的空間內(nèi)達(dá)到120 m 的通訊距離。
?。?)使用的iOS 平臺(tái)具有較好的兼容性,可以兼容iPhone 4s 及以上的設(shè)備。
(4)手機(jī)客戶端可以與云端服務(wù)器進(jìn)行通訊,可以將智能手表手機(jī)的數(shù)據(jù)實(shí)時(shí)上傳到云端服務(wù)器,同時(shí)云端服務(wù)器也可以通過手機(jī)客戶端控制智能手表。
(審核編輯: 智匯張瑜)
分享