国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android操作系統(tǒng)的智能家居系統(tǒng)設(shè)計(jì)

2020-04-09 04:33張予衎牛犇楊晨宇溫如春韓樹人
物聯(lián)網(wǎng)技術(shù) 2020年3期
關(guān)鍵詞:智能家居

張予衎 牛犇 楊晨宇 溫如春 韓樹人

摘 要:針對(duì)智能家居市場(chǎng)的消費(fèi)者需求,設(shè)計(jì)了一款基于Android操作系統(tǒng)的智能家居系統(tǒng)。該系統(tǒng)以ARM處理器為控制核心,借助ZigBee搭建家庭局域網(wǎng)以實(shí)現(xiàn)家居產(chǎn)品之間的互聯(lián),通過(guò)GPRS技術(shù)實(shí)現(xiàn)微處理器與服務(wù)器的通信,基于Android操作系統(tǒng)設(shè)計(jì)用戶應(yīng)用實(shí)現(xiàn)用戶對(duì)家居系統(tǒng)的遠(yuǎn)程監(jiān)測(cè)和控制。經(jīng)測(cè)試,系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)通信狀態(tài)良好,用戶可實(shí)時(shí)監(jiān)測(cè)家居環(huán)境參數(shù)和控制各類家電的工作狀態(tài)。

關(guān)鍵詞:ARM;智能家居;ZigBee;GPRS;Android操作系統(tǒng);STM32

中圖分類號(hào):TP29文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2020)03-00-03

0 引 言

從最初提出的設(shè)備信息化,時(shí)至今日,在物聯(lián)網(wǎng)技術(shù)日趨成熟的條件下,形形色色的智能家電產(chǎn)品不斷在市場(chǎng)涌現(xiàn)。但現(xiàn)狀是不同品牌產(chǎn)品之間相互獨(dú)立,無(wú)法互聯(lián),因此,對(duì)于大多數(shù)中低收入人群而言,智能家居還僅僅是獨(dú)立的智能家具。當(dāng)下家電行業(yè)競(jìng)爭(zhēng)激烈,商場(chǎng)中尚無(wú)普遍認(rèn)可遵循的標(biāo)準(zhǔn),基于此,團(tuán)隊(duì)使用ZigBee搭建家庭局域網(wǎng)來(lái)連接家居系統(tǒng),使其成套化,解決不同產(chǎn)品之間的通信障礙問(wèn)題。

1 智能家居系統(tǒng)總體設(shè)計(jì)方案

系統(tǒng)總體設(shè)計(jì)方案如圖1所示。

STM32通過(guò)網(wǎng)絡(luò)模塊接收來(lái)自服務(wù)器的指令,根據(jù)指令向ZigBee傳感網(wǎng)絡(luò)發(fā)送信號(hào)控制相應(yīng)繼電器通斷[1],以此實(shí)現(xiàn)用戶對(duì)家居系統(tǒng)的控制;同時(shí),家居工作狀態(tài)和室內(nèi)煙霧濃度以及溫濕度通過(guò)網(wǎng)絡(luò)反饋至ARM芯片,經(jīng)網(wǎng)絡(luò)模塊發(fā)送至服務(wù)器。服務(wù)器通過(guò)廣域網(wǎng)接收和發(fā)送Android終端的數(shù)據(jù),以實(shí)現(xiàn)用戶對(duì)家居系統(tǒng)的遠(yuǎn)程監(jiān)控。

1.1 硬件設(shè)計(jì)

ARM處理器選用型號(hào)為STM32F103ZET6的芯片,它是基于高性能ARM?CortexTM-M3的32位RISC內(nèi)核處理器,芯片主頻高達(dá)72 MHz,擁有I2C,SPI,PWM等總線接口,同時(shí)具有體積小、性能強(qiáng)、便攜性好等優(yōu)點(diǎn),能夠用于實(shí)現(xiàn)設(shè)備的控制。

傳感器用于獲取家居環(huán)境參數(shù),主要檢測(cè)對(duì)象為煙霧濃度和溫濕度。前者選用MQ-2模塊,其輸出電壓信號(hào)類型為模擬量,與被檢測(cè)煙霧濃度成正比[2]。其輸出信號(hào)為電壓模擬量,該引腳接ARM芯片的I/O口,處理器對(duì)模擬量進(jìn)行A/D轉(zhuǎn)換后輸出數(shù)字量,即為檢測(cè)到的煙霧濃度值。溫濕度傳感器選用DHT11模塊,與MQ-2不同的是其輸出信號(hào)為數(shù)字量,傳輸參數(shù)無(wú)需預(yù)處理。

網(wǎng)絡(luò)模塊選用GPRS GA6模塊,編程使用串口發(fā)送AT指令形式的字符串即可實(shí)現(xiàn)ARM處理器與服務(wù)器的連接。

1.2 軟件平臺(tái)

用戶層基于Android操作系統(tǒng)開發(fā),使用Java語(yǔ)言編寫APP。Android操作系統(tǒng)是基于Linux平臺(tái)開源的移動(dòng)設(shè)備操作系統(tǒng),該系統(tǒng)具有良好的可植入性、獨(dú)立性以及開放

性[3]。本設(shè)計(jì)基于軟件的以上特性得以實(shí)現(xiàn),個(gè)人設(shè)計(jì)的軟件只需經(jīng)過(guò)系統(tǒng)測(cè)試即可接入Android系統(tǒng),供安卓手機(jī)用戶使用。

