樹莓派折騰指南之將你樹莓派變成智能家居中樞

文章首發於個人博客

將你樹莓派變成智能家居中樞

樹莓派由於本身足夠的小巧且擴展性極高,所以它智能家居方面的應用具有天然的優勢。對於喜歡折騰和 Geek 的人的而言,其擴展性具有無比的吸引力。

這次我們就來嘗試將樹莓派變身爲智能家居的管理中樞,將其橋接到蘋果家的 Home 應用當中,使用 Siri 來控制所有的智能家居。

由於 Apple 家認證的智能家居暫時承擔不起,而剛好又可以使用樹莓派加上 HomeBridge 相關的框架來將小米的智能家居產品加入 HomeKit

我使用的是小米智能家居全家桶套裝,極客學院送的2017年元旦講師禮物,在此表示感謝!其包含內容產品主要有:多功能網關,人體傳感器,智能插座,無線開關,門窗傳感器。效果圖如下:
15158306050366-w629

15158306313468

用習慣之後,不得不說確實很方便,特別是寒冷的冬天不用起牀就能開關燈。

下面就進入正題,如何將你的樹莓派變身智能家居橋接中樞。

準備工作

材料準備

硬件:

  • Raspberry Pi
  • 小米智能家居產品

軟件:

基本步驟

  1. 硬件準備和連接
  2. 軟件環境和依賴安裝
  3. 安裝運行 Homebridge
  4. 安裝及配置 homebridge-mi-aqara
  5. 測試及後臺運行
  6. 其他

步驟一:硬件準備和連接

首先將你的樹莓派安裝好系統並配置好,最好可以使用 SSR 全局代理可以科學上網,這樣可以改善你的樹莓派網絡環境,一定程度加快安裝過程。具體的方法參考之前的文章

使用 SSH 遠程連接你的樹莓派:

ssh [email protected]

更新樹莓派相關依賴環境

sudo apt-get update
sudo apt-get upgrade

完成之後進入下一步。

步驟二:軟件環境和依賴安裝

首先安裝這兩個庫使用的都是 Node 環境的 npm 工具,因此要先安裝 Node,命令如下:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

其次需要安裝 avahi

sudo apt-get install libavahi-compat-libdnssd-dev

如果上述包安裝出現錯誤,可以參考這裏的解決方法

嘗試使用

sudo aptitude install libavahi-compat-libdnssd-dev 

命令安裝依賴,可能需要將相關軟件包降級就可以順利安裝了。

步驟三:安裝運行 Homebridge

這裏具體的安裝步驟可以直接去參考其 github 主頁的 wiki 內容。簡單的來說,步驟如下:
首先可以試一下使用如下命令安裝:

npm install -g homebridge

如果上述命令安裝過程出現了錯誤,那麼可以嘗試使用如下的命令:

cd ~
sudo npm install -g --unsafe-perm homebridge hap-nodejs node-gyp
cd /usr/lib/node_modules/homebridge/
sudo npm install --unsafe-perm bignum
cd /usr/lib/node_modules/hap-nodejs/node_modules/mdns
sudo node-gyp BUILDTYPE=Release rebuild

上面的 /usr/lib/ 目錄,如果你不是使用的 apt-get 命令安裝的 Node,需要換成 /usr/local/lib/
一定要嚴格安裝上述命令的步驟來安裝,該切換目錄就切換目錄。

此時安裝應該不會有什麼問題了。

步驟四:安裝及配置 homebridge-mi-aqara

其項目主頁是 homebridge-mi-aqara,可以在他的項目主頁看到其支持的小米硬件,基本是非常全面的。

安裝命令如下:

sudo npm install -g homebridge-mi-aqara

安裝完成之後,需要對其進行基本的配置,從而能夠將你的小米全家桶硬件加入到 HomeBridge 中。

首先要獲取的是 局域網通信協議密碼 以及 網關的 MAC 地址。

