張彬彬
摘要:智能家居的控制系統(tǒng)是一種結(jié)合了計算機通信技術(shù),自動控制技術(shù)對與生活相關(guān)的家居設(shè)備進行實時的監(jiān)控的系統(tǒng)。該文提出了一種智能家居控制系統(tǒng)的設(shè)計方案,用戶可以通過瀏覽器IP地址訪問的形式訪問基于STM32f4微控制器和μC/OS-II操作系統(tǒng)搭建的嵌入式Web服務(wù)器,獲取家居設(shè)備的實時運行狀態(tài),并對智能家居設(shè)備實時控制。此方案可以實現(xiàn)對智能家居設(shè)備的遠程監(jiān)控,有效節(jié)省用戶的時間成本。
關(guān)鍵詞:智能家居μC/OS-II實時操作系
;STM32;Web服務(wù)器
1背景
近些年來,智能終端設(shè)備的發(fā)展越來越快,人們在享受智能家居帶來的便捷的同時,遠程控制家居設(shè)備的狀態(tài)也成為人們提高生活效率的追求。由于人們對于手機,電腦等智能控制設(shè)備性能的高要求,在客戶端安裝應(yīng)用的方式顯然會增加客戶端的負擔。因此,在服務(wù)器端編寫好控制程序,當用戶需要的時候直接加載好運行程序,不需要的時候也不會影響用戶的設(shè)備性能,是一種解決此問題的好方案。
在智能家居控制系統(tǒng)中搭建好嵌入式web服務(wù)器,只要能連入Internet網(wǎng),用戶就可以通過瀏覽器訪問IP地址的形式對智能家居設(shè)備的運行狀態(tài)進行實時的監(jiān)控,不僅可以節(jié)省用戶智能設(shè)備的負擔,而且了解智能家居實時狀態(tài),可以遠程控制智能家居設(shè)備的運行,節(jié)省生活時間成本,提高生活效率。
2系統(tǒng)總體結(jié)構(gòu)設(shè)計
2.1嵌入式Web服務(wù)器簡介
嵌入式Web服務(wù)器就是在嵌入式設(shè)備中實現(xiàn)的小型Web服務(wù)器,對硬件的要求相對較低,可以通過Inter-net網(wǎng)絡(luò)為用戶提供服務(wù)。
2.2總體框架設(shè)計
智能家居的控制系統(tǒng)是智能家居控制網(wǎng)絡(luò)的核心,是于互聯(lián)網(wǎng)通信的關(guān)鍵部位。該系統(tǒng)可以提供外部的物理接口與智能家居設(shè)備相連接,并提供智能家居設(shè)備與控制設(shè)備的網(wǎng)絡(luò)通信。
系統(tǒng)的總體框圖如圖1所示,該系統(tǒng)由嵌入式Web服務(wù)器、智能家居設(shè)備、用戶智能設(shè)備上的瀏覽器三個部分組成。用戶通過瀏覽器IP地址訪問的形式對嵌入式Web服務(wù)器進行訪問,嵌入式Web服務(wù)器把采集到的設(shè)備狀態(tài)返還給用戶,用戶可以根據(jù)實際需要進行實時操作。
3嵌入式Web服務(wù)器的設(shè)計
嵌入式Web服務(wù)器是智能家居系統(tǒng)的核心控制組件,是與外部網(wǎng)絡(luò)通信的橋梁。本文提到的嵌入式Web是基于STM32和μC/OS-II操作系統(tǒng)開發(fā)的,該系統(tǒng)的整體結(jié)構(gòu)圖如圖2所示:
3.1μC/OS-H操作系統(tǒng)的移植
嵌入式實時操作系統(tǒng)的移植是嵌入式Web服務(wù)器開發(fā)的第一步,移植一個操作系統(tǒng)能使嵌入式Web服務(wù)器的開發(fā)更簡便,更有效的利用硬件的存儲空間。μC/OS-II操作系統(tǒng)是一款開源的,小巧的,可移植的實時操作系統(tǒng),可進行多任務(wù)。在進行μC/OS-II操作系統(tǒng)的移植時,需要對μC/OS-II操作系統(tǒng)進行適當?shù)男薷摹&藽/OS-II操作系統(tǒng)的移植結(jié)構(gòu)如圖3所示:
從圖中可知μC/OS-II移植結(jié)構(gòu)的可知各部分的關(guān)系,μC/OS-II系統(tǒng)移植到硬件上的文件包括os_cpu.h、os_cup_c.c和os_cpu_a.asm這幾個文件。移植文件需要大改動的就是頭文件的修改,還有向量表中的PendSV_Handler和SysTick_Handler的改動。
3.2 TCP/IP協(xié)議棧的移植
TCP/IP協(xié)議是電子設(shè)備與Internet網(wǎng)絡(luò)連接以及進行數(shù)據(jù)傳輸?shù)臉藴?,本文采用的是LwIP協(xié)議棧。LwlP是一款開源的TCP/IP協(xié)議棧,它的運行條件非常低,只需要10kb左右的RAM和40k左右的ROM,在嵌入式設(shè)備中使用不會占用太多的資源。LwlP考慮到移植的問題,把需要配置的文件放在了1wipl.4.1\arch文件目錄下,在移植的時候需要對相關(guān)的設(shè)置進行修改。Lwip1.4.1\src\api文件中有操作系統(tǒng)調(diào)用應(yīng)用層的API函數(shù)。Lwipl.4.1\src\core是1wip協(xié)議棧對于通信協(xié)議的實現(xiàn)。Lwip1.4.1ksrc\include\netif保存的是與底層硬件結(jié)合比較緊密的函數(shù)。這些文件都是c語言寫的源文件,它們的頭文件也存在與include文件中。在實際的應(yīng)用過程中可根據(jù)實際的要求對這些文件進行修改。
3.3公共網(wǎng)關(guān)接口程序的開發(fā)
CGI(Common Gateway Interface)公共網(wǎng)關(guān)接口程序是運行在服務(wù)器上的外部程序與Web服務(wù)器之間的接口標準,是Web服務(wù)器與外部通信的關(guān)鍵。CGI可以處理網(wǎng)頁表單的輸入信息,服務(wù)器會產(chǎn)生相應(yīng)的響應(yīng),使網(wǎng)頁具有了交互功能。
CGI程序的運行過程:1)用戶通過瀏覽器訪問將頁面的表單信息提交給Web服務(wù)器。2)服務(wù)器接收到表單數(shù)據(jù)后交給CGI程序。3)CGI程序?qū)π畔⑦M行處理,把處理結(jié)果發(fā)送給服務(wù)器。4)服務(wù)器將結(jié)果返還給用戶,用戶通過瀏覽器查看結(jié)果。
4控制頁面的設(shè)計
CGI程序與用戶信息交換界面是嵌入在Web中的HTML文件,因此需要進行HTML文件的編程。考慮到頁面內(nèi)的信息將要對智能家居設(shè)備進行控制,HTML表單中提交的信息將以數(shù)值的形式將信息傳送給智能控制設(shè)備,控制設(shè)備對智能家居設(shè)備進行相應(yīng)的開關(guān)操作。
首先,在后臺對表單提交的用戶名進行校驗,若通過信息驗證,則返回html控制頁面。用戶提交表單信息后,獲取表單中的name屬性值,在后臺進行驗證。驗證通過后,用戶可以在控制界面對硬件進行控制,點擊按鈕,觸發(fā)頁面腳本文件,與后臺進行交互??刂平缑嫒鐖D4所示。
用戶和服務(wù)器交互有三種方式:1)地址欄URL地址的方式;2)超鏈接的方式;3)表單提交的方式。用戶傳輸表單數(shù)據(jù)是form標簽中submit按鈕提交的,form上傳數(shù)據(jù)的方式有兩種,分別是form的get屬性和post屬性。Form的屬性method可以選擇提交的方式,action屬性指向后臺的地址。Get提交方式信息會直接出現(xiàn)在地址欄中,對提交信息一目了然,且地址欄存儲有限,不適合提交大量數(shù)據(jù)。Post提交方式提交信息不回出現(xiàn)在地址欄中,可以提交大體積數(shù)據(jù),因此更安全??紤]到用戶提交的信息量不是太大,用戶使用的設(shè)備也為個人私有設(shè)備,采用get提交方式就可以提交用戶操作的數(shù)據(jù)。該登錄控制系統(tǒng)是在局域網(wǎng)絡(luò)下面進行的,若要在Internet網(wǎng)絡(luò)下訪問,還必須申請一個代理IP地址,國內(nèi)的服務(wù)器代理阿里云與騰訊云都比較便宜,后續(xù)的外網(wǎng)訪問也可以實現(xiàn)。
5結(jié)束語
在互聯(lián)網(wǎng)高速發(fā)展的今天,大部分行業(yè)都在向互聯(lián)網(wǎng)靠攏,都在發(fā)展互聯(lián)網(wǎng)+產(chǎn)品。因此,在如今人們生活節(jié)奏如此快的情況下,智能家居的遠程控制極大地減少了用戶的時間成本。伴隨著智能終端的快速發(fā)展,終端的出現(xiàn)形式也各不相同,有手機、電腦、平板、穿戴智能設(shè)備、VR設(shè)備等。無論智能終端的形式怎樣變化,只要有瀏覽器的地方鏈接Internet網(wǎng)絡(luò)就能訪問智能家居,這種方式的改變將極大提高人們的生活舒適度。在后續(xù)的功能擴展中,也可以加入更多的智能家居設(shè)備。