文章首發於個人博客
將你樹莓派變成智能家居中樞
樹莓派由於本身足夠的小巧且擴展性極高,所以它智能家居方面的應用具有天然的優勢。對於喜歡折騰和 Geek 的人的而言,其擴展性具有無比的吸引力。
這次我們就來嘗試將樹莓派變身爲智能家居的管理中樞,將其橋接到蘋果家的 Home 應用當中,使用 Siri 來控制所有的智能家居。
由於 Apple 家認證的智能家居暫時承擔不起,而剛好又可以使用樹莓派加上 HomeBridge
相關的框架來將小米的智能家居產品加入 HomeKit
。
我使用的是小米智能家居全家桶套裝,極客學院送的2017年元旦講師禮物,在此表示感謝!其包含內容產品主要有:多功能網關,人體傳感器,智能插座,無線開關,門窗傳感器。效果圖如下:
用習慣之後,不得不說確實很方便,特別是寒冷的冬天不用起牀就能開關燈。
下面就進入正題,如何將你的樹莓派變身智能家居橋接中樞。
準備工作
材料準備
硬件:
- Raspberry Pi
- 小米智能家居產品
軟件:
基本步驟
- 硬件準備和連接
- 軟件環境和依賴安裝
- 安裝運行
Homebridge
- 安裝及配置
homebridge-mi-aqara
- 測試及後臺運行
- 其他
步驟一:硬件準備和連接
首先將你的樹莓派安裝好系統並配置好,最好可以使用 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 右上角 ···
符號,進入 關於
選項:
如上圖所示,要不斷的點擊空白處,片刻後界面就會多了局域網通信協議
還有網關信息
等選項。
這時候,分別點選他們,記錄你的網關的局域網通信協議密碼
以及網關的MAC地址
,記得要開啓局域網通信協議,記錄下密碼後,點擊確定。網關的 MAC 地址位置如下:
上面的 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 碼
進入你 iPhone 或者 iPad 的家庭APP,添加配件,掃碼幾乎不可能加入成功,直接選擇輸入 PIN 碼,即是輸入下方的
添加完成之後,你就會看到所有網關所附帶的配件了,如我剛開始所配圖的一般,不過此時按鈕的名字可能是一串英文符號,你需要自己確定各個按鈕的作用,給他們一個你想好的名字即可。
但是上面這個只是在測試環境運行,如果斷了 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 燈 - 擴展攝像頭模塊,嘗試一下人臉識別等基本的人工智能
- 擴展私有云存儲及遠程下載