下載米家 APP,連接上你的智能網關以及其他小米智能家居硬件,打開米家 APP,選擇你的多功能網關,點擊 APP 右上角 ··· 符號,進入 關於 選項:

15158331055340

15158331906989

如上圖所示,要不斷的點擊空白處,片刻後界面就會多了局域網通信協議還有網關信息等選項。
這時候,分別點選他們,記錄你的網關的局域網通信協議密碼以及網關的MAC地址,記得要開啓局域網通信協議,記錄下密碼後,點擊確定。網關的 MAC 地址位置如下:
15158337428781

上面的 MAC 地址去除冒號,全變成小寫後記錄下來,是一串12位的字符。局域網通信協議密碼要保留大小寫的記錄下來。

記錄下上述兩個地址之後,就可以開始在終端中配置 HomeBridge 的配置文件了。執行的命令如下:

sudo mkdir ~/.homebridge 
cd ~/.homebridge      
sudo nano config.json         

執行了上述 nano 命令之後,會創建一個配置的 json 文件,將以下內粘貼到終端編輯環境中

{
    "bridge": {
        "name":"Homebridge",
        "username":"CC:22:3D:E3:CE:23",
        "port":51826,
        "pin":"723-92-124"
    },
    "platforms": [{
        "platform": "MiAqaraPlatform",
        "gateways": {
            "網關 mac 地址": "局域網通信協議密碼"
        }
    }]
}

將上述的兩個參數替換成剛剛你記錄下來的即可。其他參數說明:
name iOS 的 Homekit 在添加配件的時候看到的名字
username 如果只是用 Homebridge,這裏可以是任意一個類似 MAC 地址的字符串
port 隨意,只要不被佔用的端口
pin iOS 的 Homekit 在添加配件時需要的驗證碼

使用 Ctrl + o 保存, Ctrl + x 退出。

步驟五:測試及後臺運行

在終端輸入

homebridge -D

這時候,界面也會出現剛剛你自己填寫的 PIN 碼
15158339825667

進入你 iPhone 或者 iPad 的家庭APP,添加配件,掃碼幾乎不可能加入成功,直接選擇輸入 PIN 碼,即是輸入下方的
15158342592263

添加完成之後,你就會看到所有網關所附帶的配件了,如我剛開始所配圖的一般,不過此時按鈕的名字可能是一串英文符號,你需要自己確定各個按鈕的作用,給他們一個你想好的名字即可。

但是上面這個只是在測試環境運行,如果斷了 SSH,你手機或者 iPad 裏面的所有設備都會處於無響應的狀態,所以,我們還需要能夠在後臺運行的 Homebridge

藉助 screen 工具即可實現這一需求,具體安裝命令如下:

sudo apt-get install screen

安裝完成之後,首先開一一個名字叫做 home 的窗口,具體的名字你可以隨意選取,命令如下:

screen -S home

然後所打開的 screen 進程中開啓一個 homebridge 進程

homebridge -D

screen 裏開啓的 homebridge 不會隨着 SSH 關閉而被關閉。使用 Ctrl+A 然後按 d 就可以跳出來了。

具體關於 screen 命令的用法你可以查看這裏的文章: linux 技巧:使用 screen 管理你的遠程會話Linux screen命令

其他

完成上面的步驟,此時你只能在你的路由器所在的局域網內完成智能家居的控制,如果要在外網實現操作,及 home 的自動化操作,你需要一臺 iPad 作爲家居中樞,具體的參考 自動化和遠程訪問 HomeKit 配件

上面就是一個利用樹莓派實現讓 Siri 幫你開關燈的過程,下一步可以使用 HomeAssistant 來實現更加智能化和擴展化的家居管理。

更下一步的嘗試可能會比較底層一些了:

  • 嘗試一下擴展溫溼度感應器模塊
  • 嘗試使用 GPIO 控制 RGB 彩色 LED 燈
  • 擴展攝像頭模塊,嘗試一下人臉識別等基本的人工智能
  • 擴展私有云存儲及遠程下載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章