關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 物聯網智能機房系統設計與實現

        物聯網智能機房系統設計與實現

        作者: 時間:2013-01-14 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/159558.htm

        h.JPG


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

        i.JPG


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

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

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

        物聯網相關文章:物聯網是什么



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵璧县| 凤山市| 长寿区| 大方县| 大化| 枞阳县| 屏东县| 陈巴尔虎旗| 乐清市| 石门县| 申扎县| 和田县| 大同县| 陈巴尔虎旗| 禹城市| 四会市| 原阳县| 郑州市| 林甸县| 白城市| 大厂| 通江县| 吉安县| 富裕县| 繁峙县| 观塘区| 犍为县| 五莲县| 托里县| 监利县| 扶风县| 嵊泗县| 鄯善县| 临夏市| 江山市| 宁都县| 福泉市| 噶尔县| 文化| 沛县| 昌乐县|