在物聯網時代,越來越多的設備被連接起來。這也適用于你自己的Raspberry Pi智能家居。然而,每個設備都使用不同的傳輸協議,這可能會讓控制它們變得相當不便。幸運的是,有一個解決辦法:智能家居系統OpenHAB提供了許多現成的軟件包,通過這些軟件包,可以使用一個界面來控制所有來自知名制造商的設備。甚至對于那些默認尚不支持的組件,我們也可以簡單地編寫自己的插件。
這的主要優勢是,我們可以通過一個控制面板來監控和控制所有連接的設備,無論是在室內還是室外。
為了能夠使用OpenHAB,從而為我們的Raspberry Pi智能家居邁出第一步,我們在這個教程中首先進行OpenHAB的安裝、設置和配置,然后在接下來的教程部分中連接更多模塊。
Raspberry Pi 智能家居所需的硬件部件
正如已經提到的,幾乎所有設備和傳感器都可以與OpenHAB一起使用,包括我們在之前的教程中已經使用過的許多設備。此外,以下組件是必不可少的,這些硬件都能通過文章末尾的聯系方式進行購買:
Raspberry Pi(推薦使用3B型號)
micro SD卡(最小16GB,推薦32GB)
可能需要的LAN線
- 最佳選擇:Raspberry Pi外殼
為了讓你對可能性和進一步的教程有一個大致的了解,以下是支持的一些其他設備、協議和服務:
Amazon Echo
Amazon Dash Buttons
IFTTT
KODI媒體中心
Philips Hue燈
Sonos HiFi系統
Belkin WeMo開關
- 以及更多
所有新的物聯網設備(或宣傳用于智能家居應用中的設備)的協議都被OpenHAB支持,并且越來越多的協議正在被添加。
在 Raspberry Pi 上安裝 OpenHAB
基本上有兩種方法來安裝OpenHAB。第一種(稍微復雜一些)方法是在現有的Raspbian系統上擴展所有軟件包。另一種更方便的解決方案是使用預裝了軟件包的Raspbian系統,這也是我們在本教程中所做的。
首先,我們在項目頁面上加載最新的鏡像,它的名字是“openhabianpi-raspbian-……xy”。保存文件。
最新的鏡像:https://github.com/openhab/openhabian/releases
如果你的micro SD卡還沒有插入到你的電腦/Mac的卡槽中,請將其插入。如果你的SD卡還沒有格式化,我推薦使用SD Formatter工具。這樣你可以簡單地用兩次點擊刪除你的(micro)SD卡,然后繼續使用。
我們現在需要一個可以將“.xy”文件寫入SD卡的工具。為此,我使用Etcher,它適用于所有常見的操作系統。下載并安裝它。然后選擇當前加載的文件并按下“Flash!”。
這個過程需要幾分鐘。在此期間,你可以先將以太網電纜連接到Pi。如果你無法建立以太網連接,你也可以立即輸入WiFi數據。
在鏡像寫入SD卡后,在文件資源管理器中打開該目錄。有一個名為“openhabian.conf”的文件,需要用文本編輯器打開。下面是兩行帶有注釋(用井號/哈希標簽)的行。刪除開頭的井號標簽,并輸入你的WiFi網絡的名稱和密碼,然后保存文件:
#wifi_ssid="My Wi-Fi SSID"#wifi_psk="password123"
現在將micro SD卡插入Pi并連接電源。在接下來的45到60分鐘內,你不應該斷開電源,因為所有必要的更新和配置文件都將被加載!只有在所有點都完成(安裝步驟會顯示出來,因此你可以在必要時重新啟動)
如果一切順利,你的Raspberry Pi已經連接到網絡,你現在可以在瀏覽器中打開頁面:http://openhabianpi:8080
將顯示設置菜單(下面的文章中會提供逐步說明)。
通過SSH訪問更新 OpenHAB
你可以通過Raspberry Pi上的鍵盤直接輸入命令,或者通過SSH來輸入。選擇你的SSH客戶端(如Putty),并輸入以下主機名:
openhabianpi
默認用戶名是openhabian,密碼也是openhabian。你也可以事先在配置文件中更改這些信息。
如果更新過程尚未完成,會顯示相關信息。否則,或者一旦此過程完成,輸出將如下所示:
在這里,我們調用以下命令:
sudo openhabian-config
如果你已經更改了密碼,請輸入當前密碼進行確認,否則使用默認密碼:openhabian
首先,我們選擇“01 | 更新”,然后選擇“02 | 更新系統”。在“30 | 系統設置”下,你可以更改其他設置,如主機名、時區(默認為柏林)、密碼、端口和WiFi網絡。
通過“可選組件”,你可以添加更多軟件包,如Node-RED等,這包括你可以輕松創建自己的物聯網應用,而無需編寫太多程序。如有必要,我可以在另一個教程中詳細介紹。
Raspberry Pi 家庭自動化:OpenHAB用戶界面
當然,我們也希望為我們的Raspberry Pi家庭自動化提供一個用戶界面或圖形用戶界面,以便我們可以從智能手機、平板電腦、觸摸屏或PC控制后續組件。因此,我們現在就來設置它。HMI可以能通過文章末尾的聯系方式進行購買。
首先,我們在同一網絡的瀏覽器上打開:http://openhabianpi:8080/start/index:
在這里,我們選擇“標準”,這將預先安裝一些主題。稍后,可以手動添加更多。
等待片刻后,我們現在可以確定用戶界面的外觀。有HABPanel、Paper UI和基本UI可供選擇。你可以稍后更改選擇。例如,我喜歡Paper UI。
在左側,你會找到菜單。可以在這里進行選擇。由于我們還沒有安裝任何內容,因此控制菜單也是空的。在“配置”下,我們可以在“附加組件”中為智能家居設置和安裝新軟件包。
在 Raspberry Pi 上安裝 OpenHAB 附加組件
為了能夠使用某些模塊,如Phillips Hue Light或Z-Wave,必須先安裝必要的文件。在本例中,我們從網絡綁定開始,它檢查設備當前是否處于本地網絡中。這可用于觸發某些操作,例如你離家時。
我們在左側切換到“附加組件”,然后切換到“綁定”選項卡。在這里,我們正在尋找要安裝的軟件包,在我們的例子中是“網絡綁定”。點擊“安裝”后,可能需要幾分鐘時間來完成安裝。
一旦所有內容都安裝完畢,我們導航回左側欄中的“收件箱”。點擊大加號(+)會顯示已安裝的綁定,包括我們的網絡綁定。如果選擇它,則會在我們的網絡中搜索設備。
如果你不確定智能手機的內部IP地址,你可以查看路由器(192.168.1.1)或直接查看設備的設置。
點擊藍色勾選標記,我們可以添加設備并相應地命名它們。其他設備也可以從列表中忽略或刪除(忽略它們只是暫時不顯示,完全刪除會使它們消失,直到你再次搜索)。
我們現在切換到“配置”>“事物”。選擇你剛剛添加的設備。在這里,你會找到“在線”和“時間”這兩個項目。我們選擇這兩個復選框:
通過點擊上方的引腳按鈕,可以更改某些設置(如IP地址等)。其他設備有可以按需激活的不同項目。
如果我們現在在左側面板中切換到“控制”,我們會看到已激活的設備。下面是已激活的項目。在我們的例子中,這只是一個布爾值或數字,但也可以是溫度值等。
在后續教程中,我們將安裝和配置其他內容。
創建自己的OpenHAB事物和項目——顯示CPU溫度
最后,我想展示一下創建自己的模塊有多簡單。但是,此步驟是可選的,如有必要可以跳過。
OpenHAB知道兩種類型的對象:事物(Things)和項目(Items)。簡而言之,事物在控制面板中以磁貼的形式顯示,并且可以有多個項目(值、按鈕等)。在一個小示例中,我們將顯示CPU溫度:
在這個示例中,我們將創建一個帶有兩個項目(溫度和最后一次查詢的時間)的事物。
由于我們將為此執行shell命令,因此必須首先為此安裝一個附加組件。在“附加組件”->“綁定”下搜索Exec Binding(文檔)并安裝它。
然后通過SSH連接到Raspberry Pi。首先,我們創建一個腳本以讀取CPU溫度。這也可以是Python腳本、Java或C++程序。
sudo nano /etc/openhab2/scripts/cpu_temp.sh
它包含以下內容:
#! /bin/bashINPUT=$(/bin/cat /sys/class/thermal/thermal_zone0/temp)TEMP=$(echo "scale=3; $INPUT / 1000" | bc)echo $TEMP
按CTRL + O保存,然后按CTRL + X退出Nano編輯器。
我們現在授予必要的權限:
chmod +x /etc/openhab2/scripts/cpu_temp.sh
作為測試,你可以立即運行它,應該會顯示溫度:bash/etc/openhab2/scripts/cpu_temp.sh接下來,使用以下內容創建我們的事物:
sudo nano /etc/openhab2/things/cpu_temp.things
Thing exec:command:cpu_temp "CPU Temperatur" [command="bash /etc/openhab2/scripts/cpu_temp.sh", transform="REGEX((.*?))"]
保存并關閉編輯器后,我們創建項目:
sudo nano /etc/openhab2/items/cpu_temp.items
在這里,我們插入以下兩個項目:
StringCPUTEMPRaw"Temperature[%.1f°C]"(All){channel="execcpu_temp:output"}DateTime CPUTEMPLastExecution "Executed[%1$tH:%1$tM Uhr]" {channel="execcpu_temp:lastexecution"}
導航回控制面板后,你將看到上面顯示的視圖。
在您的網絡外部訪問面板
您還可以使用內部網絡名稱(http://openhabianpi:8080)從智能手機或平板電腦訪問控制面板。此外,還有適用于Android設備和iOS iPhone或iPad的應用程序。
然而,您可能還希望在外出時(例如,在移動中或在工作場所)訪問您的智能家居控制面板,但如果不采取預防措施,這是不可能的。為此,您需要做到以下幾點:
一方面,如果您沒有靜態IP地址,則需要一個使用動態域名系統(Dynamic Domain Name System,簡稱dDNS)服務的賬戶,如NoIP或DynDNS。
此外,您需要在路由器的“端口轉發”設置中為您的Raspberry Pi(Raspberry Pi)的內部IP地址激活端口(對我們來說為8080)。
另外,當全局IP地址更改時,必須通知dDNS服務。您的路由器可能提供此選項(如Fritz Box等路由器有相關設置),或者您可以在Raspberry Pi上執行此步驟。有關此步驟的教程可在此處找到。
但請注意,控制面板未受密碼保護,因此您很容易面臨安全風險。因此,除非您已采取適當的預防措施并確保自己的操作無誤,否則我不建議將面板設置為可從外部訪問。
-
智能家庭
+關注
關注
0文章
72瀏覽量
21552 -
智能生活
+關注
關注
5文章
38瀏覽量
18772 -
樹莓派
+關注
關注
118文章
1881瀏覽量
106243
發布評論請先 登錄
相關推薦
評論