<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表

    發(fā)布時(shí)間:2015-12-21 來(lái)源:EDN電子技術(shù)設(shè)計(jì) 責(zé)任編輯:wenwei

    【導(dǎo)讀】說(shuō)到可穿戴設(shè)備,我們一般首先想到的就是智能手表。買(mǎi)一個(gè)時(shí)尚的智能手表當(dāng)然不錯(cuò),但作為一個(gè)創(chuàng)客,你也可以選擇和我一樣自己做一個(gè)!我給這個(gè)DIY的智能手表起名為Retro Watch,整個(gè)項(xiàng)目基于Android和Arduino開(kāi)發(fā)板,項(xiàng)目的所有軟硬件設(shè)計(jì)都是開(kāi)源的。你可以在Github下載源碼或貢獻(xiàn)自己的力量
     
    第一步:系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    如上圖所示,Retro Watch的結(jié)構(gòu)比較簡(jiǎn)單:硬件平臺(tái)基于Arduino,上面只有一個(gè)控制按鈕。另外,我還開(kāi)發(fā)了基于安卓系統(tǒng)的應(yīng)用,讓手表可以通過(guò)藍(lán)牙和安卓設(shè)備進(jìn)行連接,這樣我們就可以通過(guò)Retro Watch查看安卓設(shè)備上的RSS推送和系統(tǒng)通知了。
     
    第二步:組件準(zhǔn)備
     
    因?yàn)槲覀円龅氖且粋€(gè)智能手表,確保各個(gè)組件的小巧也是關(guān)鍵之一。
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    Arduino微控制器
     
    我選擇的是最小巧的Arduino,Pro Mini,這是一個(gè)Uno R3的輕量級(jí)版本。上面甚至沒(méi)有USB接口芯片,所以還需要額外準(zhǔn)備一個(gè)USB轉(zhuǎn)UART模塊。這款A(yù)rduino有兩個(gè)工作電壓不同的版本(3.3v/5v),我選擇的是3.3V的版本,因?yàn)樗{(lán)牙模塊和顯示屏都支持3.3V,3.7V的LiPo電池也能正常使用。
     
    3.3V版本的Arduino的工作頻率為8MHz,5V版本的工作頻率為16MHz,但8MHz足夠使用了。
     
    一般Arduino Pro Mini的核心處理器件是ATmega328單片機(jī),其RAM為2KB;而只配置有1KB RAM的ATmega128的Arduino版本是不夠用的。
     
    藍(lán)牙
     
    HC~06藍(lán)牙模塊比較常見(jiàn)。其中有一款帶有一個(gè)接口板,上面包含一個(gè)重置按鈕和一個(gè)LED,但體積也相對(duì)較大。鑒于接口板對(duì)本項(xiàng)目沒(méi)多大意義,還額外增加了成本,所以這里選擇的不帶接口板的HC~06。
     
    顯示屏
     
    我們需要一塊足夠小、功耗足夠低的顯示屏。我最后選擇了Adafruit的0.96英寸的128×64 OLED顯示屏,支持I2C,SPI,可以很方便地和Arduino進(jìn)行連接。我這里選用的是I2C和SSD1306驅(qū)動(dòng)芯片。
     
    電池
     
    我的選擇是3.7V LiPo電池,容量為140mAh。一般使用可堅(jiān)持7小時(shí)。同樣,選擇電池的尺寸很重要。
     
    其它
     
    除了線(xiàn)材等組件之外,還需要用到一顆10 kΩ電阻(用于按鈕連接)。
     
    第三步:組裝
     
    整個(gè)系統(tǒng)的硬件結(jié)構(gòu)連接圖如下所示:
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    藍(lán)牙連接Arduino:
     
    ·VCC ~ 3.3V
     
    ·GND ~ GND
     
    ·TX ~ D2
     
    ·RX ~ D3
     
    OLED連接Arduino:
     
    ·GND ~ GND
     
    ·VCC ~ VCC
     
    ·SDA ~ A4(模擬引腳4)
     
    ·SCL ~ A5(模擬引腳5)
     
    如果使用的是SPI接口,則可以參考Adafruit教程按如下方式連接:
     
    ·D1 : MOSI ~ Arduino D11 (MOSI)
     
    ·D2 : MISO ~ Arduino D12 (MISO)(可選)
     
    ·D0 : CLK ~ Arduino D13 (SCK)
     
    ·DC : DC(數(shù)據(jù)命令)~ Arduino D8(或其它)
     
    ·CS : CS(芯片選擇) ~ Arduino D10 (SS)
     
    ·RES : RESET ~ Arduino D9 (或其它)
     
    按鈕:
     
    連接方式如圖,注意這里要用到一個(gè)10 kΩ電阻。
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    電池連接Arduino:
     
    ·正極 ~ RAW
     
    ·負(fù)極 ~GND
     
    USB轉(zhuǎn)UART模塊連接Arduino:
     
    ·3.3V ~ VCC
     
    ·TXD ~ RXD
     
    ·RXD ~ TXD
     
    ·GND ~ GND
     
    安裝尺寸如下:
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    [page]
    第四步:編譯Arduino代碼并上傳
     
    已經(jīng)做好的Arduino項(xiàng)目可以在GitHub上下載。下載好了之后別急著編譯,還需要先配置一下開(kāi)發(fā)環(huán)境。
     
    安裝圖形驅(qū)動(dòng):
     
    首先需要安裝圖形處理庫(kù) Adafruit_SSD1306和Adafruit-GFX-Library,這樣才能在OLED上顯示圖像。(在某些開(kāi)發(fā)環(huán)境下,Adafruit庫(kù)會(huì)與Robot_xxx庫(kù)產(chǎn)生沖突;如果發(fā)生了這種情況,備份Robot_xxx庫(kù)后將其從庫(kù)文件夾中刪除。)
     
    警告:如果你使用的是帶SH1106驅(qū)動(dòng)的OLED,那就在GitHub上下載Adafruit_SH1106驅(qū)動(dòng)。
     
    另外,本項(xiàng)目也支持u8glib了,你可以在其官方主頁(yè)下載支持Arduino的版本。
     
    復(fù)制位圖圖像頭文件:
     
    將RetroWatchArduino文件夾中的bitmap.h文件復(fù)制到路徑/Arduino安裝文件夾/Arduino/hardware/libraries/RetroWatch。如果沒(méi)有這樣的路徑,可以自己創(chuàng)建。
     
    修改源代碼:
     
    打開(kāi)Arduino IDE并載入RetroWtchArduino.ino。如果你使用的引腳和本教程不一樣,需要對(duì)引腳定義進(jìn)行修改:
     
    SoftwareSerial BTSerial(9, 8); //藍(lán)牙TX, RX連接引腳
     
    int buttonPin = 5; // 按鈕引腳
     
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // OLED I2C地址,使用你的地址替換Ox3D
     
    如果你使用的是u8glib,那么就載入RetroWatchArduino_u8glib.ino文件,然后注意以下代碼:
     
    U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); //根據(jù)你選用的顯示屏進(jìn)行修改
     
    SoftwareSerialBTSerial(2,3); // 藍(lán)牙TX, RX連接引腳
     
    int buttonPin = 5; // 按鈕引腳
     
    如果你使用的是Adafruit的圖形庫(kù),并有使用到OLED的Reset引腳,那就將OLED的Reset和Arduino的D8引腳相連,當(dāng)然也可以自定義:
     
    #define OLED_RESET 8
     
    Adafruit_SSD1306 display(OLED_RESET);
     
    編譯和上傳:
     
    以上步驟完成之后編譯上傳,成功之后顯示屏上面會(huì)顯示RetroWatch Arduino Logo和Adafruit Logo。Logo之后屏幕會(huì)顯示00:00,如下圖所示:
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    第五步:安卓軟件及其源代碼
     
    因?yàn)锳ndroid 4.3之后的版本才支持從應(yīng)用讀取通知信息,所以請(qǐng)確保你的安卓設(shè)備安裝的是Android 4.3或更新的系統(tǒng)版本。但如果你使用的是低于4.3的版本,可以使用另一個(gè)閹割版的應(yīng)用:能夠通過(guò)智能手表接收通知,但無(wú)法讀取內(nèi)容。應(yīng)用源代碼可以在GitHub上查看,也可以直接通過(guò)Google Play Store進(jìn)行安裝(RetroWatch或適合低版本系統(tǒng)的RetroWatch LE)。
     
    安卓軟件安裝之后檢查一下系統(tǒng)是否授予了其讀取通知的權(quán)限。
     
    接下來(lái)打開(kāi)手機(jī)藍(lán)牙,將安卓手機(jī)和Arduino的藍(lán)牙進(jìn)行配對(duì)。然后在RetroWatch軟件中選擇連接好的Arduino,界面上顯示“Connected”即表示連接成功。
     
    點(diǎn)擊菜單,選擇Data transfer to Watch(傳輸數(shù)據(jù)到手表),然后設(shè)備會(huì)用過(guò)藍(lán)牙將時(shí)間和信息傳輸?shù)街悄苁直怼?/div>
     
    因?yàn)槭直碛布男阅苡邢?,很多功能我們需要通過(guò)安卓應(yīng)用實(shí)現(xiàn),手表本身的主要功能是顯示。在安卓應(yīng)用中,你可以設(shè)置可推送消息(僅支持英文字符顯示)和狀態(tài)通知(手機(jī)電池電量和信號(hào)強(qiáng)度等)的類(lèi)型,也可以推送應(yīng)用中訂閱的RSS(可以訂閱天氣RSS,用來(lái)在手表上顯示天氣)。更新每30分鐘同步一次。
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    另外,應(yīng)用中還提供了65個(gè)不同的顯示圖標(biāo),你可以自己定義設(shè)置。
     
    第六步:手表功能介紹
     
    安裝就緒之后就該探索一下我們的智能手表了。智能手表的系統(tǒng)按照以下模式工作:
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    啟動(dòng)顯示: 顯示Logo,手表啟動(dòng)。
     
    時(shí)鐘顯示: 顯示與之相連的安卓手機(jī)上的時(shí)間。另外,時(shí)間的顯示還可以修改,目前提供了模擬顯示、數(shù)字顯示和混合顯示三種模式。如果你點(diǎn)擊一下按鈕,則手表進(jìn)入緊急信息顯示模式。如果10分鐘內(nèi)沒(méi)有什么數(shù)據(jù)更新和操作,則顯示界面會(huì)切換到待機(jī)界面。
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    緊急信息顯示: 當(dāng)用戶(hù)點(diǎn)擊按鈕或有新的緊急信息輸入時(shí),手表進(jìn)入這一模式。用戶(hù)可以再次點(diǎn)擊按鈕查看下一條信息,10秒不操作,手表也會(huì)自動(dòng)顯示下一條信息。信息顯示完成之后,手表切換到普通信息顯示。因?yàn)镽AM只有2KB,非常小。所以該智能手表最多存儲(chǔ)3條緊急信息,多于3條時(shí)則自動(dòng)刪除最舊的信息。
     
    普通信息顯示: 緊急信息展示完成之后手表會(huì)繼續(xù)展示普通信息,點(diǎn)擊按鈕或5秒不操作就顯示下一條信息。信息顯示完成之后,手表切換回時(shí)鐘顯示。普通信息最多存儲(chǔ)7條。
     
    待機(jī)顯示: 如果10分鐘內(nèi)沒(méi)有什么數(shù)據(jù)更新和操作,顯示界面會(huì)切換到待機(jī)界面。在這一模式下,手表界面僅顯示指示符(可在安卓應(yīng)用中選擇)和hh:mm模式的時(shí)間,其功耗也降低了。在待機(jī)模式下點(diǎn)擊按鈕或收到新信息,手表進(jìn)入時(shí)鐘顯示模式。
     
    第七步:外部結(jié)構(gòu)制作
     
    你可以自己手工制作一個(gè)簡(jiǎn)單的包裝:
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    也可以下載3D文件制作一個(gè)造型炫酷的手表:
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表
     
    當(dāng)然,你完全可以選擇不戴手表,做個(gè)桌面提醒器也不錯(cuò):
     
    全民創(chuàng)客時(shí)代,自己DIY一個(gè)智能手表





    推薦閱讀:






     
    特別推薦
    技術(shù)文章更多>>
    技術(shù)白皮書(shū)下載更多>>
    熱門(mén)搜索
    ?

    關(guān)閉

    ?

    關(guān)閉

    亚洲精品无码国产| 超清无码熟妇人妻AV在线电影| 亚洲日韩国产AV无码无码精品| 无码人妻AⅤ一区二区三区| 免费A级毛片无码A∨免费| 精品人妻无码专区中文字幕| 日本精品久久久中文字幕| 亚洲日韩中文字幕在线播放| 中文字幕无码乱人伦| 最近免费中文字幕中文高清| 国产成人无码一区二区三区在线 | 亚洲国产综合精品中文第一 | 无码毛片视频一区二区本码 | 无码精品人妻一区二区三区AV| 国产在线观看无码免费视频 | 亚洲啪啪AV无码片| 日本公妇在线观看中文版 | 精品久久久无码人妻中文字幕| 国产真人无码作爱免费视频| 中文字幕手机在线观看| 亚洲精品无码99在线观看| 欧美日韩中文字幕| 国产激情无码一区二区三区| 久クク成人精品中文字幕 | 亚洲国产精品无码专区在线观看| 亚洲男人在线无码视频| 无码人妻精品一区二区三区久久久 | 无码毛片视频一区二区本码| 色综合久久中文综合网| 无码精品人妻一区二区三区免费| 日韩国产精品无码一区二区三区| 视频一区二区中文字幕| 久クク成人精品中文字幕| 免费 无码 国产在线观看观| 人妻无码αv中文字幕久久| 久久精品无码免费不卡| 亚洲日产无码中文字幕| 日日摸夜夜添无码AVA片| 国精品无码一区二区三区在线| 亚洲欧美精品一中文字幕| 97无码免费人妻超级碰碰夜夜|