關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 物聯(lián)網(wǎng)智能機(jī)房系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

物聯(lián)網(wǎng)智能機(jī)房系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2013-01-14 來(lái)源:網(wǎng)絡(luò) 收藏

如果不滿(mǎn)足以上條件,中繼模塊應(yīng)放棄處理該條命令。命令字符串的形式為:(acb)。其中“abc”是命令信息,是某條英文指令的縮寫(xiě),例如打開(kāi)燈1,英文為“open light 1”,縮寫(xiě)為“oll”,如果想關(guān)閉燈1,則發(fā)送字符串“(cl1)”。如果縮寫(xiě)后的命令不足3個(gè)字符,則用字符“0”補(bǔ)全。所有控制命令及含義如表2所示。

本文引用地址:http://www.butianyuan.cn/article/159558.htm

h.JPG


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)滿(mǎn)足以下兩個(gè)條件:
①字符串長(zhǎng)度為7;
②字符串以“(”開(kāi)頭,以“)”結(jié)尾。
若其它模塊接收到的命令字符串不滿(mǎn)足以上兩個(gè)條件,則放棄處理該命令。命令字符串的形式為:(xyabc),其中“x”表示接收模塊的地址,“y”表示發(fā)送模塊的地址,“abc為要執(zhí)行的命令縮寫(xiě),同表2中“發(fā)送命令”項(xiàng)括號(hào)內(nèi)字符串。模塊地址的約定,見(jiàn)表3。表中通信中繼模塊和遙控終端模塊的地址是一樣的,這樣就可以同時(shí)處理接收到其他模塊發(fā)送的信息數(shù)據(jù)了。

i.JPG


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)滿(mǎn)足以下2個(gè)條件:
①字符串長(zhǎng)度為9;
②字符串以“(”開(kāi)頭,以“)”結(jié)尾。
若通信中繼模塊和遙控終端模塊接收到的命令字符串不滿(mǎn)足以上兩個(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ú)線遙控小車(chē),“a”的前半字節(jié)表示小車(chē)前燈的開(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ú)線遙控小車(chē)
無(wú)線遙控小車(chē)模塊實(shí)現(xiàn)兩大功能:小車(chē)運(yùn)動(dòng)控制;小車(chē)前燈和攝像頭的打開(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)”:小車(chē)前進(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)”按鍵,小車(chē)前進(jìn)一小段距離。一直按住“左轉(zhuǎn)”按鍵,小車(chē)原地向左轉(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ú)線遙控小車(chē),考慮到系統(tǒng)的獨(dú)立性與完美性,又加入了遙控終端模塊,這樣使得整個(gè)系統(tǒng)可以在不依賴(lài)上位機(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ù)期的所有功能。

物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么



上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