智能硬件項目復盤

17年的時候我入職了一家做智能家居的公司,終于寫完了對這個項目進行復盤余黎。

復盤主要還是宏觀層面上的思考,并且挑選了部分模塊的案例载萌。

智能硬件產(chǎn)品的形態(tài)是智能時鐘惧财,這個idea是出自老板在兩年前早上洗漱時候覺得如果在這段時間希望能自動提醒今天的天氣、新聞甚至車輛限號的情況扭仁。

這個場景其實在家居中目前還沒有成熟的產(chǎn)品能夠實現(xiàn)垮衷,原因有兩點:

做智能硬件比單一的軟件在難度上要高很多,因為要考慮到硬件的很多的模塊乖坠,比如底層系統(tǒng)架構搀突,wifi模塊,顯示模塊熊泵,揚聲器模塊仰迁,外觀等等因素甸昏,以及與手機之間的交互。

其二是由于技術不成熟目前的智能家居還未細化到對單一場景進行智能優(yōu)化徐许。

項目啟動之初施蜜,首先是要考慮的是產(chǎn)品形態(tài),以什么樣的消費升級來做這個概念雌隅。

經(jīng)過頭腦風暴后翻默,老板最終拍板決定使用時鐘。


硬件組成


接下來需要分析的是硬件方面的組成恰起。

首先作為一個智能硬件修械,必要的是CPU,WiFi模塊检盼,藍牙模塊肯污。

而從概念來講那么一塊屏幕和揚聲器也是必要的。

那么作為一款“電器”梯皿,還需要考慮的是仇箱,使用蓄電池還是使用插電式的方式,這就需要綜合產(chǎn)品形態(tài)來考量东羹。

既然是時鐘剂桥,那么必然是掛在墻上幾乎不會移動的,所以從能耗的出發(fā)點属提,我們摒棄了電池以追求不必充電的效果权逗,所以在時鐘下部墜了一根電源線,而在線上參考手機耳機設置了調節(jié)音量的按鈕冤议。

在操作上來講斟薇,首先是需要手機app進行遠程交互,另外在硬件上也需要一些簡單的按鈕進行操作恕酸。而設計之初由于成本的把控和技術的實現(xiàn)堪滨,沒有加入語音控制系統(tǒng),那么也就不需要麥克風蕊温。

在場景的考慮上袱箱,一款家居類硬件我們需要它除了使用網(wǎng)絡獲取外界的信息,之外還需要有相應的傳感器檢測整個家的一些情況义矛,所以在這里我們加入了溫濕度傳感器发笔。?


在硬件上的模塊清單大致如上。


設備設置


設備聯(lián)網(wǎng)


軟件這里也需要分成兩個部分來進行設計凉翻,一個是設備上的另一個是手機app了讨。

軟硬件交互,是最基本的一個功能,首先面臨的問題是關聯(lián)手機和如何讓硬件聯(lián)網(wǎng)前计。

時鐘的屏幕由于不是觸摸屏胞谭,所以需要用戶在手機上進行聯(lián)網(wǎng)操作。

登錄后手機聯(lián)網(wǎng)引導界面

設備聯(lián)網(wǎng)為了友好顯示残炮,做了分步驟進行:?


開機之后語音提示用戶掃描屏幕上的二維碼去應用商店下載手機應用韭赘,下載之后手機進行登錄操作,此時按照手機上的說明讓設備進入了等待藍牙連接的狀態(tài)势就。

手機與設備藍牙連接之后,手機上輸入WiFi的信息會通過藍牙傳給設備脉漏,從而進行設備聯(lián)網(wǎng)苞冯。

設備成功聯(lián)網(wǎng)之后,進入新手引導環(huán)節(jié)侧巨。


操作引導


由于設備是自定義的操作模式舅锄,所以用戶需要引導進行使用從而培養(yǎng)習慣。

設備上語音+動畫的形式幫助說明:

音量控制司忱、切換應用皇忿、喚起菜單、播放/暫停元媚、選擇 等的簡單操作罢防。


手機應用設計


手機上的應用采用了常規(guī)的底欄按鈕分頁面設計载绿。

首頁:是對于設備中插件的一些操作(類似我們在手機或電腦的桌面,或者可以理解為遙控器)幔荒,也包含了一些常用的設備快捷操作及增刪設備上的插件(功能)。

插件商店(精選):用戶可以在商店中下載需要的一些插件(功能)梳玫。

*插件:

為避免和應用這一名詞的混淆(如微信爹梁、淘寶等),我們將設備上的應用定義為插件提澎。

