文/徐國保 洪展文 葉昌鑫 陳陸成 朱浩
近年來隨著科學技術的不斷推動,國內外智能家居的市場漸漸打開,智能家居作為物聯網的一部分,很多產品從概念走向現實。國外如蘋果公司推出的Homekit 平臺能通過智能終端控制家庭場景;亞馬遜基于Alexa 語音助手推出Echo 智能音箱;谷歌采用人工智能技術驅動,實現了Google Home 控制生活場景。國內也掀起了智能家居熱潮,如以 BAT 為首的互聯網巨頭相繼進入智能家居,開啟了中國智能家居的高速發展期;百度推出了DuerOS對話式人工智能操作系統;阿里云的天貓精靈智能音箱可語音控制家電設備;騰訊的叮當語音助手和智能音箱等產品實現了家庭場景智能化。其它如小米、京東、美的等企業也通過開放物聯網平臺,加速實現智能家居市場化。
我們的穿衣打扮離不開鏡子,它是我們日常生活的必需品。在這個物聯網極速發展的智能家居時代,人們對智能化的生活愈加渴望,在你穿衣打扮或者刷牙的時候,如果使用的是一面智能鏡子,將更能感受到科技的魅力和樂趣。在家居智能化時代的你,已經厭煩一邊刷牙一邊拿著手機查看時間日期、天氣預報和新聞等等,這個時候沒有比擁有一款與你對話交互的智能鏡子更為方便的了。
雖然智能家居已有基本發展,但對于智能鏡子這一領域的研究,國內外研究還處于初步階段。最早的是日本科技展會上出現的基于安卓系統的智能鏡,能顯示日常的天氣、感知手勢操作等等;后來美國經典廚衛品牌科勒推出了 Verdera 智能防水鏡子,鏡子能語音交互;Hi Mirror 推出的智能鏡子能評估皮膚狀況,提供相應的護膚建議,同時能通過語音進行聊天或者播放音樂;Viio 的智能鏡子能通過與智能手機連接后直接用來撥打電話,內置了揚聲器可以用來播放音樂或音頻文件;智能鏡子的研究在持續進行,現有的智能鏡子還存在軟件拓展性差、市場需求欠缺、功能使用不完善、價格高昂等問題,在智能家居領域仍然是沒有商業化起來。

圖1:智能鏡子整體設計圖

圖2:時間天氣功能結構圖

圖3:新聞功能結構圖

圖4:郵件提醒功能結構圖

圖5:微信提醒功能結構圖

圖6:音樂播放器功能原理圖
文章主要闡述了如何基于Raspberry Pi 開發一面智能鏡子的內容。針對軟件拓展性差、功能不夠完善以及降低成本的問題,本文設計的智能鏡子實現了鏡子里顯示實時的天氣狀況、溫度和濕度,同時也可以提供貼心的用戶提示與用戶交互,顯示新聞熱點,還能交互語音對話,智能鏡上有溫馨的問候內容,郵件、微信的智能提醒,還能在閑暇的刷牙時間播放音樂。從而讓人們在生活點滴中感到科技的樂趣,達到滿足住戶生活的舒適性、便利性要求,改善住戶的居住環境和提高住戶的生活水平,改變住戶的生活方式。
鏡子選用的是單面鏡,根據單面鏡子的單面透光性,我們讓貼在后面的液晶顯示屏背景為黑時,它是一面鏡子,而液晶顯示屏的相關信息也能在黑背景下透過鏡子顯示出來,把液晶顯示屏和單面鏡緊密結合起來。把樹莓派系統的界面UI 背景設置為黑色,天氣、溫度、濕度、新聞資訊等信息則可設置為高亮,并對各功能模塊設計合理的位置坐標,裝上鏡框,一面多功能的智能鏡子便完成了。智能鏡子整體設計圖如圖1所示。
顯示界面是基于html、javescript 和PHP多種網頁語言開發的MagicMirror 網頁系統。在Linux 環境下安裝chromium 瀏覽器,并搭建一個本地服務器,瀏覽器設置開機全屏自啟,并自動訪問搭建好的網頁http://localhost 本地主機。
智能鏡子的控制核心是Raspberry Pi,價格便宜;系統是基于免費的開源的Linux 系統,提供了可行的開發環境。鏡子物聯網的實現,是通過樹莓派主控Wi-Fi 的連接,實現用戶對鏡子的數據傳輸以及控制。由于樹莓派3 代具有強大的性能,再加上Linux 開源的系統以及無線通信Wi-Fi 的輔助,完全滿足控制智能鏡需求。
智能鏡所用的控制芯片是樹莓派第三代,其在控制運行上強大以外,并且集成有穩定的Wi-Fi 功能模塊,Wi-Fi 連上家庭網絡后,實現時間日期、天氣信息、新聞資訊等信息的更新和使用,十分便捷。
智能鏡子的顯示中,不可缺的是問候語,好的問候語能帶給人們好的心情。使用javescript 代碼實現,問候語設置為早上、中午和晚上不同時間段,定義多種不同的溫馨問候。
智能鏡子具備顯示時間、日期和天氣預報功能,時間、天氣功能的實現,是通過連接openweathermap 來完成,這是一個免費的天氣預報接口,在openweathermap 官網注冊個人的賬號APPID,地理位置獲取到Zhanjiang,CN,實現接口的正常使用,時間、天氣就能實現實時顯示了。時間天氣功能結構圖如圖2所示。

