姚仲敏,林大偉
(齊齊哈爾大學通信與電子工程學院,黑龍江 齊齊哈爾 161006)
責任編輯:許 盈
隨著互聯(lián)網(wǎng)的普及,尤其是物聯(lián)網(wǎng)技術(shù)的興起讓虛擬和現(xiàn)實密切聯(lián)系,把實物連接到網(wǎng)絡(luò)中的應(yīng)用越來越廣泛,隨著家用計算機、數(shù)字電視等當年昂貴的高科技消費品逐漸轉(zhuǎn)變?yōu)槟壳捌毡榈募矣秒娖?,成千上萬的老百姓家中都擁有此類產(chǎn)品。國家商業(yè)聯(lián)合會等機構(gòu)發(fā)布數(shù)據(jù)顯示,近幾年,國內(nèi)家電市場的營業(yè)額已超過幾千億元,所以大量的資本正不斷投入,物聯(lián)網(wǎng)等技術(shù)在智能家居系統(tǒng)應(yīng)用中也顯得更具價值。智能家居的研究有助于解決普通家庭中種類繁多的家用電器的統(tǒng)一、快捷管理的問題。所以本文利用廉價的51系列單片機通過JSP技術(shù)實現(xiàn)串口通信來遠程測控家用電器,更具實用性[1-3]。
通過用戶把個人計算機使用花生殼等域名解析軟件設(shè)置成小型服務(wù)器,就可以在任何有Internet的地方訪問個人計算機的JSP頁面,JSP頁面通過串口對51單片機進行讀寫操作,對家中溫度變化進行查詢,再通過PT2262/2272無線收發(fā)模塊驅(qū)動空調(diào)、電水壺等家用電器的繼電器開關(guān),框架如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
選用51系列單片機為主控核心,其特點是功耗低、價格低、可靠性高,通過串口線和家里的個人計算機連接,無線模塊選用PT2272/2262,DS18B20溫度傳感器也十分便宜,而且穩(wěn)定性好,還有繼電器開關(guān)和無線接收模塊相連接,此模塊價格便宜,而且是收發(fā)開關(guān)量的優(yōu)選,易于推廣。
硬件設(shè)備中較常用的接口是串口,而使用最為廣泛的是RS-232,它是20世紀后期由美國電子工業(yè)協(xié)會主導聯(lián)合知名計算機終端生產(chǎn)廠家共同制定的串口通信標準,而且是很全面的的通信協(xié)議,可以同時實現(xiàn)對數(shù)據(jù)的接收和發(fā)送功能。部分電路圖如圖2所示。
圖2 單片機連接串口和溫度傳感器電路
PT2262/2272是一套應(yīng)用非常廣泛的遙控芯片,而且價格十分便宜,車庫等遙控器大多采用此模塊。由于它們帶地址、數(shù)據(jù)編碼的功能,這給實現(xiàn)一個發(fā)射模塊、多個接收模塊的組網(wǎng)設(shè)計帶來了方便。發(fā)射芯片2262集成了載波振蕩器、編碼器和發(fā)射器,其構(gòu)成的發(fā)射電路非常簡單,接收芯片PT2272的數(shù)據(jù)輸出具有“暫存”和“鎖存”兩種模式,用戶可以根據(jù)使用場合選擇不同的接收模塊,比如在接收按鍵發(fā)來的信號時使用鎖存型接收,而此51系統(tǒng)發(fā)送數(shù)據(jù)時宜采用暫存型,部分電路圖如圖3所示。
圖3 發(fā)射和接收模塊部分電路
首先需要配置JSP與串口通信的壓縮包,可以在SUN公司的官網(wǎng)上免費下載rxtx-2.1-7-bins-r2.zip文件,解壓縮后,Windows系統(tǒng)配置如下:
1)將RXTXcomm.jar放到<jre_home>libext下;
2)把 rxtxSerial.dll動態(tài)庫放到 <jre_home>in下。
當編寫JSP代碼時把RXTXcomm.jar引入到相應(yīng)的工程中即可。同時要把家里的個人計算機設(shè)置成外網(wǎng)可以訪問的小型服務(wù)器Oray,提供了花生殼域名解析軟件,并且用戶可以購買商業(yè)域名得到更穩(wěn)定的服務(wù),具體可以根據(jù)運營商提供的資料進行設(shè)置,在此不再贅述。
其次是編寫服務(wù)器端代碼。JSP是基于Web的開發(fā)技術(shù),利用這一技術(shù)可以建立動態(tài)的、高性能的、安全的、跨平臺的先進動態(tài)網(wǎng)站。本系統(tǒng)采用myeclips為開發(fā)平臺,使用tomcat作為Web服務(wù)器,運行登錄界面和控制界面如圖4所示。
圖4 系統(tǒng)的用戶登陸和控制界面(截圖)
查詢溫度部分可以實時讀DS18B20傳到串口的數(shù)據(jù),也可以通過把歷史數(shù)據(jù)以30 s采樣間隔存放在MySQL數(shù)據(jù)庫中,用戶點擊查詢按鈕可以看到數(shù)據(jù)以及溫度曲線圖。本設(shè)計使用JfreeChart繪圖API,其優(yōu)點是開放源代碼的免費軟件,具有強大的功能和靈活性,在其官網(wǎng)下載開發(fā)包,并放在工程的lib目錄下。
本系統(tǒng)在80 m2的民居中進行了測試,由于家中有暖氣所以把空調(diào)設(shè)定為制冷模式并且最低溫度為10℃,當在實驗室登錄后點擊打開空調(diào)按鈕,10 min后點擊查詢按鈕,進行歷史查詢,起始時間為開空調(diào)的時間,可以看到空調(diào)開機后的環(huán)境溫度變化,如圖5所示。
圖5 溫度變化曲線圖
當用戶第一次訪問JSP頁面時,tomcat會把它進行一次實例化,所以顯示延時較長,當以后訪問時直接調(diào)用實例化對象,響應(yīng)速度會加快,當點擊控制頁面開關(guān)機按鈕時,會隨著客戶端請求發(fā)送一個參數(shù),在響應(yīng)請求時會拿參數(shù)進行判斷以執(zhí)行不同的寫串口程序,配置串口參數(shù)調(diào)用本地動態(tài)庫文件。此系統(tǒng)中主要有單片機中的C語言代碼和服務(wù)器端的JSP代碼。
單片機中的串口通信初始化代碼如下:
以上JSP代碼完成了將1以字符的形式寫到串口上,當用戶訪問時執(zhí)行,服務(wù)器端的單片機響應(yīng)中斷遙控打開用電器開關(guān)。
本智能家居控制系統(tǒng)在家中完成了試驗,顯示了家中的溫度變化,并成功地控制了空調(diào)的開關(guān)機操作,可以說效果比較顯著,為下一步更深入的研究打下了堅實的基礎(chǔ)。此系統(tǒng)的可移植性也比較好,適合用于其他遠程測控場所。但在實驗過程中也碰到了一些問題,如B/S架構(gòu)的系統(tǒng)對網(wǎng)絡(luò)速度的依賴比較高,在遠程登錄時頁面響應(yīng)比較慢等,相信隨著進一步研發(fā),問題會得到解決。同時,希望本實驗?zāi)転殚_發(fā)低成本低復雜度的家居控制系統(tǒng)提供一些新的思路。
[1]徐敏,盧周平.單片機原理及應(yīng)用課程教學改革與實踐[J].實驗室研究與探索,2006(1):180-182.
[2]賈少銳,王亞軍,薛紅梅,等.基于JSP的網(wǎng)絡(luò)控制家電軟件系統(tǒng)的實現(xiàn)[J].微計算機信息,2007,23(13):190-191.
[3]夏小東.基于單片機的遠程無線控制系統(tǒng)設(shè)計[J].煤礦機械,2011,32(8):222-224.