基於WSN 智慧家庭溫溼度監測系統設計論文
基於WSN 智慧家庭溫溼度監測系統設計論文
隨著物聯網技術的發展,比爾蓋茨的智慧家庭開始有機會走進尋常百姓家。該文主要介紹一種基於WSN技術實現家庭溫溼度環境監控的方案,本系統易於擴充套件,可以作為智慧科技家庭的框架,透過擴充套件模組,可以作為一個完整的智慧家庭解決方案。筆者對軟硬體方面進行了研究分析,著重分析系統架構模型,並對子模組的功能和工作原理做了簡單描述。該系統雲平臺採用最新的Node.js技術做支撐,系統基於RESTful風格構建。
1 引言
隨著社會的發展,人們對於生活居住條件的要求越來越高,人們希望可以像比爾蓋茨一樣隨時隨地掌控居住環境。近些年,由於資訊科技和感測器技術等的不斷髮展,智慧家庭正在悄悄走進千家萬戶。智慧家庭是在聯網裝置的基礎上,透過感測器採集資料,網路後臺獲取並存儲資料,透過特定的演算法對資料進行分析,將得到的結果返回給執行機構或通知使用者,從而為使用者提供一個智慧的居家生活環境。目前智慧家庭系統方案眾多,各有優缺點。
筆者在智慧家庭方面進行了研究,提出了一套易於擴充套件、高效能的智慧家庭系統。本系統是一個輕量級的但功能完整的智慧家庭系統。傳統的智慧家庭對裝置的控制大多基於區域網絡,只適應於家庭內部進行監測控制,本系統以家庭為單位,將所有家庭的資料採集到雲端儲存,便於以後的分析挖掘,使本系統可以更加智慧,同時系統採用分層的模組化架構,便於維護和擴充套件。本系統在設計的時候充分考慮安全和成本,力求在安全的前提下降低系統成本。
2 系統架構
2.1 整體架構設計
如圖1所示,每個家庭都透過 TCP/IP 協議接入智慧家庭雲平臺,在家庭和Internet 之間透過閘道器管理控制,家庭內部則採用 Zigbee 構建的區域網進行通訊,達到監測和控制的目的。使用者可以透過客戶端連線到雲平臺檢視家庭環境資料和控制家庭中的聯網裝置。雲平臺可以透過特殊的演算法對採集到的資料進行分析處理,層而達到越用越聰明的`目的。
Zigbee 是一種低功耗、短距離、低速短延時、簡單大容量、安全可靠的無線網路傳輸技術[1]。zigbee 具有強大的自組織網路效能,主要工作在ISM 頻段。其中,2.4GHz 頻段較為常見,並且免費使用。在每一個家庭中透過 Zigbee 構建區域網絡,達到安全可靠、成本低、低功耗的家庭網路的需求。
家庭閘道器採用Arduino 模組。Arduino 是一塊基於開放原始程式碼的 Simple I/O 平臺[2],因為 Arduino 是為業餘電子愛好者開發的,所以開發語言和開發環境具有簡單易懂的特點,同時Arduino 開發語言是建立在 C語言的基礎上,功能強大,可以盡情發揮想象[3]。Arduino 以其簡單、便宜、功能強大贏得了成千上萬電子工程師的喜愛。
客戶端採用 WEB 形式,降低開發成本並且具有很高的相容性。當模組增多,功能複雜的時候可以考慮開發APP,本身 APP 也可以透過 webview 等組建直接嵌入 WEB頁面,同時 WEB 也可以直接和微信打通,方便使用者使用。
2.2 雲平臺架構設計
本系統採用 REST 架構。REST(Representational State Transfer)表徵狀態轉移是從資源的角度看待整個網路[4],分佈在網路中的各種資源都是透過 URL(統一資源定位器)來唯一確定,應用程式可以透過 URL 來取得網路資源的表徵,從而改變其狀態。REST 架構希望透過統一的 Hypermedia Controls,實現標準的可擴充套件性高的標準語義及表現形式,從而達到無需人工干預、機器之間通用的互動協議邊的目的[5]。
物聯網(Internet of things)能夠讓被獨立定址的物體互相連通,其中涉及的聯網裝置非常龐大,物聯網包含的物體個數保守估計在千萬億級別,面對如此強大的資源世界,採用 REST 架構構建物聯網系統,在目前來看是最好的解決方案。
3 硬體實現
3.1 主控制器設計
主控制器採用Arduino+Zigbee模組,如圖,Arduino 擁有14個數字IO 介面和6個模擬 IO 介面,外部供電5V~9V 直流電源,輸出5V 和3.3V 直流電壓,採用 Atmega328微處理器控制器晶片。 Zigbee 模組使用 TI 公司的 CC2530晶片,此晶片具有增強型 8051CPU,系統內部可以程式設計快閃記憶體,且其具有4種不同的快閃記憶體執行模式模式,可直接在片上系統進行程式設計且程式碼移植性好,技術成熟,成本低等優勢讓其成為目前 ZIGBEE 開發的主流晶片。
3.2 溫溼度監測模組
透過DHT11溫溼度感測器實時採集資料並透過 Zigbee 網路傳輸給閘道器。DHT11具有快速響應、全程測量、數字輸出等優點。
3.3 繼電器控制模組
主要由繼電器和簡單的電路構成,用於接收動作命令控制大功率家電裝置。
3.4 電路檢錯模組
電路檢錯模組獨立封裝,用於檢測裝置是否正常,檢錯電路工作原理:協調器獲得開燈指令後,如果電路輸出為高電壓狀態,即裝置損壞或電路接觸不良等,則客戶端和主控制器檢錯指示燈亮,提醒使用者檢查電路情況。
4 軟體實現
4.1 硬體系統工作流程
裝置開始執行先進行初始化,然後嘗試連線到雲平臺,如果沒有連線成功則寫入日誌並再次嘗試,三次之後若還沒有成功則對使用者做出反饋。硬體裝置成功連線到網路之後開始等待指令,得到指令之後立即執行指令,成功則繼續等待執行下一條指令,如果執行不成功則記錄到日誌並對使用者做出反饋。使用者可以隨時檢視裝置日誌,方便發現問題並解決問題。
4.2 雲平臺設計實現用
伺服器採用 Node.js 技術實現。Node.js 是一個可以讓伺服器執行 javascript 指令碼的平臺,使 javascript 可以像 PHP、Perl、Ruby、Python 等語言一樣不需要依賴於瀏覽器執行。 Node.js 是為實時 WEB 而生,在構建之初就考慮在實時響應、超大規模資料要求下架構的可擴充套件性。
Node.js的特點是單執行緒、非同步 IO、事件驅動,這種程式設計模型的優點是效能優異、開發效率高[10]。目前 Node.js 憑藉其優秀的特性吸引了一大批開發者和公司,形成了一個龐大的生態系統。成千上萬的第三方模組讓 Node.js 開發更加高效,因此我們選擇採用 Node.js 技術構建智慧家庭系統的伺服器平臺。
4.3 客戶端設計實現
透過伺服器提供的 API,可以很方便實現各個平臺的客戶端。為了減少開發週期和儘可能多的適配客戶端,我們選擇先實現自適應的 WEB 客戶端。採用WEB 技術實現客戶端,可以一次開發多種
客戶端適配,不同尺寸、不同平臺的裝置都可以得到一個完美的呈現。
5結束語
本文是在參考了其他智慧家庭實現方案的基礎上,進一步簡化流程和最佳化操作之後設計的一種智慧家庭解決方案。相比以往Zigbee網路的智慧家庭系統,主要增加了HTTP協議支援,讓使用者隨時隨地掌控家庭;採用RESTful風格設計,方便裝置連線和二次開發,加入雲平臺的概念,給智慧家庭帶來無限可能。目前系統存在的不足是伺服器端無法直接發起會話,後期會透過mqtt協議解決這個問題。