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