也就是說姚垃,在App Store或Google Play下載下來的是應用(即在應用商店下載了“時鐘應用”),而在我們時鐘應用中的插件商店可以下載到插件對設備進行安裝使用盼忌。

所以在設計插件時不僅需要做手機端的插件积糯,還需要做設備端的插件,并且保證雙方版本號一致碴犬,才能夠進行正常使用絮宁。

在這里的插件下載不需要手機端應用的升級和更新(只有ROM/Launcher有修改時,手機端應用或設備需要推送升級)服协。

個人中心:包括了賬號設置绍昂、不常用的設備操作以及設備基本設置,如解綁設備、添加設備窘游、添加用戶唠椭、切換設備等。


智能播報


在我入職之前忍饰,大部分基礎功能已經(jīng)做好了贪嫂,比如設備設置、賬號系統(tǒng)艾蓝、以及部分插件如時鐘力崇、電臺、藍牙音樂赢织。

我需要做的是各個部分的優(yōu)化以及新插件亮靴。

在做智能播報之前,我發(fā)現(xiàn)設備似乎少了點什么于置。

設備總是需要被動的去喚起某一項功能茧吊,比如看天氣時需要手動切換到天氣插件,需要聽電臺時又需要手動切換至電臺插件八毯。

基于這個思路搓侄,結合現(xiàn)在已有的功能,我想到了讓設備主動去推信息流话速。也就是說當用戶預設好了場景后讶踪,就可以收聽信息。

再回到idea的階段尿孔,用戶的需求是在洗漱的時間收聽時間俊柔、天氣、限行及路況活合。

那么一旦洗漱時間固定雏婶,我們就可把這個信息流做進鬧鐘里,時間到了就自動序列去播放內容白指。

而這樣一個功能聯(lián)動了不同的插件留晚,同時也不適合做成新插件,就需要在launcher中加入一個提醒狀態(tài)告嘲,可以類似手機中鬧鐘響了桌面會覆蓋一個圖層顯示當前鬧鐘狀態(tài)错维,用戶可以進行手動關閉。同樣的橄唬,我們在設備上也設置了手動關閉的操作赋焕。


自動播報

我們可以讓用戶在手機上設置好播放內容、時間等并該播報處于開啟狀態(tài)仰楚,到時間時就可以進行播報隆判。

手機端智能播報頁面

而設備端會暫停當前音頻犬庇,進入‘智能播報順序流’,跳轉至對應插件頁面侨嘀。

播報順序:

鈴聲:20秒音樂臭挽,第15秒開始減弱。

叮咚音效(選擇鈴聲時咬腕,該音效不播放欢峰;未選擇鈴聲時播放該音效)

時間tts:{{早上(4:00-12:00]/下午(12:00-18:00]/晚上(18:00-4:00]}}好,現(xiàn)在是{{19}}點{{17}}分涨共,桔貓為您準備了{{起床播報}}纽帖。

日歷tts:今天是{{2018}}年{{1}}月{{1}}日,星期二举反,農(nóng)歷{{冬}}月{{十五}}抛计。(設備端顯示日歷頁面)

天氣tts:當前為您播報的是{{西安}}的天氣,今日{{雨夾雪}}照筑,最高氣溫{{1}}度,最低氣溫{{零下3}}度瘦陈,PM2.5為{{400}}凝危,{{重度污染,外出請戴好防霾口罩}}晨逝。{{易發(fā)感冒}}蛾默,{{今天不適宜洗車}}。(設備端顯示天氣頁面)

新聞tts:現(xiàn)在為您播報桔貓{{國內}}新聞:{{……}}(設備端顯示新聞頁面)

mozik:現(xiàn)在為您播報的是mozik精選音樂(設備端顯示mozik頁面)


手動播報

而定時播報幾乎僅限類似于時間規(guī)律的場景捉貌,那如果我們也想讓用戶在不固定的時間聽到播報推送要怎么做支鸡?

時間不固定的場景最典型的的是下班回家,由于下班的時間以及路上所花費的時間導致下班回家不是固定的時間趁窃,那么首先要考慮的是如何獲得用戶回家的信息牧挣。

一開始我想到了一回家用戶的手機會自動連上家里的WiFi,通過這一信息聯(lián)動傳遞醒陆,設備獲知了用戶連上WiFi了就等同于下班了瀑构。但對此,開發(fā)也進行了技術預研刨摩,發(fā)現(xiàn)并不能從路由器或手機系統(tǒng)獲得相關數(shù)據(jù)寺晌。

