沈舒海,王曉東 ,胡珊逢,張陳梅
(寧波大學信息科學與工程學院,浙江 寧波315211)
近年來,物聯(lián)網成為全球關注的熱點領域,被認為是繼互聯(lián)網之后最重大的科技創(chuàng)新。物聯(lián)網通過射頻識別(RFID)、紅外感應器、全球定位系統(tǒng)、激光掃描器等信息傳感設備,按約定的協(xié)議把任何物品與互聯(lián)網連接起來進行信息交換和通訊,以實現智能化識別、定位、跟蹤、監(jiān)控和管理。物聯(lián)網的發(fā)展也為智能家居引入了新的概念及發(fā)展空間,智能家居可以被看作是物聯(lián)網的一種重要應用?;谖锫?lián)網的智能家居,表現為利用信息傳感設備(同居住環(huán)境中的各種物品松耦合或緊耦合)將家居生活有關的各種子系統(tǒng)有機地結合在一起,并與互聯(lián)網連接起來,進行監(jiān)控、管理信息交換和通訊,實現家居智能化。其包括:智能家居(中央)控制管理系統(tǒng)、終端(家居傳感器終端、控制器)、家庭網絡、外聯(lián)網絡、信息中心等。中國智能化住宅的發(fā)展,在經歷了近10 年的探索階段之后,建筑面積目前已達到400×108m2,預計到2020 年還將新增300×108m2[1]。
本文基于GPRS 無線網絡及單片機控制技術提出了一種新型、低成本、方便實用的遠程家居控制系統(tǒng),面向智能家居行業(yè),具有廣闊的市場發(fā)展前景,對改善民生、方便百姓、提高生活質量和幸福指數的巨大促進作用[2]。
本系統(tǒng)所設計的功能即實現通過GPRS 網絡,用戶只需要對手機軟件操作即可控制家庭里各種家電的開關以及窗簾、晾衣架的拉合、伸縮。
功能示意圖1 所示。
圖1 系統(tǒng)功能示意圖
系統(tǒng)結構如圖2 所示。
圖2 系統(tǒng)結構示意圖
1.3.1 主控制器
出于性價比及系統(tǒng)功能的考慮,本系統(tǒng)選用Silicon Labs 公司的51 系列單片機C8051F040 為主控制器。C8051F040 是目前應用較多的一類高性能單片機[3],具有運算主頻高(最高可達到40 MHz)、內置模塊多(CAN 控制器、高速串行端口UART、SPI 模塊等)、事物處理能力強等特點,對于一般運算處理,完全能夠滿足要求[4]。芯片上有1 個12 bit 多通道ADC,2 個12bit DAC,2 個電壓比較器,1 個電壓基準,1 個32 kbyte 的FLASH 存儲器,與MCS-51 指令集完全兼容的高速CIP-51 內核,峰值速度可達25 MI/S,并且還有硬件實現的UART 串行接口和完全支持CAN2.0A 和CAN2.0B 的CAN 控制器。C8051F040在I/O 端口方面有較大的選擇空間,方便系統(tǒng)的拓展,除具有4 個標準的8051 端口P0、P1、P2、P3 外,還附加了4 個端口P4、P5、P6、P7。這64 個多功能的I/O 端口每個引腳都可以被配置為漏極開路或推挽輸出方式,并且每個I/O 端口都支持位操作。
系統(tǒng)啟動之后,主控制器控制GPRS 通信節(jié)點撥號上網,完成撥號之后進入實時接收指令工作模式,對手機客戶端傳送過來的指令進行辨別,執(zhí)行相應的操作,并進行反饋確認,確保系統(tǒng)工作準確無誤。
1.3.2 繼電器
本系統(tǒng)選用4 路T73_SRD_5V 繼電器模塊,該模塊觸點負載為10 A/250 V AC,滿足大多數家庭電器的工作電流及電壓。輸入信號支持3.3 V 或5 V,適用于單片機I/O 端口。該模塊電路設計為輸入高電平斷開、低電平觸發(fā)。
選用繼電器模塊的目的為控制家庭電器的電源開關,通過I/O 端口向繼電器模塊輸入高低電平即可控制其觸點的吸合、斷開,從而控制電器的開關。
1.3.3
本系統(tǒng)選用42BYG250-33 兩相步進電機步進電機,步進電機在運行中精度沒有積累誤差的特點[5],適用于本系統(tǒng)。該步進電機有著體積小、轉動平穩(wěn)、噪聲小的優(yōu)點,適用于家庭環(huán)境。步進電機驅動器采用TB6560 電機驅動模塊,該模塊其中三個端口連接單片機的I/O 端口:使能端(EN)、正反轉輸入端(CW)、脈沖輸入端(Clk)。
當使能端為低的時候,步進電機鎖定,窗簾不能拉合;使能端為高時,單片機向脈沖輸入端輸入脈沖信號,即可驅動電機轉動,達到窗簾拉合、晾衣架伸縮的目的。正方轉輸入端控制電機的轉動方向。
1.3.4 顯示模塊
本系統(tǒng)選用一塊2.4 inch 320×240 TFT 彩色液晶,設計功能為顯示各種家具的的當前狀態(tài);在系統(tǒng)聯(lián)調時,由于RS232 串口不能實現一接二,不能用PC 機顯示系統(tǒng)各模塊間的數據的傳輸,因此可以用液晶模塊接入單片機,通過其顯示收發(fā)數據,使得調試系統(tǒng)更加便捷準確。
1.3.5 GPRS 通信節(jié)點
本系統(tǒng)采用GPRS 網絡作為無線通信方式,這種通訊方式穩(wěn)定性強,面對將來的3G 網絡可平滑技術升級,耗費流量較少,同時GPRS 網絡支持TCP/IP 協(xié)議,使得無線數據的傳輸變得更加輕松,更容易擴展功能[6]。選用了BENQ_M23_GPRS 模塊作為通信系統(tǒng)中安放在家庭的通信節(jié)點。BENQ公司的M23 模塊是目前市場上的主流GSM/GPRS模塊之一,可以應用于GSM 短信息通信以及語音通信。其中,短信息適合對實時性要求不高,數據量不大的數據通信。由于支持GPRS 和嵌入式的TCP/IP,M23 還可以用于實時性要求較高,數據量相對較大,傳輸速度相對較快的數據通信領域[7-8]。模塊與主控制器通過RS232 串口通信,由主控制器控制其向公網服務器撥號,撥號成功后系統(tǒng)進入實時工作狀態(tài),通過該通信節(jié)點實現手機客戶端與主控制器之間指令包以及反饋確認包的傳輸。
1.3.6 服務器
本項目采用一臺獨立的基于Linux 操作系統(tǒng)的PC 服務器,具有公網的IP,分別與GPRS 模塊和手機客戶端進行通信。該服務器是在Linux 操作系統(tǒng)下使用C 語言的網絡編程,用GCC 編譯器進行命令語編譯和運行,通過可靠的面向連接的TCP 協(xié)議通信。服務器主要功能是:GPRS 模塊和手機客戶端使用TCP 協(xié)議連接服務器,服務器將GPRS 模塊的動態(tài)IP 發(fā)送到手機客戶端,建立一個提供數據透明傳輸的平臺,使得手機客戶端與GPRS 模塊進行點對點通信。該服務器在本項目通信中起著連接任務的中間環(huán)節(jié),手機客戶端與GPRS 模塊通過服務器可以時時地通信,避免了重復撥號、兩點不同時在線等問題。
1.3.7 手機客戶端
本系統(tǒng)的手機客戶端是基于J2ME 移動開發(fā)的環(huán)境下的JAVA 軟件平臺,并用SUN 發(fā)布的官方版MIDlet 開發(fā)工具J2ME Wireless Toolkit[9]集成手機模擬器(Emulator)來進行程序測試工作,這款手機模擬器適合SUN 公司的手機,由于各大手機廠商都擁有多種型號的手機模擬器,所以可以根據自己所用的手機型號選擇相應的手機模擬器進行編程即可使用??蛻舳酥饕δ苁桥cGPRS 模塊進行通信,遠程控制家居,要實現這樣的功能需要解決兩大問題,(1)GPRS 模塊每次撥號成功后所獲得的動態(tài)IP地址是不同的,客戶端要如何獲得該IP 地址;(2)使用什么傳輸層協(xié)議來進行與GPRS 模塊通信才能確保通信的可靠和安全以及程序的優(yōu)化。
針對第1 個問題本系統(tǒng)建立一個獨立的、總是在線的公網PC 服務器,GPRS 模塊撥號成功獲得一個動態(tài)IP后,服務器可以保存GPRS 模塊的當前的IP,同時把發(fā)送給手機客戶端,手機客戶端需要開通一個線程與服務器通信時時得到GPRS 模塊的IP,根據這個IP 與GPRS 模塊進行時時點對點的通信。針對第2 個問題本系統(tǒng)在選取通信協(xié)議時鎖定在UDP 與TCP 傳輸層協(xié)議,UDP是面向無連接的,可靠性較差,但是速度快,實現簡單,而本系統(tǒng)要求手機客戶端準確可靠地將指令發(fā)送到GPRS 模塊,進行一個遠程控制操作,因此選用面向連接的、可靠安全的TCP 協(xié)議[10]。這樣手機客戶端需要開通另外一個線程與GPRS 模塊通信,把用戶信息確切的傳達給GPRS 模塊,讓單片機進行相應的操作。實際程序編程的流程圖如圖3。
圖3 手機客戶端編程流程圖
主控制器通過發(fā)送AT 到BENQ_M23_GPRS 模塊控制其撥號操作,連接上公網服務器之后服務器分配給GPRS 模塊一個臨時IP 地址,手機客戶端便可以通過這個IP 地址與其進行透明傳輸。部分AT指令如下:
在BENQ_M23_GPRS 模塊成功撥號連接上公網服務器后便可獲得一個臨時IP,每次撥號獲得的IP 是不同的,但是這個IP 會儲存在服務器上面。手機客戶端連接上服務器后,服務器會把這個IP 地址發(fā)送給手機客戶端,這樣手機客戶端便可以根據這個IP 地址與GPRS 模塊進行時時的點對點通信。
手機客戶端設定好每個操作分別有自己特定的字符串發(fā)送到GPRS 模塊,如開燈操作對應的字符串為:kaideng,該字符串發(fā)送到GPRS 模塊后,通過RS232 串口發(fā)送給主控制器,主控制器可以進行字符串對比,即運行Strcmp 函數,如果傳輸過程沒有出現亂碼等錯誤,字符串準確無誤地發(fā)送到主控制器,該函數返回的值為0,即可讓電燈對應的繼電器與主控制器連接的I/O端口為低電平,觸發(fā)該繼電器,電燈即可點亮。
針對客戶端發(fā)送的字符串在傳輸過程中可能出現的丟包、亂碼等情況,本系統(tǒng)設定一個反饋確認機制:
(1)當手機客戶端所發(fā)送的指令成功到達主控制器,并且所有操作都順利完成,主控制器立即發(fā)送“OK”字符串到GPRS 模塊,通過透明傳輸發(fā)送到手機客戶端,客戶端獲得該字符串,即可顯示“操作成功”字樣;
(2)超時限制,如果手機客戶端等待“OK”確認包的時間超過正常范圍,客戶端立即重發(fā)指令,直到收到“OK”確認包為止;
(3)針對字符串在傳輸過程中亂碼的情況,主控制器通過Strcmp 函數進行辨別,返回值不為0,立即向GPRS 模塊返回“ERROR”字符串,手機客戶端接收到該字符串,同樣會重發(fā)指令,直到收到“OK”確認包為止;
通過反饋確認機制,可避免網絡信號不加、傳輸過程受干擾等意外情況所導致的無效操作。
該項測試中GPRS 模塊與單片機通過RS232 串口連接,單片機將接收到的數據通過另一個RS232串口發(fā)送到PC 機。單片機控制GPRS 模塊撥號成功進入數據透明傳輸模式后,PC 機開啟AccessPort串口監(jiān)聽軟件對串口發(fā)送的數據進行記錄;手機客戶端采用集成手機模擬器(emulator)模擬手機軟件,同時開啟Wireshark 軟件進行抓包操作,記錄接收的TCP 數據包;分配另一臺PC 機作為服務器。
啟動單片機,向GPRS 模塊發(fā)送相應AT 指令控制其撥號成功進入數據透明傳輸模式,開啟AccessPort 串口監(jiān)聽軟件,單片機燒錄程序設定為循環(huán)發(fā)送模式,時間間隔5 s,遠端PC 機運行手機模擬器,開啟Wireshark 進行抓包,數據發(fā)送即可開始。
本次測試單片機向GPRS 模塊間隔5 s 發(fā)送共500 個字符串,通過觀察手機模擬器端抓包信息,丟包僅1 個,誤碼0 個,傳輸時間隨機抽取50 個包進行計算,以下為數據處理:
啟動單片機,向GPRS 模塊發(fā)送相應AT 指令控制其撥號成功進入數據透明傳輸模式,開啟AccessPort串口監(jiān)聽軟件,遠端PC 機運行手機模擬器,設定4.5 s 時間間隔循環(huán)發(fā)送,開啟Wireshark 進行抓包,數據發(fā)送即可開始。
本次手機模擬器間隔5 s 循環(huán)發(fā)送302 個數據包,通過觀察AccessPort 所記錄的數據,丟包0 個,誤碼0個,傳輸時間通過隨機抽取50 個包進行計算,以下為數據處理:
?
由于研究周期以及知識水平的限制,本系統(tǒng)只是初步實現了遠程控制家庭電器的開關功能以及窗簾的拉合功能,而對于各種電器的復雜功能還不能實現操控。因此本系統(tǒng)還只是智能家居系統(tǒng)的一個雛形,可以擴展的地方很多,不僅在電器功能操控方面可以拓展,還有手機軟件平臺、通信網絡制式的選擇、控制器的升級等。在信息技術的支撐下,物聯(lián)網正在引發(fā)新一輪的生活方式變革,已成為一個發(fā)展迅速規(guī)模巨大的市場[11],其中,智能家居的物聯(lián)網應用,將是廣電網絡的發(fā)力點,是發(fā)揮廣電網絡長處的領域[12]。雖然本系統(tǒng)尚存不足,但這是一個好的開始,也希望今后能沿著這條路線繼續(xù)研發(fā)下去,追趕物聯(lián)網的潮流。
[1] 童曉渝,房秉毅,張云勇.物聯(lián)網智能家居發(fā)展分析[J]. 移動通信,2010,34(9):16-20.
[2] 王濤,周麗麗,陳慶文.中國物聯(lián)網未來發(fā)展探討[J]. 林業(yè)機械與木工設備,2011,39(9):26-27.
[3] 童長飛.C8051F040 系列單片開發(fā)與c 語言編程[M].北京:北京航空航天大學出版社,2000,191-252.
[4] 劉敬彪,艾勇福,盛慶華. 基于C8051F040 的數據傳輸嵌入式系統(tǒng)開發(fā)[J].計算機系統(tǒng)應用,2010,19(4):116-119.
[5] 石東峰.步進電機的原理及選型[J].科技與企業(yè),2011(09X):44-44.
[6] 陳愚,吳旭光,蘇冉,等.車輛監(jiān)控系統(tǒng)的GPRS 網絡通訊技術與實現[J].國外電子測量技術,2011,30(9):72-75.
[7] 徐秀麗,歐陽斌林.GPRS 無線終端在收獲機上的應用[J]. 東北農業(yè)大學學報,2008,39(10):121-126.
[8] 魏芬.GPRS 模塊M23 在無線數據傳輸方面的應用設計[J].工業(yè)控制計算機,2009(5):5-6.
[9] 李康滿,陳溪輝. 基于J2ME 技術的手機應用軟件開發(fā)技術[J].衡陽師范學院學報,2006,27(3):87-90.
[10] Kurose James F,Rose Keith W. COMPUTER NETWORKING:A TOP-DOWN APPROACH(Fourth Edition)[M].北京:高等教育出版社,2009:221-305.
[11] 吳一平.物聯(lián)網發(fā)展需要解決的若干問題[J]. 信息化觀察.2011(4):64-66.
[12] 羅峰.物聯(lián)網智能家居的新型人機互動[J].廣播與電視技術,2011,38(9):86-88.