基于PIC32上實現的TCP/IP網絡協議和zigbee無線傳感器網絡的智能家居系統
一 項目背景
隨著物聯網的熱潮的到來,2010年國內許多省市紛紛發布的《物聯網發展規劃》,物聯網附屬領域智能家居的發展也得到了非常大程度的推進。由于物聯網的核心和基礎仍然是互聯網,所以在項目設計中我們將智能家居內部的傳感器網絡連接至控制核心PIC32,PIC32通過控制網絡模塊,按照TCP/IP協議來實現PIC32的Web服務器功能,使得可以通過手機、電腦的瀏覽器來遠程訪問該web服務器,并以點擊鏈接的形式,控制用電器。這種嵌入式Web服務器的低功耗和高可靠性,使其特別適合作為家庭小型Web服務器控制。
二、需求信息
擬采用的平臺:
cerebot 32M×4
兩個Digilent PMOD 產品:
PmodNIC——網絡接口控制器
PmodSF-Serial Flash Rom,16或128Mbit
三、項目總概
此次項目,我們計劃通過網絡實現對家居環境的遠程監控。
- 通過分布于房屋各處的傳感器對房屋內外的環境參數進行采集,獲得的數據通過ZigBee網絡或有線連接匯總到此次項目的總控板Cerebot_32MX4上;
- Cerebot_32MX4按照TCP/IP協議來實現與Web服務器的鏈接,通過Web達到遠程終端設備(PC、手機等)同Cerebot_32MX4間的數據傳輸;
- Cerebot_32MX4可以將采集到的數據傳輸給PC和手機,讓人們在任何能夠連接上網絡的地方就能了解家中的情況,并對家中的設備進行遠程遙控,比如:控制草坪、花園中的灑水系統給花草澆水。在到家前提前10分鐘開啟空調,讓到家時能夠馬上享受到舒適的溫度。同時,人們在家時也可以利用該方法控制身邊的設備,使房屋實現智能化;
- Cerebot_32MX4也可以自己對采集到的數據進行處理,實現家中設施的自動控制,同時可以通過PC、手機對自動控制的參數進行設置
系統整體框圖如下:
四、硬件設計
(1)家庭內部信息的采集擬采用Zigbee節點組成傳感器網絡,其中一個Zigbee節點作為總的傳感器采集點,與PIC32有線連接,其余Zigbee節點采用無線通信方式與總節點進行傳感器信息的傳遞。
ZigBee技術是一種短距離、低功耗的無線通信技術,其特點是近距離、低復雜度、自組織、低功耗、低數據速率、低成本。主要適合用于自動控制和遠程控制領域,可以嵌入各種設備。
本項目中,無線通信技術的應用將很好的解決數據采集點分散、設備不集中的問題。
ZigBee在低耗能方面表現突出,明顯由于藍牙跟WIFI。有關材料表明,2節5號干電池可支持1個節點工作6~24個月,甚至更長。因此,通過配置小型太陽能電池板的方式即可對ZigBee節點進行充電,保證其正常的運行。
ZigBee具有大規模的組網能力,非常適合于大規模的數據采集,解決了智能家居系統中數據采集點多的問題。
(2)傳感器網絡連接至PIC32控制板,PIC32通過控制網絡模塊,按照TCP/IP協議來實現PIC32的Web服務器功能。
TCP/IP通信協議以其高效、可靠、通用性獲得了世界范圍的廣泛使用。
本項目采用Cerebot 32M×4為控制核心,在其中通過軟件方法實現TCP/IP協議的通信功能,通過進一步的擴展,在其上搭建起HTTP,FTP,TELNET等高級網絡功能。
利用TCP/IP協議中的UDP、IP、ARP及簡單的應用層協議實現單片機的網絡互連,提高數據傳輸的速度,保證數據傳輸的正確性,同時擴展數據傳輸的有效半徑。
TCP/IP協議是一套把因特網上的各種系統互連起來的協議組,保證因特網上數據的準確快速傳輸。參考開放系統互連(OSI)模型,TCP/IP通常采用一種簡化的四層模型,分別為:應用層、傳輸層、網絡層、鏈路層。
①應用層
網絡應用層要有一個定義清晰的會話過程,如通常所說的Http、Ftp、Telnet等。我們用單片機系統傳遞來自Ethernet和數據終端的數據,應用層只對大的數據報作打包拆報處理。
②傳輸層
傳輸層讓網絡程序通過明確定義的通道及某些特性獲取數據,如定義網絡連接的端口號等,實現該層協議的傳輸控制協議TCP和用戶數據協議UDP。
③網絡層
網絡層讓信息可以發送到相鄰的TCP/IP網絡上的任一主機上,IP協議就是該層中傳送數據的機制。同時建立網絡間的互連,應提供ARP地址解析協議,實現從IP地址到數據鏈路物理地址的映像。
④鏈路層
由控制同一物理網絡上的不同機器間數據傳送的底層協議組成,實現這一層協議的協議并屬于TCP/IP協議組。這部分功能由單片機控制網卡芯片實現。
- 控制核心PIC32根據web默認配置將采集的傳感器信息分析并進行自動控制,用戶又可通過手機、電腦的瀏覽器來遠程訪問該web服務器,并以點擊鏈接的形式,控制用電器。
- 軟件流程
PIC32主程序循環檢測ENC28J60芯片獲取的數據包,將廣播報文和目標地址為本機地址的數據包接收進行下一步的處理。由于本項目實現的是TCP/IP通信,而建立起TCP連接最主要的用途是實現HTTP通信。PIC32接收到的待處理數據會經過數據處理函數,若檢測到有TCP連接建立的請求,則進行相應處理。當建立了TCP連接后,就可以通過TCP連接發送和接收HTTP通信數據。
TCP連接建立的“三次握手”流程和有限狀態機如下:
PIC32在接收到正確的HTTP GET請求后,便進行相應處理,返回用戶需要的網頁,這樣就實現了一個簡單的web server應用。
本軟件流程圖僅以簡單控制家電的通斷電為例進行繪制,此處流程圖僅是軟件的設想方案,具體能否實現仍需實際測試。
評論