關鍵詞是“快捷”“用戶想聽”,從這兩點出發(fā)澡刹,我想到了在設備上設置一個快捷喚醒智能播報的操作呻征。

同時在錯過了“想聽”的時候不會再去推,這樣也就需要時效性罢浇。比如說用戶下班已經(jīng)是晚上11點陆赋,回到家只想倒床就睡沐祷,那么設備一旦過了“播報有效期”就默認今天不需要播報,提示也會在設備屏幕上消失奏甫。

這樣一來就有了“手動播報”的定義:在預設好的某一時間段內戈轿,手動拉動拉繩開始進行播報。

手動播報

當?shù)竭_用戶所設置的手動播報時間段內阵子,設備端底部彈出如圖彈框思杯;

[已為您準備好今日的{{播報名}} 下拉拉繩開始收聽]

下拉拉繩后進入自動播報;

當過了有效時間時挠进,底部彈框消失色乾,手動播報不會被觸發(fā)。

編輯播報頁面

手機端新增播報頁面

‘重復’與當前鬧鐘選擇【重復頁面】一致领突,點擊跳轉【重復頁面】暖璧;

‘播報內容’顯示當前已選序列流內容名,點擊進入【播報內容頁面】君旦;

點擊‘播報時長’跳轉至【播報時長頁面】澎办,可選項有:5 分鐘 10分鐘 15分鐘 20分鐘 30分鐘 自定義,點擊自定義彈框彈出[0-12]小時[0-59]分鐘選項金砍,點擊確定后局蚀,‘對勾標記’停留在‘自定義’一欄,點擊確定恕稠,【編輯播報頁面】顯示播放時間為 {{分鐘}}分鐘琅绅;

顯示:

0小時X分鐘顯示 X分鐘

X小時0分鐘顯示X小時

點擊‘手動播報’可進行切換開啟/關閉,時長選擇范圍與播報時長一致鹅巍;

點擊右上角‘確定’為保存千扶,該播報開關依然保持之前的狀態(tài);

點擊左上角‘返回箭頭’視為取消操作(未保存)骆捧。


插件設計


新聞播報插件


新聞模塊最簡單的方式是接入了第三方的API澎羞,我們在后臺設置定時的拉流接口就可以了。

新聞播報這個插件在我入職之前就已經(jīng)上線了凑懂,但由于硬件設備與手機不同煤痕,會出現(xiàn)一些因為設備關閉/斷網(wǎng)的狀態(tài)導致的一些問題,這個就算是一個邏輯優(yōu)化接谨。

問題:之前新聞播放到A摆碉,過了幾天之后進入新聞界面,設備端顯示A的標題脓豪,手機端底部不顯示播放進度bar巷帝,設備端點擊中鍵后不能播放。

原因:進入新聞界面后:手機端的播放記錄是從服務器拉取扫夜,這個時候服務器返回空楞泼,所以底部播放記錄的bar不展示驰徊;設備端的播放記錄是讀的本地,所以顯示A堕阔,點擊播放的時候請求服務端棍厂,由于A已經(jīng)被刪掉所以點擊中鍵后不能播放。

優(yōu)化:

每次更新新聞之后超陆,設備端顯示當前所選頻道的(最新更新的)第一條新聞牺弹,不顯示上次的播放記錄(早上6:50-7:00之間用戶打開新聞應用,需要設備端主動拉取新聞內容时呀,檢查該新聞是不是今天的新聞)张漂;

判斷歷史記錄是不是當天的;

每天只刪除一次新聞內容谨娜,刪除時間點是每天早上6:50航攒,設備端保持一致;

新聞更新失敗要有重試邏輯趴梢,播放后臺已經(jīng)刪除的新聞BUG解決漠畜;

流程圖

測試用例


倒計時插件


作為時間類的設備,常用的功能必然是與時間相關坞靶。

在一次頭腦風暴中盆驹,同事們提到有時候經(jīng)常會用到提醒工具,比如提示敷面膜的倒計時滩愁,以防時間過長。

那么此類的工具在家的場景下使用設備操作更為方便辫封,于是構思了在移動端設置常用的倒計時硝枉,在設備上進行使用。

計時器通常的設置需要名稱及時長倦微,所以在手機端添加只有這兩個字段妻味。

手機端添加計時器

而在設備上呈現(xiàn)的需要三種狀態(tài):未開始-進行中-已結束责球。

同時也需要展示倒計時名稱拓劝,倒計時所剩時間郑临。

