關(guān) 閉

新聞中心

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

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

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

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

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

h.JPG


3.1.2 模塊聞通信協(xié)議
由于使用的是透明傳輸模塊,一個模塊發(fā)送給另一個模塊的信息是可以被其他所有模塊接收到的,所以應(yīng)該在信息中加入地址機制,每個模塊都有自己的地址。在某個模塊接收到數(shù)據(jù)時,應(yīng)首先判斷數(shù)據(jù)中接收地址是否與自己的地址一致,如果一致,則繼續(xù)處理該數(shù)據(jù),反之則放棄該數(shù)據(jù)。
考慮到模塊間通信的多種情況,將模塊間通信信息歸納為2種:命令和狀態(tài)信息,則對應(yīng)協(xié)議也為2種。
1)中繼模塊或遙控終端模塊發(fā)送命令
以字符串的形式發(fā)送命令,該命令字符串應(yīng)滿足以下兩個條件:
①字符串長度為7;
②字符串以“(”開頭,以“)”結(jié)尾。
若其它模塊接收到的命令字符串不滿足以上兩個條件,則放棄處理該命令。命令字符串的形式為:(xyabc),其中“x”表示接收模塊的地址,“y”表示發(fā)送模塊的地址,“abc為要執(zhí)行的命令縮寫,同表2中“發(fā)送命令”項括號內(nèi)字符串。模塊地址的約定,見表3。表中通信中繼模塊和遙控終端模塊的地址是一樣的,這樣就可以同時處理接收到其他模塊發(fā)送的信息數(shù)據(jù)了。

i.JPG


2)中繼模塊和遙控終端模塊接收狀態(tài)信息
由于其它模塊向中繼模塊和遙控終端模塊發(fā)送狀態(tài)信息的長度不一,所以以最長的狀態(tài)信息為準,也就是以溫濕度及人體檢測模塊的狀態(tài)信息長度為準,其它模塊狀態(tài)信息位的長度不足的以字符“0”補全。該命令字符串應(yīng)滿足以下2個條件:
①字符串長度為9;
②字符串以“(”開頭,以“)”結(jié)尾。
若通信中繼模塊和遙控終端模塊接收到的命令字符串不滿足以上兩個條件,則放棄處理該信息。信息字符串的形式為:(xyabcde),其中“x”表示接收模塊的地址,這里應(yīng)該為“0x11”,“Y”表示發(fā)送模塊的地址。“ahede”則表示發(fā)送模塊的狀態(tài)信息。
針對溫濕度及人體檢測模塊,“ah”以ASCII碼形式表示溫度,“cd”以ASCII碼形式表示濕度,“a”和“c”表示十位,“b”和“d”表示個位。“e”的前半字節(jié)表示人體檢測是否開啟,后半字節(jié)表示是否認有人進入檢測范圍。針對電燈控制模塊,“a”的前半字節(jié)表示燈1的開關(guān)狀態(tài),后半字節(jié)表示燈2的開關(guān)狀態(tài)。針對無線遙控小車,“a”的前半字節(jié)表示小車前燈的開關(guān)狀態(tài),后半字節(jié)表示攝像頭的開關(guān)狀態(tài)。
3.2 通信中繼模塊
通信中繼模塊主要處理兩件事:1)接收上位機的命令,并根據(jù)命令的內(nèi)容,按照協(xié)議發(fā)送給對應(yīng)模塊;2)接收每個模塊的信息,按照協(xié)議發(fā)送給上位機。
3.3 溫濕度及人體入侵檢測模塊
該模塊主要實現(xiàn)兩大功能:1)溫濕度和人體入侵檢測,并將檢測信息傳送給中繼模塊和遙控終端,以實現(xiàn)實時顯示;2)處理中繼模塊轉(zhuǎn)發(fā)的控制命令。程序中通過兩個標志位區(qū)別是上傳檢測信息還是處理控制命令。當(dāng)判斷是控制命令時,再具體分析是何命令并執(zhí)行該命令,執(zhí)行完畢,將新的狀態(tài)信息返回給中繼模塊和遙控終端模塊,然后等待下一條命令。
3.4 電燈控制模塊
電燈控制模塊實現(xiàn)控制電燈1、2的開啟和關(guān)閉操作。程序中通過一個標志位判斷接收信息是否為控制命令,若是則判斷具體命令并執(zhí)行,執(zhí)行完畢按照協(xié)議更新狀態(tài)信息,并按照協(xié)議把狀態(tài)信息返回給中繼模塊和遙控終端模塊,然后等待下一條命令。
3.5 無線遙控小車
無線遙控小車模塊實現(xiàn)兩大功能:小車運動控制;小車前燈和攝像頭的打開和關(guān)閉控制。程序中通過一個標志位判斷接收信息是否為控制命令,若是則判斷具體命令,如果是運動命令,則執(zhí)行相應(yīng)的運行命令,延時600 ms后,停止運動,然后等待下一條命令;如果不是運動命令,則執(zhí)行該命令后,按照協(xié)議更新狀態(tài)信息,并按照協(xié)議把狀態(tài)信息返回給中繼模塊和遙控終端模塊,然后等待下一條命令。
3.6 遙控終端模塊
遙控終端模塊實現(xiàn)三大功能:在字符液晶屏上顯示系統(tǒng)狀態(tài)信息;按鍵檢測及發(fā)送命令;啟動和關(guān)閉蜂鳴器。程序啟動后一直判斷是否有按鍵按下,如果有按鍵按下,則檢測按鍵,并將按鍵對應(yīng)的命令按照協(xié)議傳輸給其它模塊,然后延時500 ms,等待下一次按鍵。若沒有按鍵,則檢測標志位Flag是否等于1。若Flag等于1,表示接收到了其它模塊的狀態(tài)信息,然后按照信息的內(nèi)容更新液晶屏對應(yīng)的內(nèi)容,如果來自溫濕度及人體檢測模塊的信息中有檢測到人體進入檢測區(qū)的信息,則打開蜂鳴器2 s。

