物聯(lián)網(wǎng)智能機(jī)房系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:簡(jiǎn)述了實(shí)現(xiàn)智能機(jī)房系統(tǒng)所用的主要技術(shù)、設(shè)計(jì)方法和功能實(shí)現(xiàn),包括通信協(xié)議設(shè)計(jì)、硬件電路設(shè)計(jì)和軟件設(shè)計(jì)。系統(tǒng)功能包括控制、檢測(cè)和無(wú)線通信等,實(shí)現(xiàn)了機(jī)房電器的控制、環(huán)境物理量的檢測(cè)、機(jī)房安全的防范及通信等功能。同時(shí)增加了可無(wú)線遙控的智能小車,其上添加各種傳感器,實(shí)現(xiàn)傳感器的移動(dòng)檢測(cè),增加了檢測(cè)的靈活性。通過(guò)互聯(lián)網(wǎng)遙控機(jī)房,從而實(shí)現(xiàn)遠(yuǎn)程控制。經(jīng)系統(tǒng)測(cè)試功能均實(shí)現(xiàn)。
關(guān)鍵詞:物聯(lián)網(wǎng);智能機(jī)房;無(wú)線通信;智能小車
自2009年8月溫家寶總理在無(wú)錫市提出“感知中國(guó)”以來(lái),物聯(lián)網(wǎng)被正式列為國(guó)家五大新興戰(zhàn)略性產(chǎn)業(yè)之一,寫(xiě)入了“政府工作報(bào)告”。物聯(lián)網(wǎng)在中國(guó)受到了全社會(huì)極大的關(guān)注,其受關(guān)注程度是在美國(guó)、歐盟、以及其他各國(guó)不可比擬的。智能機(jī)房的發(fā)展與成熟,將會(huì)極大的提高機(jī)房管理的便捷性和可靠性。
文中簡(jiǎn)述了系統(tǒng)實(shí)現(xiàn)所需的主要技術(shù)、設(shè)計(jì)方法和功能實(shí)現(xiàn)。其中主要包括通信協(xié)議的設(shè)計(jì)、硬件電路設(shè)計(jì)和軟件設(shè)計(jì)方法,最終實(shí)現(xiàn)智能機(jī)房的遠(yuǎn)程控制,例如遠(yuǎn)程監(jiān)測(cè)室內(nèi)的溫濕度、遠(yuǎn)程接收人體入侵報(bào)警、遠(yuǎn)程控制電燈的開(kāi)關(guān),以及對(duì)無(wú)線遙控小車的控制等功能。
1 系統(tǒng)總體設(shè)計(jì)
1.1 系統(tǒng)概述
當(dāng)今智能機(jī)房系統(tǒng)包含的功能十分豐富,但還沒(méi)有形成統(tǒng)一的標(biāo)準(zhǔn)。智能機(jī)房按照功能,主要包含以下幾方面:機(jī)房網(wǎng)絡(luò)系統(tǒng)、總控制管理系統(tǒng)、照明控制系統(tǒng)、機(jī)房安防系統(tǒng)、及機(jī)房環(huán)境監(jiān)測(cè)系統(tǒng)等。
該論文從具體功能實(shí)現(xiàn)的技術(shù)層面,討論了以下幾個(gè)系統(tǒng):環(huán)境物理量檢測(cè)系統(tǒng),安防系統(tǒng),照明控制系統(tǒng)。
1.2 設(shè)計(jì)要求
為了便于系統(tǒng)的擴(kuò)展和改造,將以模塊化的方式實(shí)現(xiàn)需要的功能,每個(gè)模塊負(fù)責(zé)一個(gè)或者幾個(gè)類似的功能實(shí)現(xiàn)。所有模塊之間使用無(wú)線方式通信,每個(gè)模塊都要有各自的主控MCU、電源和具體實(shí)現(xiàn)功能的部件。
由于網(wǎng)關(guān)沒(méi)有無(wú)線功能,系統(tǒng)中設(shè)置了一個(gè)模塊負(fù)責(zé)通信中繼,通信中繼包含兩方面:與各個(gè)功能模塊的通信;與網(wǎng)關(guān)的通信。該模塊主要是通過(guò)網(wǎng)關(guān)接收上位機(jī)的控制命令,傳送給相應(yīng)執(zhí)行模塊;或者接收各個(gè)模塊的信息,傳送給上位機(jī)。
為了擴(kuò)大環(huán)境物理量的檢測(cè)范圍,增加一個(gè)可自主移動(dòng)的平臺(tái)一無(wú)線遙控小車,在該平臺(tái)上可安裝傳感器或者無(wú)線攝像頭。同時(shí)為了增加系統(tǒng)的可操作性,體現(xiàn)以人為本的設(shè)計(jì)理念,該系統(tǒng)還需增加一個(gè)特別的模塊一遙控終端,該模塊負(fù)責(zé)顯示該系統(tǒng)的所有信息,并且可以控制其他的功能模塊。
1.3 系統(tǒng)功能劃分
整個(gè)系統(tǒng)實(shí)現(xiàn)的功能有:環(huán)境物理量檢測(cè),選擇常見(jiàn)的溫度、濕度;安防,選擇有代表性的人體入侵檢測(cè);照明控制,控制電燈的開(kāi)關(guān);移動(dòng)平臺(tái),選擇可無(wú)線遙控的小車。
為了節(jié)省資源,將溫度、濕度和人體入侵檢測(cè)3個(gè)功能放人1個(gè)模塊中實(shí)現(xiàn)。電燈開(kāi)關(guān)的控制由1個(gè)模塊實(shí)現(xiàn)。綜上所述,系統(tǒng)一共需要5個(gè)模塊,分別是:通信中繼模塊、遙控終端模塊、溫濕度及人體入侵檢測(cè)模塊、電燈控制模塊,以及無(wú)線遙控小車。系統(tǒng)的組織架構(gòu)如圖1所示。
2 硬件設(shè)計(jì)
2.1 基礎(chǔ)模塊
5大功能模塊是建立在基礎(chǔ)模塊之上的,每個(gè)模塊都是通過(guò)擴(kuò)展基礎(chǔ)模塊來(lái)實(shí)現(xiàn)具體功能的?;A(chǔ)模塊包括MCU最小系統(tǒng)、無(wú)線通信模塊和電源模塊。
1)MCU最小系統(tǒng)
MCU即單片機(jī),是每個(gè)模塊系統(tǒng)的核心,主要負(fù)責(zé)各種信息的處理和對(duì)各種外圍設(shè)備的控制,所以選擇一款合適的MCU是整個(gè)系統(tǒng)功能實(shí)現(xiàn)的關(guān)鍵所在。該設(shè)計(jì)以市面上最常見(jiàn)也最通用的51單片機(jī)做為主控MCU。為了讓系統(tǒng)有更大的擴(kuò)展空間,應(yīng)選擇一款外設(shè)功能多樣的51單片機(jī)。經(jīng)過(guò)實(shí)際調(diào)查和對(duì)比,選中型號(hào)為STC12C5A60S2單片機(jī)為本設(shè)計(jì)中所有模塊的主控單片機(jī)。
STC12C5A60S2單片機(jī)外設(shè)比較豐富,包括2個(gè)全雙工異步串行通信(UART)接口,2路脈沖寬度調(diào)制(PWM)輸出,一個(gè)同步串行外圍通信(SP I)接口,8路10位精度的A/D轉(zhuǎn)換等,并且該單片機(jī)支持通過(guò)異步串行接口編程,這些功能都極大了簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)和設(shè)計(jì)。
圖2為STC12C5A60S2單片機(jī)的最小系統(tǒng),該系統(tǒng)包含如下幾個(gè)部分:
①外部晶振電路
因?yàn)橐褂卯惒酱型ㄐ?,所以選擇11.0592MHZ的晶振作為外部的時(shí)鐘源,這樣能保證異步串行通信的正確性。
②復(fù)位電路
復(fù)位電路包括上電復(fù)位和按鍵復(fù)位兩部分。其中,上電復(fù)位是系統(tǒng)剛開(kāi)啟時(shí)復(fù)位單片機(jī)的;按鍵復(fù)位是在系統(tǒng)運(yùn)行出現(xiàn)異常時(shí),用于手動(dòng)復(fù)位單片機(jī)。
③電源濾波電路
電源濾波電路由兩個(gè)濾波電容組成,是有效防止電源波紋對(duì)單片機(jī)干擾的手段。
2)無(wú)線通信模塊
無(wú)線通信模塊是所有功能模塊之間互相通信的“橋梁”。如圖3所示,單片機(jī)A將數(shù)據(jù)傳輸給無(wú)線通信模塊B,無(wú)線通信模塊B將數(shù)據(jù)以電磁波的形式傳輸給無(wú)線通信模塊C,最后,無(wú)線通信模塊C將數(shù)據(jù)傳輸給單片機(jī)D,這樣,就完成了模塊一到模塊二之間的數(shù)據(jù)傳輸。
目前市面常見(jiàn)的無(wú)線通信模塊按照傳輸模式分為兩種:非透明傳輸和透明傳輸。結(jié)合本設(shè)計(jì)的實(shí)際情況,選擇透明傳輸模塊比較適合,這樣便可以很自由的設(shè)置本設(shè)計(jì)的通信協(xié)議。經(jīng)過(guò)實(shí)際調(diào)查和對(duì)比,選中LSD-RFMC-B401-A2型無(wú)線透?jìng)髂K。該模塊是一款高性能的射頻收發(fā)器,工作在470 MHz頻段,全透明傳輸,可根據(jù)實(shí)際應(yīng)用配置各種串口數(shù)據(jù)格式,可實(shí)現(xiàn)無(wú)限數(shù)據(jù)長(zhǎng)度發(fā)送。
3)電源模塊
電源是整個(gè)系統(tǒng)維持正常運(yùn)行的必要條件,所以一個(gè)可靠的電源是必要的。由于整個(gè)系統(tǒng)中的所有部件不都是工作在相同的電壓下的,所以需要不同的穩(wěn)壓芯片來(lái)為各個(gè)部件供電。經(jīng)過(guò)實(shí)際調(diào)查,得知電路中需要5 V和3.3 V兩種電壓,所選選擇LM2596_5.0V和LM2596_3.3V這兩款穩(wěn)壓芯片作為每個(gè)模塊的供電芯片。
2.2 通信中繼模塊
通信中繼模塊通過(guò)網(wǎng)關(guān)與上位機(jī)實(shí)現(xiàn)信息交互,所以需要一種與網(wǎng)關(guān)通信的方式。設(shè)計(jì)上采用在基礎(chǔ)模塊之上,添加了與網(wǎng)關(guān)串行異步通信的功能。由于STC12C5A60S2的異步串行通信接口使用的是TTL電平,而網(wǎng)關(guān)平臺(tái)外部接口使用的是RS232電平,所以需要專用的電平轉(zhuǎn)換芯片MAX232。如圖4所示,MAX232連接到STC12C5A60S2單片機(jī)的異步串行通信接口1上,另一端連接到標(biāo)準(zhǔn)的DB9插座上。
2.3 溫濕度及人體入侵檢測(cè)模塊
溫濕度及人體入侵檢測(cè)模塊是在基礎(chǔ)模塊之上添加溫濕度檢測(cè)傳感器和人體熱釋電檢測(cè)傳感器而實(shí)現(xiàn)的。其中溫濕度的檢測(cè)采用DHT11溫濕度傳感器,人體入侵的檢測(cè)則由專用的人體熱釋電感應(yīng)模塊來(lái)實(shí)現(xiàn)。
人體檢測(cè)模塊的工作方式是,當(dāng)有人進(jìn)入到檢測(cè)范圍的時(shí)候,該模塊的狀態(tài)引腳輸出電平由高變低,當(dāng)人走出該范圍的時(shí)候,狀態(tài)引腳的輸出電平又由低恢復(fù)到高電平。利用這一特點(diǎn),可將該狀態(tài)引腳直接連接到STC12C5A60S2單片機(jī)的外中斷0引腳上,當(dāng)該模塊檢測(cè)到人體時(shí),狀態(tài)引腳產(chǎn)生下降沿電平,觸發(fā)單片機(jī)外中斷0。又考慮到當(dāng)人體走出檢測(cè)范圍時(shí),為了讓系統(tǒng)及時(shí)得知,將模塊的狀態(tài)引腳接反相器后,連接到ST12C5A60S2單片機(jī)的外中斷1引腳上。這樣,當(dāng)人體走出檢測(cè)范圍時(shí),人體檢測(cè)模塊的狀態(tài)引腳產(chǎn)生上升沿電平,經(jīng)反相器取反后變?yōu)橄陆笛仉娖?,觸發(fā)ST12C5A60S2單片機(jī)的外中斷1。人體檢測(cè)模塊電路原理圖如圖5所示。
2. 4 電燈控制模塊
電燈控制模塊主要負(fù)責(zé)打開(kāi)和關(guān)閉室內(nèi)的燈光。這其中涉及到了弱電壓控制強(qiáng)電壓的問(wèn)題,本模塊單片機(jī)的電壓為5 V,而室內(nèi)燈的電壓是220 V,所以需要通過(guò)繼電器來(lái)實(shí)現(xiàn)電燈的打開(kāi)和關(guān)閉。本設(shè)計(jì)采用2個(gè)常見(jiàn)的5 V單刀單置繼電器,控制兩個(gè)燈的開(kāi)關(guān)。
如圖6所示,電燈控制模塊是在基礎(chǔ)模塊之上添加了2個(gè)受STC12C5A60S2單片機(jī)的兩個(gè)I/O口P2.1和P2.0控制的繼電器。當(dāng)P2.0輸出為低電平時(shí),繼電器1上電,從而接通JI插座的兩個(gè)引腳。當(dāng)P2.1輸出為低電平時(shí),繼電器2上電,從而接通J2插座的兩個(gè)引腳。這樣。就可以通過(guò)J1和J2兩個(gè)插座控制電燈的打開(kāi)和關(guān)閉了。
2.5 無(wú)線遙控小車
無(wú)線遙控小車是一個(gè)可移動(dòng)的平臺(tái),在小車上邊可以擴(kuò)展各種傳感器,從而通過(guò)小車的移動(dòng)擴(kuò)大傳感器的檢測(cè)范圍。小車的動(dòng)力為兩個(gè)直流電機(jī),采用常見(jiàn)的雙H橋驅(qū)動(dòng)芯片L298N來(lái)驅(qū)動(dòng)。單片機(jī)可以通過(guò)控制L298N芯片,間接控制小車的運(yùn)動(dòng)方向和速度。無(wú)線遙控小車上裝有一個(gè)無(wú)線攝像頭,從而可以實(shí)現(xiàn)遠(yuǎn)程的遙控。在小車前方,增加一些小燈,在需要的時(shí)候打開(kāi),使攝像頭可以拍攝到黑暗的地方。具體模塊的實(shí)現(xiàn)是在基礎(chǔ)模塊上添加了電機(jī)控制電路、車燈控制電路和攝像頭電源控制電路。
2.6 遙控終端模塊
遙控終端主要負(fù)責(zé)顯示系統(tǒng)的各種信息和控制其他的功能模塊,并且在有人進(jìn)入檢測(cè)范圍時(shí),提供警報(bào)功能。針對(duì)顯示部分,考慮到信息量較少,所以采用1602字符液晶屏顯示,該字符型液晶屏可一次顯示32個(gè)字符;針對(duì)遙控部分,考慮到需要控制的功能較多,且需要節(jié)省單片機(jī)的I/O口資源,所以采用4x4矩陣鍵盤,該鍵盤可以實(shí)現(xiàn)16個(gè)按鍵輸入,但只用了單片機(jī)的8個(gè)I/O口。針對(duì)報(bào)警功能。可使用一個(gè)蜂鳴器實(shí)現(xiàn)。
3 軟件設(shè)計(jì)
3.1 通信協(xié)議設(shè)計(jì)
通信協(xié)議主要包括兩方面內(nèi)容:1)通信中繼模塊與上位機(jī)通信的協(xié)議;2)各模塊間的通信協(xié)議。無(wú)論哪方面的通信,都應(yīng)該首先保證通信數(shù)據(jù)的正確性和可解析性。
3.1.1 通信中繼與上位機(jī)通信協(xié)議
通信中繼模塊與上位機(jī)的通信包括:向上位機(jī)發(fā)送采集信息、接收上位機(jī)的命令。其中接收的命令應(yīng)該盡量簡(jiǎn)短,這是由于單片機(jī)的資源有限,不適合處理長(zhǎng)字符串。
1)上傳信息協(xié)議
下位機(jī)以字符串的方式上傳數(shù)據(jù),每個(gè)數(shù)據(jù)的字符串必須同時(shí)滿足以下2個(gè)條件:
①字符串長(zhǎng)度為9個(gè)字符;
②以“(”開(kāi)頭,以“)”結(jié)尾。
如果不滿足以上條件,上位機(jī)應(yīng)放棄處理該數(shù)據(jù),并且立刻請(qǐng)求下位機(jī)重新發(fā)送數(shù)據(jù)。字符串的形式為:(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF),各字節(jié)含義如表1所示。
如果字節(jié)的數(shù)據(jù)為“0xEE”,表示上傳的數(shù)據(jù)中沒(méi)有對(duì)應(yīng)字節(jié)的信息。
2)控制命令協(xié)議
控制命令也是以字符串形式傳送。每個(gè)命令字符串必須同時(shí)滿足以下2個(gè)條件:
①字符串長(zhǎng)度為5個(gè)字符;
②以“(”開(kāi)頭,以“)”結(jié)尾。
如果不滿足以上條件,中繼模塊應(yīng)放棄處理該條命令。命令字符串的形式為:(acb)。其中“abc”是命令信息,是某條英文指令的縮寫(xiě),例如打開(kāi)燈1,英文為“open light 1”,縮寫(xiě)為“oll”,如果想關(guān)閉燈1,則發(fā)送字符串“(cl1)”。如果縮寫(xiě)后的命令不足3個(gè)字符,則用字符“0”補(bǔ)全。所有控制命令及含義如表2所示。
3.1.2 模塊聞通信協(xié)議
由于使用的是透明傳輸模塊,一個(gè)模塊發(fā)送給另一個(gè)模塊的信息是可以被其他所有模塊接收到的,所以應(yīng)該在信息中加入地址機(jī)制,每個(gè)模塊都有自己的地址。在某個(gè)模塊接收到數(shù)據(jù)時(shí),應(yīng)首先判斷數(shù)據(jù)中接收地址是否與自己的地址一致,如果一致,則繼續(xù)處理該數(shù)據(jù),反之則放棄該數(shù)據(jù)。
考慮到模塊間通信的多種情況,將模塊間通信信息歸納為2種:命令和狀態(tài)信息,則對(duì)應(yīng)協(xié)議也為2種。
1)中繼模塊或遙控終端模塊發(fā)送命令
以字符串的形式發(fā)送命令,該命令字符串應(yīng)滿足以下兩個(gè)條件:
①字符串長(zhǎng)度為7;
②字符串以“(”開(kāi)頭,以“)”結(jié)尾。
若其它模塊接收到的命令字符串不滿足以上兩個(gè)條件,則放棄處理該命令。命令字符串的形式為:(xyabc),其中“x”表示接收模塊的地址,“y”表示發(fā)送模塊的地址,“abc"為要執(zhí)行的命令縮寫(xiě),同表2中“發(fā)送命令”項(xiàng)括號(hào)內(nèi)字符串。模塊地址的約定,見(jiàn)表3。表中通信中繼模塊和遙控終端模塊的地址是一樣的,這樣就可以同時(shí)處理接收到其他模塊發(fā)送的信息數(shù)據(jù)了。
2)中繼模塊和遙控終端模塊接收狀態(tài)信息
由于其它模塊向中繼模塊和遙控終端模塊發(fā)送狀態(tài)信息的長(zhǎng)度不一,所以以最長(zhǎng)的狀態(tài)信息為準(zhǔn),也就是以溫濕度及人體檢測(cè)模塊的狀態(tài)信息長(zhǎng)度為準(zhǔn),其它模塊狀態(tài)信息位的長(zhǎng)度不足的以字符“0”補(bǔ)全。該命令字符串應(yīng)滿足以下2個(gè)條件:
①字符串長(zhǎng)度為9;
②字符串以“(”開(kāi)頭,以“)”結(jié)尾。
若通信中繼模塊和遙控終端模塊接收到的命令字符串不滿足以上兩個(gè)條件,則放棄處理該信息。信息字符串的形式為:(xyabcde),其中“x”表示接收模塊的地址,這里應(yīng)該為“0x11”,“Y”表示發(fā)送模塊的地址。“ahede”則表示發(fā)送模塊的狀態(tài)信息。
針對(duì)溫濕度及人體檢測(cè)模塊,“ah”以ASCII碼形式表示溫度,“cd”以ASCII碼形式表示濕度,“a”和“c”表示十位,“b”和“d”表示個(gè)位。“e”的前半字節(jié)表示人體檢測(cè)是否開(kāi)啟,后半字節(jié)表示是否認(rèn)有人進(jìn)入檢測(cè)范圍。針對(duì)電燈控制模塊,“a”的前半字節(jié)表示燈1的開(kāi)關(guān)狀態(tài),后半字節(jié)表示燈2的開(kāi)關(guān)狀態(tài)。針對(duì)無(wú)線遙控小車,“a”的前半字節(jié)表示小車前燈的開(kāi)關(guān)狀態(tài),后半字節(jié)表示攝像頭的開(kāi)關(guān)狀態(tài)。
3.2 通信中繼模塊
通信中繼模塊主要處理兩件事:1)接收上位機(jī)的命令,并根據(jù)命令的內(nèi)容,按照協(xié)議發(fā)送給對(duì)應(yīng)模塊;2)接收每個(gè)模塊的信息,按照協(xié)議發(fā)送給上位機(jī)。
3.3 溫濕度及人體入侵檢測(cè)模塊
該模塊主要實(shí)現(xiàn)兩大功能:1)溫濕度和人體入侵檢測(cè),并將檢測(cè)信息傳送給中繼模塊和遙控終端,以實(shí)現(xiàn)實(shí)時(shí)顯示;2)處理中繼模塊轉(zhuǎn)發(fā)的控制命令。程序中通過(guò)兩個(gè)標(biāo)志位區(qū)別是上傳檢測(cè)信息還是處理控制命令。當(dāng)判斷是控制命令時(shí),再具體分析是何命令并執(zhí)行該命令,執(zhí)行完畢,將新的狀態(tài)信息返回給中繼模塊和遙控終端模塊,然后等待下一條命令。
3.4 電燈控制模塊
電燈控制模塊實(shí)現(xiàn)控制電燈1、2的開(kāi)啟和關(guān)閉操作。程序中通過(guò)一個(gè)標(biāo)志位判斷接收信息是否為控制命令,若是則判斷具體命令并執(zhí)行,執(zhí)行完畢按照協(xié)議更新?tīng)顟B(tài)信息,并按照協(xié)議把狀態(tài)信息返回給中繼模塊和遙控終端模塊,然后等待下一條命令。
3.5 無(wú)線遙控小車
無(wú)線遙控小車模塊實(shí)現(xiàn)兩大功能:小車運(yùn)動(dòng)控制;小車前燈和攝像頭的打開(kāi)和關(guān)閉控制。程序中通過(guò)一個(gè)標(biāo)志位判斷接收信息是否為控制命令,若是則判斷具體命令,如果是運(yùn)動(dòng)命令,則執(zhí)行相應(yīng)的運(yùn)行命令,延時(shí)600 ms后,停止運(yùn)動(dòng),然后等待下一條命令;如果不是運(yùn)動(dòng)命令,則執(zhí)行該命令后,按照協(xié)議更新?tīng)顟B(tài)信息,并按照協(xié)議把狀態(tài)信息返回給中繼模塊和遙控終端模塊,然后等待下一條命令。
3.6 遙控終端模塊
遙控終端模塊實(shí)現(xiàn)三大功能:在字符液晶屏上顯示系統(tǒng)狀態(tài)信息;按鍵檢測(cè)及發(fā)送命令;啟動(dòng)和關(guān)閉蜂鳴器。程序啟動(dòng)后一直判斷是否有按鍵按下,如果有按鍵按下,則檢測(cè)按鍵,并將按鍵對(duì)應(yīng)的命令按照協(xié)議傳輸給其它模塊,然后延時(shí)500 ms,等待下一次按鍵。若沒(méi)有按鍵,則檢測(cè)標(biāo)志位Flag是否等于1。若Flag等于1,表示接收到了其它模塊的狀態(tài)信息,然后按照信息的內(nèi)容更新液晶屏對(duì)應(yīng)的內(nèi)容,如果來(lái)自溫濕度及人體檢測(cè)模塊的信息中有檢測(cè)到人體進(jìn)入檢測(cè)區(qū)的信息,則打開(kāi)蜂鳴器2 s。
4 系統(tǒng)測(cè)試
系統(tǒng)測(cè)試分3部分:1)以通信中繼模塊為主:從上位機(jī)下發(fā)送正常合法的命令,觀察現(xiàn)象;之后再發(fā)送不合法的命令,觀察現(xiàn)象。2)以遙控終端模塊為主:依次按鍵,觀察現(xiàn)象。3)以人體感應(yīng)模塊為主:測(cè)試人體檢測(cè)功能。測(cè)試時(shí)為方便起見(jiàn),將通信中繼模塊用串口線直接連到PC上,通過(guò)串口調(diào)試助手操作并觀察。
4.1 通信中繼模塊測(cè)設(shè)
發(fā)送字符串“(g00)”:小車前進(jìn)了一小段距離。
發(fā)送字符串“(ol1)”:電燈1打開(kāi)。
發(fā)送字符串“(cl2)”:電燈2關(guān)閉。
發(fā)送字符串“(mmm)j”:系統(tǒng)不做任何動(dòng)作。
4.2 遙控終端模塊測(cè)設(shè)
按“前進(jìn)”按鍵,小車前進(jìn)一小段距離。一直按住“左轉(zhuǎn)”按鍵,小車原地向左轉(zhuǎn)圈。
按“開(kāi)燈1”按鍵,電燈1打開(kāi),同時(shí)液晶屏上的對(duì)應(yīng)信息也隨之改變。
4.3 人體檢測(cè)模塊測(cè)設(shè)
用手在該模塊上方劃過(guò),終端模塊的蜂鳴器響起,同時(shí)液晶屏提示有人進(jìn)入該范圍。串口調(diào)試助手也收到“0x28 0Xf0 0x32 0x33 0x34 0x30 0x00 0xff 0x29”十六進(jìn)制的字符串,根據(jù)協(xié)議可得知第8個(gè)字節(jié)表示人體檢測(cè)的狀態(tài)信息,前半字節(jié)表示該功能是否開(kāi)啟,后半字節(jié)表示是否有人進(jìn)入檢測(cè)范圍,所以,“0xff”表示檢測(cè)到了人體進(jìn)入檢測(cè)范圍。
5 結(jié)束語(yǔ)
該系統(tǒng)以最常用也最可靠的電燈開(kāi)關(guān)控制、溫濕度檢測(cè)和人體入侵檢測(cè)為主要切入點(diǎn),同時(shí)加入了可擴(kuò)展的移動(dòng)平臺(tái)——無(wú)線遙控小車,考慮到系統(tǒng)的獨(dú)立性與完美性,又加入了遙控終端模塊,這樣使得整個(gè)系統(tǒng)可以在不依賴上位機(jī)的情況下執(zhí)行各種操作。
系統(tǒng)難點(diǎn)是各模塊間通信協(xié)議的設(shè)計(jì),經(jīng)過(guò)反復(fù)的研究和查找資料,最終參考了以太網(wǎng)數(shù)據(jù)幀的形式,將每個(gè)模塊指定一個(gè)地址,在傳輸數(shù)據(jù)的開(kāi)頭將目標(biāo)模塊地址和發(fā)送模塊地址寫(xiě)入,這樣接收的模塊就能根據(jù)該地址去判斷該如何處理該數(shù)據(jù)。經(jīng)過(guò)反復(fù)的調(diào)試與修改,本系統(tǒng)最終實(shí)現(xiàn)了預(yù)期的所有功能。