ZigBee的遠程低功耗灌溉控制系統設計
2.3 電磁閥驅動電路
由于CC2530的驅動電路很小,不能驅動電磁閥里面的電機,使電磁閥關斷,所以必須在CC2530的I/O和電機之間加上驅動電路來驅動電機,其電路圖如圖4所示。
J2接電磁閥的輸入端,L7010為電機驅動模塊,其工作電壓最低可以達到1.8 V,持續驅動電流達1 A,尖峰工作電流可以達到2 A,并且可以方便地控制電機的正反轉,其中VM為電機電源,VCC為芯片電源。
3 系統軟件設計
3.1 系統控制協議設計
3.1.1 上位機向下位機發送控制消息
由于上位機發送指令時,是通過手機短信發送出去的,并且由于垃圾短信的存在,終端難免會收到一些和控制無關的指令,因此當解析短信中的控制指令時,必然會使一些短信無法解析或者解析出錯誤的控制信息。不能解析出控制指令會使程序出現運行錯誤,使整個系統癱瘓;而解析出錯誤的控制指令將使電磁閥出現誤動作,影響控制效果。因此,為了保證系統的安全性和健壯性,必須設計相應的協議。為了區分控制信息和非控制信息,必須有一個標志來加以區分,本文采用一個字節表示消息類型。每一個節點有4個電磁閥,所以采用一個字節可以描述一個電磁閥的控制信息。為了減少終端的控制和命令解析的難度,將此字節的剩下4位作為每一個電磁閥有無控制信息的標志。如果每一個節點都單獨發送一條控制短信,必然會加重系統的負擔,使電能消耗增加,所以本系統將所有節點的控制組合在一條短信中發送出去。其消息結構如下所示。
消息類型域,其長度為1個字節。應用中設置成表1消息類型域,其長度為1個字節。應用中設置成表1中的某值。
控制消息域,其長度根據具體農田里的終端個數決定,一個終端采用一個字節,其中每兩位為一個電磁閥的控制信息,應用中應設置成表2所列的值。
3.1.2 下位機向上位機發送數據消息
上位機向下位機發送控制指令后,下位機將會向上位機發送相應的回復信息,以告訴上位機下位機對所發送指令的執行情況,這種信息包括兩類:第一類是上位機發送完控制指令后,下位機收到指令的一個確認狀態回復,其消息類型值見表1;第二類消息是下位機對上位機發送的控制指令執行后的電磁閥信息,電磁閥的狀態信息格式如下。
其消息類型見表1。字節2以后的字節表示電池閥的狀態,每一個字節表示一個終端節點,其中低4位為電磁閥狀態。由于ZigBee協調器節點可能沒有收到終端采集到的電磁閥狀態數據,所以用第4位來表示低4位是否為電磁閥狀態,1為是,0為不是。
評論