張健+阮海清
摘 要:為了準(zhǔn)確檢測園藝植物的環(huán)境和生理數(shù)據(jù),使對園藝植物的管理變得簡單和智能化,文中設(shè)計了基于無線傳感器和3G網(wǎng)絡(luò)的檢測系統(tǒng),以將采集的數(shù)據(jù)傳輸?shù)竭h(yuǎn)程PC端提供決策支持。該系統(tǒng)包括傳感器節(jié)點、WSN、嵌入式網(wǎng)關(guān)、PC端界面,并初步實驗證明了該系統(tǒng)的合理性與可靠性。
關(guān)鍵詞:園藝植物;物聯(lián)網(wǎng);3G;PC端
中圖分類號:TP391.4 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2015)10-00-03
0 引 言
將農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用于花卉生長中,能及時獲取植物的生長環(huán)境和各種生理指標(biāo)[1]。通過集成各種傳感器,可以探測包括溫濕度、光照度、二氧化碳濃度、土壤pH值等農(nóng)田信息[2]。而用植株莖干直徑變化法來衡量作物的生理情況,具有簡單易行、對植株不具有破壞性、可持續(xù)檢測和自動積累的特點[3]。
本文實現(xiàn)了一種集溫濕度、二氧化碳濃度、植物莖干直徑檢測于一體的植物生理檢測系統(tǒng)。該系統(tǒng)能將檢測到的數(shù)據(jù)信息通過無線傳感器網(wǎng)絡(luò)和3G網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)端的PC機(jī),給管理者提供決策支持。
1 系統(tǒng)硬件設(shè)計
1.1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)由數(shù)據(jù)采集模塊(傳感器節(jié)點)采集環(huán)境和植物生理信息,通過ZigBee協(xié)議構(gòu)建無線傳感器網(wǎng)絡(luò)將數(shù)據(jù)送到協(xié)調(diào)器節(jié)點,協(xié)調(diào)器節(jié)點通過串口將數(shù)據(jù)送給嵌入式平臺,再由3G網(wǎng)絡(luò)傳輸?shù)轿挥谶h(yuǎn)端的PC平臺供管理者決策使用。本系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
1.2 各模塊簡介
數(shù)據(jù)采集模塊由莖干直徑探測器、溫濕度傳感器、CO2濃度傳感器等采集作物生長信息。莖干直徑探測器由可變差動放大器(LVDT)和控制電路構(gòu)成。LVDT是把被測位移量變換為電信號的傳感器[4]。將其固定在被測植株莖干部位,通過與CC2530連接自動記錄植株莖干直徑微變化[3]。安裝后能在不影響作物生長的情況下持續(xù)測量作物莖干直徑變化。CO2濃度傳感器利用非色散紅外(NDIR)原理測量空氣中的CO2濃度,有很好的選擇性,無氧氣依賴性。
圖2所示為傳感器與CC2530的接口電路原理圖。溫濕度傳感器SHT10通過I2C接口連接到CC2530的P1_2、P1_3引腳,CO2傳感器和LVDT連接到CC2530的串行口P0_2、P0_3引腳。
無線傳感器由傳感器節(jié)點和匯聚節(jié)點構(gòu)成,本文采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和ZigBee2007協(xié)議棧。傳感器把采集到的數(shù)據(jù)傳送到匯聚節(jié)點進(jìn)行簡單的數(shù)據(jù)融合后,再通過串口傳輸?shù)角度胧狡脚_。
嵌入式平臺主要用于通過串口接收傳感器網(wǎng)絡(luò)傳送的數(shù)據(jù),能夠顯示植物生長環(huán)境和生理數(shù)據(jù),實現(xiàn)對數(shù)據(jù)的檢測。接受遠(yuǎn)端計算機(jī)對數(shù)據(jù)的請求,通過3G網(wǎng)絡(luò)向遠(yuǎn)程的PC端發(fā)送傳感器數(shù)據(jù)。
PC端是一個位于遠(yuǎn)端的主機(jī),通過3G網(wǎng)絡(luò)向嵌入式平臺發(fā)出數(shù)據(jù)請求,獲取植物的生理參數(shù)及環(huán)境信息,對接收到的信息進(jìn)行處理,提交給控制中心進(jìn)行后續(xù)的控制動作。PC端包括了PC機(jī)、3G模塊以及人機(jī)交互界面。
2 系統(tǒng)軟件設(shè)計
設(shè)計并實現(xiàn)植物生理檢測系統(tǒng)軟件時,應(yīng)重點解決三點關(guān)鍵技術(shù):無線傳感器網(wǎng)絡(luò)程序、嵌入式平臺軟件、PC端軟件。
2.1 無線傳感器網(wǎng)絡(luò)程序
本系統(tǒng)采用基于ZigBee協(xié)議組建無線傳感網(wǎng),在實現(xiàn)上除了硬件環(huán)境外,還需要合理的軟件設(shè)計,以保證系統(tǒng)長久穩(wěn)定可靠的運行[5]。協(xié)調(diào)器初始化并建立起網(wǎng)絡(luò)后,等待其他設(shè)備加入網(wǎng)絡(luò),隨后傳感器節(jié)點初始化,并申請加入到先前建立的無線網(wǎng)絡(luò)中。當(dāng)傳感器節(jié)點與協(xié)調(diào)器完成綁定成功組網(wǎng)后,設(shè)備運行維護(hù)狀態(tài),傳感器節(jié)點每隔3秒采集和發(fā)送數(shù)據(jù)信息。協(xié)調(diào)器執(zhí)行輪詢循環(huán)程序,并通過終端處理來接受其他設(shè)備發(fā)來的信息。圖3所示是協(xié)調(diào)器與傳感器的工作流程圖。
系統(tǒng)中的無線傳感器網(wǎng)絡(luò)程序設(shè)計包括傳感器節(jié)點驅(qū)動和協(xié)調(diào)器程序。傳感器節(jié)點中傳感器采集到數(shù)據(jù)后通過UART或者I2C總線發(fā)送給CC2530單片機(jī)。單片機(jī)復(fù)位后完成節(jié)點初始化及數(shù)據(jù)端口驅(qū)動后,立即搜尋、發(fā)現(xiàn)并加入ZigBee網(wǎng)絡(luò),當(dāng)協(xié)調(diào)器允許其加入后,即建立綁定關(guān)系,然后進(jìn)入“睡眠-喚醒采集數(shù)據(jù)-睡眠”的低功耗模式。
協(xié)調(diào)器復(fù)位完成初始化工作后,建立具有唯一網(wǎng)絡(luò)標(biāo)識的ZigBee網(wǎng)絡(luò)并進(jìn)入監(jiān)控模式,當(dāng)有傳感器節(jié)點申請加入時,允許綁定并對該節(jié)點發(fā)送相應(yīng)并分配16位短地址;當(dāng)有數(shù)據(jù)傳輸時,接收處理數(shù)據(jù)并發(fā)送給嵌入式平臺。
圖3 協(xié)調(diào)器與傳感器工作流程
2.2 嵌入式平臺軟件設(shè)計
嵌入式平臺可起到網(wǎng)關(guān)和數(shù)據(jù)處理的作用。它通過串口接收協(xié)調(diào)器傳送過來的數(shù)據(jù)信息,在對信息進(jìn)行加工處理后通過GPRS網(wǎng)絡(luò)傳輸給遠(yuǎn)端的PC機(jī)。本部分主要包括傳感器數(shù)據(jù)采集端口驅(qū)動、3G模塊數(shù)據(jù)端口的驅(qū)動和數(shù)據(jù)庫。串口讀寫操作使用Linux底層串口操作,使用非阻塞方式讀寫串口,所有程序采用Qt在Linux環(huán)境下編寫。
數(shù)據(jù)采集端口驅(qū)動負(fù)責(zé)接收協(xié)調(diào)器發(fā)送過來的數(shù)據(jù),并采用輪詢的方式讀取串口數(shù)據(jù),在傳感器數(shù)據(jù)正常情況下,每隔3 s上報一次,環(huán)境參數(shù)變化過快時,每隔1 s上報一次數(shù)據(jù),系統(tǒng)中采用多線程循環(huán)讀取并解析傳感器數(shù)據(jù)。
3G模塊數(shù)據(jù)端口驅(qū)動負(fù)責(zé)3G模塊之間的短信通信,采用多線程循環(huán)讀取短信數(shù)據(jù),并對其進(jìn)行解析處理。短信讀取時,通過串口使用AT指令給3G模塊數(shù)據(jù)串口(ttyUSB0)發(fā)送讀寫短信的指令。關(guān)鍵代碼如下:
void com_msg(int fd,char *number, char *text)
{
char ctl[]={26,0};
com_writecmd(fd,"AT", strlen("AT"));
com_writecmd(fd, "ATE1", strlen("ATE1"));
com_writecmd(fd, "AT+CMGF=1", strlen("AT+CMGF=1"));
com_write(fd, "AT+CMGS=", strlen("AT+CMGS="));
com_write(fd, "\"", strlen("\""));
com_write(fd, number, strlen(number));
com_write(fd, "\"", strlen("\""));
com_write(fd ,"\r", strlen("\r"));
usleep(10000);
com_write(fd, text, strlen(text));
com_write(fd, ctl, 1); //“CTRL+Z”的ASCII碼
usleep(300000);
}
本系統(tǒng)使用進(jìn)程內(nèi)數(shù)據(jù)庫SQLite,該數(shù)據(jù)庫小巧靈活,無須額外安裝配置且支持大部分ANSISQL92標(biāo)準(zhǔn),而且編程簡單。SQLite數(shù)據(jù)庫支持大部分基本SQL操作,如SELECT、INSERT、DELETE等。下面為插入的操作代碼:
if(dbData.open())//插入數(shù)據(jù)
{
QSqlQuery query(dbData);
query.prepare("INSERT INTO tableData "
"VALUES (?,?,?,?,?)");
query.bindValue(0,QDate::currentDate().toString("yyyy-MM-dd") + " " +QTime::currentTime().toString("hh:mm:ss"));
query.bindValue(1,QString::number(sendData->ppm)); query.bindValue(2,QString::number((sendData->temp1+sendData->temp2)/2)); query.bindValue(3,QString::number((sendData->humi1+sendData->humi2)/2));
query.bindValue(4,QString::number(sendData->shift));
query.exec();
}
2.3 PC端軟件設(shè)計
PC端是位于遠(yuǎn)端的主機(jī),可通過3G網(wǎng)絡(luò)對嵌入式平臺進(jìn)行數(shù)據(jù)請求和操作,以獲取熱帶花卉作物生理參數(shù)及環(huán)境信息,實時操控數(shù)據(jù)接收頻率,對于接收到信息的處理,完成對于花卉作物的生理監(jiān)測,系統(tǒng)運行于Linux系統(tǒng)下,采用Qt編程。
PC端程序主要包括3G模塊數(shù)據(jù)端驅(qū)動、短信讀寫、數(shù)據(jù)庫操作等。串口讀寫操作封裝為串口操作類Win_QextSerialPort,并能完成串口打開、關(guān)閉、讀寫等操作。
3 實驗結(jié)果及分析
在IAR Embeded Workbench IDE下,打開f8wConfig.cfg文件,配置好CHANNEL和網(wǎng)絡(luò)PANID,編譯生成傳感器節(jié)點和協(xié)調(diào)器節(jié)點的Hex文件,分別燒入對應(yīng)節(jié)點的CC2530。
在嵌入式平臺移植Linux操作系統(tǒng),搭建Qt運行環(huán)境,下載嵌入式平臺軟件并設(shè)置好運行環(huán)境。重啟系統(tǒng)后,WSN自動組網(wǎng),主動上報傳感器數(shù)據(jù)。PC端在windows XP環(huán)境下安裝PC端軟件。
測試時,在被測植物附近安裝檢測平臺,在作物莖干部位安裝LVDT,嵌入式平臺距PC端約1.5千米。圖4是PC端的測試結(jié)果。
上述測試結(jié)果表明,本系統(tǒng)能正確地檢測出植物的生長環(huán)境及生理數(shù)據(jù),并通過3G網(wǎng)絡(luò)可靠的傳送到遠(yuǎn)端的PC機(jī),給觀賞園藝植物的栽培管理決策提供數(shù)據(jù)支持。
圖4 PC端讀出數(shù)據(jù)
4 結(jié) 語
將物聯(lián)網(wǎng)運用到園藝植物養(yǎng)護(hù)上,可解決很多植物愛護(hù)者的困境。通過檢測系統(tǒng)實時了解植物當(dāng)前的生長環(huán)境和生理指標(biāo),從而為正確決策提供數(shù)據(jù)支持。本系統(tǒng)采用3G無線通信,便于安裝和控制,在加入控制器后,就能適用于規(guī)?;N植和家庭智能養(yǎng)護(hù)使用。
當(dāng)LVDT測量莖干直徑時,會對莖干具有一定的壓迫性,尤其是應(yīng)用于比較嬌嫩的花卉植物時尤其明顯,下一步的研究是用機(jī)器視覺取代LVDT。
參考文獻(xiàn)
[1] 賴望峰.農(nóng)作物聯(lián)網(wǎng)在現(xiàn)代花卉生產(chǎn)中的作用[J].中國花卉園藝,2010(20):28-29.
[2] 孫玉文.基于無線傳感器網(wǎng)絡(luò)的農(nóng)田環(huán)境檢測系統(tǒng)研究與實現(xiàn)[D].南京:南京農(nóng)業(yè)大學(xué),2013.
[3] 高峰,俞立,張文安,等.基于莖直徑變化的無線傳感器網(wǎng)絡(luò)作物精量灌溉系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報,2008,24(11):7-12.
[4] 李雪寶,許駿,宋騰飛,等.基于數(shù)字位移傳感器的位移測量系統(tǒng)[J].現(xiàn)代電子技術(shù),2010,33(5):95-97.
[5] 胡培金,江挺,趙燕東.基于zigbee無線網(wǎng)絡(luò)的土壤墑情監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報,2011,27(4):230-234.