智慧家居系統的開源嘗試

abel_cao發表於2018-08-03

版權宣告:本文為半吊子子全棧工匠(wireless_com,同公眾號)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/81417209

隨著智慧音響的熱賣,各種各樣的智慧家庭解決方案也如雨後春筍,但大多數都需要專業人員和熟練工作人員來安裝/部署這些解決方案。此外,這些解決方案大多無法順利融入已有的家庭環境(所謂的後裝市場)。為了彌合消費者和專家之間的差距,並允許在不對建築物進行實際改動的情況下融入任何現有的家庭環境,需要一個具有無縫整合潛力的模組化智慧家居方案。

本文的嘗試是使用開源軟體和硬體,使開發能夠在現有的開源社群內繼續進行。基於模組化設計和靈活性,這種系統可以在沒有專業技能或環境改變的情況下安裝和配置。

簡單定義一下,智慧家居系統是電子裝置的整合(包括驅動非電子裝置,例如百葉窗)並通過智慧系統或使用者通過藍芽或Wi-Fi等通訊媒介對家庭環境進行監測和控制,並由計算機進行協調工作。

在這種相互關聯的環境中,任務可以變得更加直觀和有效。家庭網路處理所有的通訊,使用者可以通過個人電腦、智慧手機或平板電腦在家中或遠端地點通過網際網路訪問該系統。資訊科技與家庭環境的融合使得系統和裝置能夠在便捷、能源效率和安全方面發揮作用。因此,智慧家居的整體架構包括與家庭網路、使用者和行業服務提供商相連的家庭裝置。

現有的智慧家居系統是一種特殊的設計,以適應特定的消費者家庭環境和需求。這些系統在設計上很複雜,不夠靈活,無法滿足習慣要求,而且往往嵌入家庭的物理結構。它們也很貴,阻礙了普通消費者的採用,並限制了重新配置和擴大的可能性,以滿足消費者不斷變化的需求。此外,開源軟體被排除開外也阻礙了智慧家居系統的發展和擴充套件。

為了解決這些問題,這裡提出了一種基於無縫整合、開源軟體、可重構和可擴充套件的智慧家居系統。為了作為一個可以繼續進行研究的平臺,它應該最大限度地利用開放原始碼的硬體和軟體,還應該允許感測器和執行器的多種配置,並且易於修改,從而形成模組化設計。這將使第三方社群和每一個客戶能夠重新配置系統,使之符合每個獨特家庭的要求。

根據這些考慮,可以嘗試在樹莓派2代開發板上執行(圖1)。許多不同的作業系統可以被載入到樹莓派2代上,其中包括Linux 和 Android,這兩個系統都是開源作業系統。

 

圖1 | 一個樹莓派2代開發板

系統的其餘部分是圍繞個樹莓派2代設計的,它使用了模組化的主/從系統設計。主節點和所有從節點通過家庭 Wi-Fi 路由器連線和通訊。使用者可以通過 wifi 在本地訪問該系統,或者通過網際網路進行遠端訪問。 在這裡,某些環境感測器和電子執行器與每個從節點保含在一起。使用者介面是作為本地託管的網路伺服器開發的,或者時安裝在智慧手機上的某些應用程式,使得系統可以在幾乎所有裝有瀏覽器的裝置中進行控制。

圖2中可以看到一個簡單的對角線表示。紅色箭頭表示只在主節點和使用者裝置之間傳輸通訊,而藍色箭頭表示的是隻在主節點和從節點之間傳輸通訊。

 

圖2 | 整個系統佈局示意圖

開源嘗試分為以下幾個方面:

  • 系統架構

  • 系統網路

  • 系統硬體和軟體

  • 硬體和使用者介面

系統架構

系統架構只使用兩種型別的模組: 主管引擎(SE)和控制引擎(CE) ,這兩種模組通過通訊網路相互連線。

640?wx_fmt=png

圖3 | 系統架構

如圖3所示,該系統具有分散式的特性,並且是在兩個層次的組織結構中。 SE是上層模組,它們基本上執行監督任務。 CE是通過輸入和輸出裝置與物理世界互動的底層模組。

系統網路

架構的一個關鍵要素是連線各種系統模組的通訊網路。這個網路是至關重要的,因為它可能會影響系統的幾個特性,例如效能、靈活性和成本。這裡使用 MQTT,一個 m2m/IoT的連線協議。

我們希望網路能夠簡單地實現在CE上的實現,而不需要新增任何特定的硬體或大大增加這些模組的處理和記憶體需求。 如果沒有這種關注,它們的成本就會大幅增加,整個系統也會發生同樣的情況,因為CE數量很多。

系統硬體和軟體

CE非常簡單,每個都執行一個專門的任務(照明控制,數字輸入 / 輸出,紅外遙控等)。 基本上,他們是有著基本的微控制器(PIC)和 I/O的硬體。這與之前的原型形成了鮮明對比,在這個版本中,所有的智慧都是在SE中建立起來的,而CE只不過是 I/O相關硬體。這節省了微控制器,但在SE中的軟體非常複雜(因為有幾個任務是實時的,因此排除了作業系統核心的使用,並迫使任務排程通過嚴格的中斷時間來完成)。 這個新的結果通過將軟體的基本功能從SE解耦到CE中,使軟體開發變得相對簡單。

SE擁有一個更復雜更強大的控制器(80×86,ARM 相容微處理器)。它們的功能是實現系統的智慧,正如在PC介面中程式設計的那樣,這裡使用樹莓派作為SE,它是一個小巧而且價格實惠的計算機,其特點是在晶片上的Broadcom 系統(SOC)中包括了一個ARM-compatible 的 CPU。

對於CE來說,可以使用ESP8266,這是一個低成本的 Wi-Fi 晶片,具有完整的TCP/IP堆疊和微控制器功能,可以通過輸入和輸出裝置來控制與物理世界互動的底層模組。

此外,一個專門的開源 Arduino 軟體IDE使得編寫程式碼並上傳到CE會很容易。它執行在 Windows、 Mac OS x 和 Linux上。 環境是用Java 編寫的,基於 Processing 和其他開源軟體。

硬體和使用者介面

這裡所嘗試的系統硬體包括了具有Wi-Fi功能的樹莓派2代和ESP8266、連線到數字輸出以供切換的繼電器和一部能夠使用Wi-Fi的電話。這些硬體易於使用和實現,並且也很容易獲得。

這個系統使用一個樹莓派2代作為一個專門構建的主節點,以及專門構建的從節點與家中的電器整合。樹莓派2代作為資料庫、介面和web伺服器。 它控制著從節點。每個從節點連線到一個或多個類似型別的裝置,並將根據主節點的命令對這些裝置進行控制。 主從之間的通訊是無線通訊。

由於網路中的裝置、感測器和執行器種類繁多,家庭自動化基礎設施通常相當複雜。 在使用者和系統之間設計一個介面的挑戰之一是如何使使用者能夠很容易地將其家庭中的物理裝置與使用者介面中的適用元素聯絡起來。

智慧手機的崛起為思考如何與網際網路互動開創了一個新的移動先例,但是專門設計的物聯網使用者介面可以為使用者提供最好的體驗。

小結

本文嘗試的系統具有靈活性,有可能整合所有家用裝置。基於開源軟體和模組化設計,這種設計能夠無縫地整合到任何家庭環境中。 然而,這個解決方案中仍然有許多領域需要評估,比如安全性,更多的連線選項,更具可擴充套件性,對CE模組的電源管理,穩定性,以及一個自適應的使用者介面等等。

 


相關文章