4 系統(tǒng)測試
系統(tǒng)測試分3部分:1)以通信中繼模塊為主:從上位機下發(fā)送正常合法的命令,觀察現(xiàn)象;之后再發(fā)送不合法的命令,觀察現(xiàn)象。2)以遙控終端模塊為主:依次按鍵,觀察現(xiàn)象。3)以人體感應(yīng)模塊為主:測試人體檢測功能。測試時為方便起見,將通信中繼模塊用串口線直接連到PC上,通過串口調(diào)試助手操作并觀察。
4.1 通信中繼模塊測設(shè)
發(fā)送字符串“(g00)”:小車前進了一小段距離。
發(fā)送字符串“(ol1)”:電燈1打開。
發(fā)送字符串“(cl2)”:電燈2關(guān)閉。
發(fā)送字符串“(mmm)j”:系統(tǒng)不做任何動作。
4.2 遙控終端模塊測設(shè)
按“前進”按鍵,小車前進一小段距離。一直按住“左轉(zhuǎn)”按鍵,小車原地向左轉(zhuǎn)圈。
按“開燈1”按鍵,電燈1打開,同時液晶屏上的對應(yīng)信息也隨之改變。
4.3 人體檢測模塊測設(shè)
用手在該模塊上方劃過,終端模塊的蜂鳴器響起,同時液晶屏提示有人進入該范圍。串口調(diào)試助手也收到“0x28 0Xf0 0x32 0x33 0x34 0x30 0x00 0xff 0x29”十六進制的字符串,根據(jù)協(xié)議可得知第8個字節(jié)表示人體檢測的狀態(tài)信息,前半字節(jié)表示該功能是否開啟,后半字節(jié)表示是否有人進入檢測范圍,所以,“0xff”表示檢測到了人體進入檢測范圍。

5 結(jié)束語
該系統(tǒng)以最常用也最可靠的電燈開關(guān)控制、溫濕度檢測和人體入侵檢測為主要切入點,同時加入了可擴展的移動平臺——無線遙控小車,考慮到系統(tǒng)的獨立性與完美性,又加入了遙控終端模塊,這樣使得整個系統(tǒng)可以在不依賴上位機的情況下執(zhí)行各種操作。
系統(tǒng)難點是各模塊間通信協(xié)議的設(shè)計,經(jīng)過反復(fù)的研究和查找資料,最終參考了以太網(wǎng)數(shù)據(jù)幀的形式,將每個模塊指定一個地址,在傳輸數(shù)據(jù)的開頭將目標模塊地址和發(fā)送模塊地址寫入,這樣接收的模塊就能根據(jù)該地址去判斷該如何處理該數(shù)據(jù)。經(jīng)過反復(fù)的調(diào)試與修改,本系統(tǒng)最終實現(xiàn)了預(yù)期的所有功能。

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



上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