圖7:人臉檢測功能原理圖
新聞資訊的顯示實現主要是調用新聞訂閱源接口,通過Wi-Fi 網絡通信的條件下,下載數據再顯示輸出,新聞訂閱源很多,可以根據用戶自身實際情況修改,下面以極客公園的新聞訂閱源為例。下面是部分核心代碼。用jQuery 提供的ajax 方法發送GET 請求到url 地址 獲取jsonp 數據,獲取到數據后,判斷一下數據長度,如果數據長度大于0,就進行下一步的解析parse,否則就打印出錯誤信息提醒沒有獲取到數據,從而獲得新聞資訊。新聞功能結構圖如圖3所示。
智能鏡子含有郵件提醒功能,通過開啟郵箱賬戶的STMP 功能,可以爬取郵件的信息,從而提醒用戶是否有新郵件。主要通過python 的開源函數庫imaplib 實現,在已經開啟了STMP 功能的郵件上,連接郵件的服務器,分析提取郵件的信息。imaplib.IMAP4_SSL()函數實現連接到郵箱服務器,爬取郵箱信息,并把信息寫入.txt 文件,通過對比檢測是否有新郵件,從而在智能鏡子上提醒用戶。郵件提醒功能結構圖如圖4所示。
微信提醒具有更好的交互性,調用了wxpy 的庫,實現了把天氣預報、穿衣指數、新聞熱點等多種信息自動發到手機微信,新聞熱點等信息可根據個人喜好自定義爬取的網站。通過requests.get 請求,后進行解析,爬取需要的信息。微信提醒功能結構圖如圖5所示。
智能鏡子也帶有音樂播放功能,主要使用了python 中的wx、pygame 開源庫實現,當你對著智能鏡子刷牙或者梳妝時,有一個會“唱歌”的鏡子更是一番新的體驗。播放器的實現主要調用的函數主要是pygame.mixer.music.play()、pygame.mixer.music.load()、pygame.mixer.music.pause()等基本的開始播放,載入播放、暫停和結束等音樂控制函數,控制音樂流上穩定。wx 庫則用于實現播放器的基本界面和控制按鈕。音樂播放器功能原理圖如圖6所示。
智能鏡子調用opencv 的庫進行人臉的檢測,主要依賴于cv2.CascadeClassifier 的級聯分類器,基于機器學習的PCA 算法,實現人臉和非人臉的檢測,提前做好了訓練集的訓練得出模型,就可以調用opencv 的庫進行人臉的檢測了。PCA 算法是用于特征維度過多時的降維,通過向量的線性變換,提取數據的主要特征分量,簡化數據,保留最大貢獻的數據。首先需要訓練出人臉模型,在訓練出模型后進行預測。在這里調用了開源的Haar 特征分類器.xml 文件,是被不同的部位有不同的xml,這里用的是臉部的xml 文件進行預測。從攝像頭捉取一幀圖片并且轉換成灰度圖片,每一個像素點就為0-255 的灰度值,從而可以通過矩陣運算檢測灰度圖片幀的人臉,經過處理臉部照片,即可實現人們在面對智能鏡子時能檢測出人臉的功能。人臉檢測功能原理圖如圖7所示。
智能鏡溫濕度顯示的實現是通過DHT11模塊,且集成了溫度傳感器和濕度傳感器,輕薄性能穩定,抗干擾能力強,適合使用在智能鏡上。
智能鏡子具備語音交互功能,設定關鍵詞喚醒語音助手,語音模塊在硬件上用的是Arduino Micro:bit,功能高度模塊化,適合在Raspberry Pi 上進行開發,接口則是調用了dingdang-robot。
Dingdang-robot 高度集成了諸多特性,可用于語音識別、語音合成、全局監聽、還可以接入微信,dingdang-robot 被喚醒后,指令先經過在線 STT 引擎進行 ASR 識別成文本,然后去處理,得出結果再交給 TTS 引擎合成成語音,播放給用戶。
語音模塊接受到我們的聲音信號后,通過樹莓派主控發送到云端進行識別處理,并給出合理的反饋,樹莓派再根據反饋做出相應的處理。
在室內,利用樹莓派主控連接了Wi-Fi 無線網絡,在智能鏡子上進行了測試。軟件上,爬蟲、時間、天氣、新聞等信息捉取流暢;硬件上,DHT11 溫濕度模塊獲取實時溫濕度正常,采集數據過程如圖8所示。語音模塊略有延遲,但正常使用。整體來說,智能鏡子系統功能使用流暢,時間、天氣、溫濕度等信息顯示清晰,能穩定運行。
為了增加功能和交互性,本系統設計了軟件功能拓展界面,如圖9所示,主要實現了音樂播放器、人臉眼睛檢測、郵件提醒功能和微信提醒功能等。
智能鏡子實物演示結果如圖10所示,該系統能實時顯示時間,日期,天氣情況,還有當前室內環境的溫度和濕度等信息功能。

圖8:DHT11 溫濕度傳感器采集數據過程

圖10:智能鏡子實物演示圖
本文圍繞智能鏡子可行性分析、交互式界面軟件和硬件的實現方法、以及系統測試進行敘述,智能鏡子以Raspberry Pi 為主控制器,以Linux 為系統環境,通過網頁的開發、一些傳感器的使用,實現了智能鏡子問候語、天氣時間、新聞資訊、音樂播放、郵件提醒、微信提醒、溫度濕度顯示、人臉檢測和交互式語音控制的功能。基于Raspberry Pi 設計的智能鏡子經濟新穎,科技感強,軟件拓展功能豐富,可用于家庭洗手間、客廳等裝飾,在智能化高速發展的時代,未來有望發展到窗戶等其它玻璃,深入推動智能家居的發展,具有廣闊的市場需求和極高的價值。