操作上有切換倒計時及開始/結束倒計時厢洞。

倒計時結束tts:

[【音效】您設置的計時器{{煮雞蛋}}已結束];

異常情況的處理是每一個設計都需要考慮到的部分卫玖,在設計倒計時的時候假瞬,異常情況大概會有以下幾條:

主從用戶是否需要同步‘倒計時信息’嚣崭;

設備關閉/斷電等原因關機雹舀,如何處理;

鬧鐘/提醒來時虚吟,聲音是否會重復串慰;

正在進行倒計時邦鲫,手機端添加一條倒計時庆捺,設備端是否需要刷新滔以,及倒計時的順序氓拼;

這里給出解決方案:

(當前倒計時結束后順序重置桃漾,如:有倒計時ABC撬统,A為第一個倒計時宪摧,顯示:CAB,當前進行倒計時A沿后,此時手機端添加倒計時D尖滚,按下鍵則顯示DAB(A被選中)

設備端倒計時正在進行漆弄,手機端管理倒計時撼唾,當前倒計時不受影響倒谷。該倒計時結束時渤愁,同步手機端信息抖格;)


其他


升級更新


硬件設備比較難的一點是ROM升級咕晋,在研發(fā)狀態(tài)時候可以隨時打開設備插上數(shù)據(jù)線更換ROM包捡需,而對于測試階段多個設備情況下就需要批量統(tǒng)一升級站辉,這里就必須要使用OTA進行升級饰剥。

交互流程如泳道圖

強制更新:

后臺推送之后,會使用第三方OTA推送至設備顾孽,設備處于非離線的狀態(tài)就可以立即進入更新若厚;

設備重新聯(lián)網(wǎng)時需要主動請求當前版本是否與后臺版本一致测秸,如果不一致會立即進入更新霎冯。


非強制更新:

用戶在手機端確認更新后沈撞,設備開始下載更新安裝包关串,下載完成后晋修,設備則自動開始進入更新狀態(tài)墓卦。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末睁本,一起剝皮案震驚了整個濱河市呢堰,隨后出現(xiàn)的幾起案子枉疼,更是在濱河造成了極大的恐慌,老刑警劉巖航闺,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潦刃,死亡現(xiàn)場離奇詭異萝毛,居然都是意外死亡笆包,警方通過查閱死者的電腦和手機庵佣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人派哲,你說我怎么就攤上這事芭届。” “怎么了逃片?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長瓮增,這世上最難降的妖魔是什么绷跑? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮梆暖,結果婚禮上轰驳,老公的妹妹穿的比我還像新娘。我一直安慰自己勤哗,他們只是感情好,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般映屋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瘫析,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天咸包,我揣著相機與錄音,去河邊找鬼。 笑死温算,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播宣谈,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼闻丑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤窑滞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鼓寺,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年勋磕,在試婚紗的時候發(fā)現(xiàn)自己被綠了妈候。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡挂滓,死狀恐怖苦银,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情赶站,我是刑警寧澤幔虏,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站贝椿,受9級特大地震影響想括,放射性物質發(fā)生泄漏。R本人自食惡果不足惜烙博,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一瑟蜈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渣窜,春花似錦铺根、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至予颤,卻和暖如春囤官,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛤虐。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工党饮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驳庭。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓刑顺,卻偏偏與公主長得像氯窍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蹲堂,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫狼讨、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,059評論 4 62
  • 1. 基本概念 1.1 hdfs是什么? 分布式的文件系統(tǒng)柒竞,由多個服務器聯(lián)合起來實現(xiàn)功能政供。用來解決海量數(shù)據(jù)的存儲問...
    Java旅行者閱讀 530評論 0 1
  • 1、成本模式: (3個允許→允許折朽基、攤布隔、減) 賬面價值=成本?會計折舊?會計攤銷?會計減值 計稅基礎=成本?稅法折...
    薄荷鬧閱讀 120評論 0 0
  • 在信息化和大數(shù)據(jù)迅速發(fā)展對外貿(mào)企業(yè)是機遇還是挑戰(zhàn)霎俩,決定權在你的手上哀军。 目前,我國正努力從一個貿(mào)易大國變成貿(mào)易強國打却,...
    貿(mào)立方閱讀 490評論 0 0
  • 愛神排苍,在這個世界上,愛神會幫助你找到自己的愛喲学密! 周子凌淘衙,本是一個平凡而又安靜的美男子。就因為吃了愛神的巧克力腻暮,獲...
    巴黎黑夜閱讀 266評論 0 0