2 ZigBee家居局域網(wǎng)絡(luò)的組建

本系統(tǒng)使用ZigBee射頻模塊組建星形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[4],由1個(gè)網(wǎng)絡(luò)協(xié)調(diào)器節(jié)點(diǎn)和4個(gè)家居終端節(jié)點(diǎn)組成。協(xié)調(diào)器作為“網(wǎng)關(guān)”,負(fù)責(zé)組建家居局域網(wǎng)并與廣域網(wǎng)進(jìn)行連接。首先以能量掃描和主動(dòng)掃描方式進(jìn)行信道掃描,選擇一個(gè)存在最少ZigBee網(wǎng)絡(luò)的信道作為創(chuàng)建網(wǎng)絡(luò)并選定網(wǎng)絡(luò)標(biāo)識(shí)符,等待終端節(jié)點(diǎn)加入網(wǎng)絡(luò)。局域網(wǎng)組建設(shè)計(jì)流程如圖2所示。

當(dāng)終端節(jié)點(diǎn)申請(qǐng)入網(wǎng)時(shí),ZigBee協(xié)調(diào)器根據(jù)ARM命令審核申請(qǐng),本系統(tǒng)的星形網(wǎng)絡(luò)結(jié)構(gòu)決定終端節(jié)點(diǎn)與協(xié)調(diào)器節(jié)點(diǎn)只能以點(diǎn)播方式通信。協(xié)調(diào)器接收主機(jī)命令數(shù)據(jù)或向主機(jī)發(fā)送家居監(jiān)控?cái)?shù)據(jù)。局域網(wǎng)通信設(shè)計(jì)流程如圖3所示。

終端節(jié)點(diǎn)包括煙霧濃度采集節(jié)點(diǎn)、溫濕度采集節(jié)點(diǎn)以及各類電器控制節(jié)點(diǎn)。STM32接收到用戶通過(guò)Android應(yīng)用程序設(shè)置的命令數(shù)據(jù),立即發(fā)送給協(xié)調(diào)器節(jié)點(diǎn),后者以點(diǎn)播方式將控制信號(hào)發(fā)送給家居終端節(jié)點(diǎn);家居終端節(jié)點(diǎn)以反向路徑將環(huán)境數(shù)據(jù)顯示至Android應(yīng)用程序中,從而實(shí)現(xiàn)對(duì)家居的遠(yuǎn)程控制與環(huán)境數(shù)據(jù)的采集。

3 套接字-客戶/服務(wù)器通信模式的建立

客戶端和服務(wù)器端程序使用Java語(yǔ)言編寫,分別在軟件Android Studio和Eclipse上進(jìn)行程序打包,兩者的連接基于套接字Socket。套接字可以分成兩個(gè)部分,即IP地址和端口號(hào)[5]。在TCP/IP協(xié)議的基礎(chǔ)上實(shí)現(xiàn)兩者通信的關(guān)鍵在于指定服務(wù)器IP地址和客戶端連接端口Port。具體實(shí)現(xiàn)方法:服務(wù)器端創(chuàng)建一個(gè)服務(wù)器套接字ServerSocket和一個(gè)Socket,前者初始化為new ServerSocket(Port),后者初始化為ServerSocket.accept();對(duì)應(yīng)地,客戶端創(chuàng)建一個(gè)Socket,其輸入?yún)?shù)有兩個(gè),分別為所連接服務(wù)器的IP地址和Port。雙方的套接字創(chuàng)建成功后,服務(wù)器端將開啟對(duì)Port的監(jiān)聽(tīng),即等待用戶連接[6]。服務(wù)器端和客戶端程序設(shè)計(jì)流程分別如圖4和圖5所示。

Android程序成功連接服務(wù)器后,調(diào)用Socket的成員函數(shù).getInputStream()和.getOutputStream()便可分別獲取套接字的輸入流和輸出流,從而進(jìn)行數(shù)據(jù)和指令的發(fā)送和獲取。需要注意的是,Android程序中,不允許在主線程里連接服務(wù)器,否則會(huì)導(dǎo)致程序崩潰而閃退。因此,使用Java在客戶端創(chuàng)建套接字時(shí)應(yīng)把相關(guān)代碼放入一個(gè)新的子線程中進(jìn)行處理。

4 GPRS技術(shù)-ARM和服務(wù)器的數(shù)據(jù)傳輸

GPRS GA6使用串口發(fā)送字符串建立ARM處理器與服務(wù)器的信息傳輸通道。GPRS模塊內(nèi)部嵌有TCP/IP協(xié)議,STM32處理器通過(guò)串口與GPRS模塊通信,以實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)的連接[7]。GPRS的上網(wǎng)過(guò)程可以分為兩個(gè)步驟,即附著和上下文激活。前者建立移動(dòng)設(shè)備和GPRS網(wǎng)絡(luò)之間的通信通道,后者連接移動(dòng)設(shè)備和外部數(shù)據(jù)網(wǎng)。GPRS和服務(wù)器的連接同樣基于TCP/IP協(xié)議,只需在發(fā)送的字符串中包含IP地址和端口號(hào)Port即可。

猜你喜歡
智能家居
基于Zigbee的無(wú)線通信技術(shù)在智能家居中的應(yīng)用
關(guān)于智能家居真正需求的探討
基于LD3320的智能家居控制