基于Zigbee技術(shù)的蔬菜大棚管理系統(tǒng)設(shè)計(jì)_第1頁
基于Zigbee技術(shù)的蔬菜大棚管理系統(tǒng)設(shè)計(jì)_第2頁
基于Zigbee技術(shù)的蔬菜大棚管理系統(tǒng)設(shè)計(jì)_第3頁
基于Zigbee技術(shù)的蔬菜大棚管理系統(tǒng)設(shè)計(jì)_第4頁
基于Zigbee技術(shù)的蔬菜大棚管理系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于Zigbee技術(shù)的蔬菜大棚管理系統(tǒng)設(shè)計(jì)摘要:隨著計(jì)算機(jī)技術(shù)、無線通信技術(shù)以及農(nóng)業(yè)設(shè)施的不斷完善,蔬菜大棚也慢慢向著無線、經(jīng)濟(jì)、智能化的方向開展。而溫濕度是蔬菜大棚環(huán)境監(jiān)控的一項(xiàng)重要指標(biāo),從早期的人工管理、自動(dòng)控制,以及到現(xiàn)在要求的智能化,溫濕度的監(jiān)控越來越平安、經(jīng)濟(jì)、高效、便捷。本文以增強(qiáng)型工業(yè)標(biāo)準(zhǔn)的8051內(nèi)核CC2430為硬件平臺(tái)、IEEE802.15.4為協(xié)議標(biāo)準(zhǔn)以及和數(shù)據(jù)庫等的軟件結(jié)合,設(shè)計(jì)了一個(gè)基于Zigbee網(wǎng)絡(luò)的遠(yuǎn)程蔬菜大棚溫濕度的監(jiān)控系統(tǒng)。該系統(tǒng)運(yùn)行可靠、功耗低、本錢低到達(dá)了我們對(duì)蔬菜大棚溫濕度的遠(yuǎn)程實(shí)時(shí)監(jiān)控。為提高農(nóng)作物的生產(chǎn)量、為農(nóng)民增收帶來了很好的經(jīng)濟(jì)和社會(huì)效益。關(guān)鍵詞:Zigbee;實(shí)時(shí)監(jiān)控;無線通信;數(shù)據(jù)庫;智能化ManagingSystemofGreenhousesBasedonZigbeeHuangXiongfengSanmingAbstract:Withthecontinuousperfectionofcomputertechnology,wirelesscommunicationtechnologyandagriculturalfacilities,thetechnologyofgreenhousesisalsodevelopinginthedirectionofwireless-ness,economyandintelligentization.Humitureisanimportantindicatorinmonitoringtheenvironmentofgreenhouses.Withtheearlylaborcontrol,automaticmanagementandthepresentrequiredintelligentization,themonitoringofhumitureisbecomingmoreandmoresafe,economical,efficientandconvenient.Withenhancedindustry-standard8051kernelCC2430ashardwareplatform,IEEE802.15.4asprotocolstandardsandsoftwarescombinedwithdatabase,thepaperdesignsaremotemonitoringsystemofgreenhousesbasedonZigbee.Thesystemisdependableandhelpstoachievereal-timeremotemonitoringofthehumitureofgreenhouseswithitslowpowerconsumptionandcost.Itcanincreasetheproductionofcropsandthusbringgreateconomicandsocialbenefitstofarmers.Keywords:Zigbee;real-timeremotemonitoring;wirelesscommunication;database;intelligentization

目錄第一章緒論11.1本文研究的背景和意義11.2相關(guān)領(lǐng)域國內(nèi)外的研究現(xiàn)狀21.3本人主要工作31.4本文組織結(jié)構(gòu)3第二章系統(tǒng)結(jié)構(gòu)框架分析和設(shè)計(jì)42.1無線蔬菜大棚模型結(jié)構(gòu)分析42.2系統(tǒng)整體框架設(shè)計(jì)6第三章系統(tǒng)開發(fā)環(huán)境和軟硬件選型83.1系統(tǒng)開發(fā)環(huán)境83.2系統(tǒng)軟硬件選型8第四章系統(tǒng)軟硬件的設(shè)計(jì)和實(shí)現(xiàn)144.1數(shù)據(jù)采集節(jié)點(diǎn)的設(shè)計(jì)和實(shí)現(xiàn)144.1.1溫濕度數(shù)據(jù)采集模塊144.1.2無線通信模塊164.2基站節(jié)點(diǎn)的設(shè)計(jì)和實(shí)現(xiàn)18標(biāo)準(zhǔn)和Zigbee協(xié)議介紹184.2.2基站節(jié)點(diǎn)實(shí)現(xiàn)功能描述19溫濕度數(shù)據(jù)解碼224.3節(jié)點(diǎn)程序的燒錄234.4效勞端的設(shè)計(jì)和實(shí)現(xiàn)274.5遠(yuǎn)程主機(jī)端的設(shè)計(jì)和實(shí)現(xiàn)284.5.1主機(jī)效勞端應(yīng)用軟件設(shè)計(jì)分析294.5.2主機(jī)效勞端應(yīng)用軟件局部功能實(shí)現(xiàn)30第五章系統(tǒng)運(yùn)行和驗(yàn)證37第六章結(jié)論39參考文獻(xiàn)40致謝41緒論隨著人類社會(huì)的開展,溫室大棚的出現(xiàn)促進(jìn)了農(nóng)業(yè)開展、帶動(dòng)了農(nóng)民的增收,給人類的農(nóng)業(yè)開展帶來了可觀的經(jīng)濟(jì)和社會(huì)效益。溫濕度作為農(nóng)作物生長的重要因素,便成為了蔬菜大棚智能化控制的主要研究局部。1.1本文研究的背景和意義作為世界四大文明古國之一,我國也是世界上的農(nóng)業(yè)大國。有著悠久的農(nóng)業(yè)種植歷史,但國外的溫室種植,溫室控制管理技術(shù)已經(jīng)相比照擬成熟,而我國的農(nóng)業(yè)設(shè)施、控制技術(shù)、管理技術(shù)等卻遠(yuǎn)遠(yuǎn)落后于歐美等一些興旺國家。隨著改革開放,特別是90年代以來,在過去的二十幾年里先后從國外引進(jìn)了許多溫室種植技術(shù),以蔬菜大棚、花卉為主的植物栽培設(shè)施在大江南北遍地開花,隨著政府對(duì)城市蔬菜產(chǎn)業(yè)的不斷投入,鄉(xiāng)鎮(zhèn)內(nèi)蔬菜大棚產(chǎn)業(yè)被看作是21世紀(jì)最具活力的新產(chǎn)業(yè)之一。顯然引進(jìn)國外的先進(jìn)技術(shù)是實(shí)現(xiàn)我國現(xiàn)代化農(nóng)業(yè)的一條快捷路徑,與此同時(shí)我們也要開展適合我國環(huán)境資源特點(diǎn)的有我們自主知識(shí)產(chǎn)權(quán)的溫室控制技術(shù)[1]。我國地大物博,但可耕植的土地卻很少,加上人口眾多,人均占有耕地面積少。因此,想要提高農(nóng)業(yè)生產(chǎn)值,只靠增加耕地面積是不現(xiàn)實(shí)的,所以我們要想方法來提高單位產(chǎn)量。溫室大棚技術(shù)就是其中一個(gè)好的方法。溫室大棚是一種可以改變植物生長環(huán)境、為植物生長創(chuàng)造最正確條件、防止外界四季變化和惡劣氣候?qū)ζ溆绊懙囊粋€(gè)場所。通過建立一個(gè)模擬適合生物生長的氣候條件,創(chuàng)造一個(gè)人工氣象環(huán)境,來消除生物生長對(duì)溫濕度等環(huán)境的依賴。而且它能使傳統(tǒng)的季節(jié)性作物不再依賴以季節(jié)氣候等因素,使得在某個(gè)季節(jié)里可以長出人類所需的作物。由于溫室大棚能到達(dá)調(diào)節(jié)產(chǎn)期,促進(jìn)生長發(fā)育,防治病蟲害及提高質(zhì)量和產(chǎn)量等眾多的作用,并且已成為農(nóng)民增收的主要手段,所以在世界上越來越普及溫室大棚技術(shù)。隨著大棚技術(shù)的普及,溫室大棚數(shù)量不斷增多,溫室大棚的溫濕度控制便成為一個(gè)十分重要的課題。自18世紀(jì)工業(yè)革命以來,工業(yè)開展與是否能掌握溫濕度有著密切的聯(lián)系。在冶金、鋼鐵、石化、水泥、玻璃、醫(yī)藥等行業(yè),可以說幾乎80%的工業(yè)部門都不得不考慮著溫濕度的因素。溫濕度不但對(duì)于工業(yè)如此重要,在農(nóng)業(yè)生產(chǎn)中溫濕度的監(jiān)測與控制也有著十分重要的意義。傳統(tǒng)的溫濕度控制是在溫室大棚內(nèi)部懸掛溫度計(jì)和濕度計(jì),通過讀取溫度值和濕度值了解實(shí)際溫濕度,然后根據(jù)現(xiàn)有溫濕度與額定溫濕度進(jìn)行比擬,看溫濕度是否過高或過低,然后進(jìn)行相應(yīng)的通風(fēng)或者灑水。這些操作都是在人工情況下進(jìn)行的,消耗了大量的人力物力。現(xiàn)在,隨著國家經(jīng)濟(jì)的快速開展,農(nóng)業(yè)產(chǎn)業(yè)規(guī)模的不斷提高,農(nóng)產(chǎn)品在大棚中培育的品種越來越多,對(duì)于數(shù)量較多的大棚,傳統(tǒng)的溫度控制措施就顯現(xiàn)出很大的局限性[2]。溫室大棚的建設(shè)對(duì)溫濕度檢測與控制技術(shù)也提出了越來越高的要求。現(xiàn)在我們生活在一個(gè)智能化的世界中,其中單片機(jī)等計(jì)算機(jī)技術(shù)是功不可沒的一局部。單片機(jī)是單片微型計(jì)算機(jī)的簡稱,其功能強(qiáng)大、體積小、可靠性高、造價(jià)低和開發(fā)周期短等優(yōu)點(diǎn)使其成為自動(dòng)化和各個(gè)測控領(lǐng)域中必不可少且廣泛應(yīng)用的器件,尤其在日常生活中也發(fā)揮越來越大的作用。它比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)。現(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成有單片機(jī)。工業(yè)控制、尖端武器、通信設(shè)備、信息處理、家用電器等各測控領(lǐng)域都有其身影。采用單片機(jī)來對(duì)農(nóng)業(yè)大棚中的溫濕度進(jìn)行監(jiān)測、控制等,不僅具有簡單方便、控制性強(qiáng)和實(shí)時(shí)性高等優(yōu)點(diǎn),而且可以大幅度提高被控溫濕度的技術(shù)指標(biāo),從而能夠大大提高產(chǎn)品的質(zhì)量和數(shù)量,而且單片機(jī)對(duì)溫濕度的控制問題是一個(gè)工農(nóng)業(yè)生產(chǎn)中經(jīng)常會(huì)遇到的問題。因此,本課題圍繞基于單片機(jī)的溫室大棚控制系統(tǒng)展開了應(yīng)用研究工作。1.2相關(guān)領(lǐng)域國內(nèi)外的研究現(xiàn)狀國外對(duì)溫室大棚內(nèi)的諸多環(huán)境進(jìn)行控制的研究比我國早,大約始于20世紀(jì)70年代。最初采用的是人工的現(xiàn)場采集、記錄、統(tǒng)計(jì)等手段來進(jìn)行對(duì)溫室大棚內(nèi)的環(huán)境進(jìn)行相應(yīng)的控制等。大概到了80年代末那么迅速的采用自動(dòng)化控制。而這些都離不開人的因素參與在里面,所以目前各個(gè)國家在已有的根底上對(duì)溫室大棚進(jìn)行了更深入的研究,讓溫室大棚的管理和計(jì)算機(jī)、無線網(wǎng)絡(luò)等實(shí)現(xiàn)無人值守等方面開展。從國內(nèi)外溫室控制技術(shù)的開展?fàn)顩r來看,溫室環(huán)境控制技術(shù)大致經(jīng)歷三個(gè)開展階段:〔1〕手動(dòng)控制。手動(dòng)控制產(chǎn)生于人類對(duì)溫室栽培作物的前期,在這個(gè)時(shí)期,溫室大棚內(nèi)的環(huán)境因素都必須有人類來進(jìn)行觀察、測量、記錄,從而進(jìn)行溫室大棚內(nèi)環(huán)境的調(diào)整,諸如光線、溫濕度等。在此根底上產(chǎn)生的經(jīng)驗(yàn)將記錄在文獻(xiàn)中,從而成為人類對(duì)溫室大棚技術(shù)研究及其實(shí)踐的理論依據(jù)。在這個(gè)時(shí)期,由于人的因素是溫室環(huán)境控制的主導(dǎo),雖然溫室大棚產(chǎn)生的經(jīng)濟(jì)效益比傳統(tǒng)作物生長產(chǎn)生的經(jīng)濟(jì)效益高出了許多,但是其生產(chǎn)效率低下也讓人類慢慢的在研究新的控制方法,從而讓農(nóng)業(yè)的開展更加向工業(yè)化式的生產(chǎn)靠近?!?〕自動(dòng)控制。隨著人類對(duì)手動(dòng)控制階段的深入探索,加上工業(yè)化程度的漸漸成熟,人類對(duì)溫濕度大棚的環(huán)境監(jiān)測、控制等又進(jìn)入另一個(gè)階段:自動(dòng)化控制。在這個(gè)階段人類根據(jù)以往的經(jīng)驗(yàn),對(duì)溫室大棚內(nèi)作為生長的環(huán)境有了深入的了解,以是采用工業(yè)控制的手段對(duì)大棚內(nèi)的環(huán)境進(jìn)行調(diào)整。拿對(duì)大棚內(nèi)光線強(qiáng)度的控制來舉例。大棚管理員先對(duì)大棚內(nèi)作物對(duì)光線需求量的上下閥值進(jìn)行了預(yù)先的設(shè)置,接著根據(jù)大棚內(nèi)光線傳感器傳來的數(shù)據(jù)與上下閥值進(jìn)行比照,再根據(jù)比照的結(jié)果來決定是否對(duì)大棚內(nèi)的光線強(qiáng)度進(jìn)行調(diào)整控制等,從而實(shí)現(xiàn)了農(nóng)業(yè)大棚的工業(yè)化式生產(chǎn)、農(nóng)業(yè)生產(chǎn)效率得到了進(jìn)一步的提高。我國對(duì)國外的溫室大棚設(shè)備及其控制技術(shù)的引入等大多數(shù)都是停留在這個(gè)階段?!?〕智能化控制。隨著計(jì)算機(jī)科學(xué)技術(shù)的不斷開展,工業(yè)控制領(lǐng)域慢慢向著智能化方向開展,溫室大棚控制技術(shù)也將面臨著進(jìn)一步的改革。到了智能化控制階段人類根據(jù)祖先留下的關(guān)于溫室大棚控制的文獻(xiàn)和經(jīng)驗(yàn)的傳承,進(jìn)一步總結(jié)對(duì)溫室大棚內(nèi)環(huán)境控制的經(jīng)驗(yàn)等,從而研究出一種不同作物、不同環(huán)境等的控制技術(shù),漸漸的淡化人的因素,從而更大程度的提高生產(chǎn)效率。讓溫室大棚控制技術(shù)逐漸的朝著智能化、無人值守、先進(jìn)、高收益等方向開展。1.3本人主要工作在對(duì)國內(nèi)外的一些文獻(xiàn)的閱讀,以及對(duì)計(jì)算機(jī)技術(shù)在工業(yè)控制領(lǐng)域的研究、傳感器技術(shù)的了解以及對(duì)無線網(wǎng)絡(luò)技術(shù)的研究,利用這些現(xiàn)有的設(shè)備和技術(shù),分析和總結(jié)出國內(nèi)外對(duì)溫室大棚環(huán)境控制技術(shù)的經(jīng)驗(yàn)和成敗教訓(xùn)等,再從實(shí)際的種植、生產(chǎn)情況出發(fā),根據(jù)預(yù)先設(shè)計(jì)好的完整流程,用更短的時(shí)間、盡量少的資源生產(chǎn)出更優(yōu)質(zhì)的作物產(chǎn)物,從而提高了農(nóng)業(yè)生產(chǎn)效率,為人類獲得更多達(dá)大的經(jīng)濟(jì)效益。從系統(tǒng)的整體功能出發(fā),本文將討論該系統(tǒng)的硬件構(gòu)成和軟件設(shè)計(jì),即系統(tǒng)的數(shù)據(jù)采集節(jié)點(diǎn)局部,數(shù)據(jù)轉(zhuǎn)發(fā)局部(基站),效勞器端局部以及遠(yuǎn)程主機(jī)局部(提供用戶數(shù)據(jù)查詢)。其中數(shù)據(jù)采集局部和數(shù)據(jù)轉(zhuǎn)發(fā)局部是基于增強(qiáng)型工業(yè)標(biāo)準(zhǔn)的8051核單片機(jī)處理器構(gòu)成的;效勞器端主要是收集基站發(fā)來的數(shù)據(jù)、存儲(chǔ)、并負(fù)責(zé)將數(shù)據(jù)傳輸?shù)竭h(yuǎn)程用戶使用端;遠(yuǎn)程主機(jī)局部主要實(shí)現(xiàn)從效勞端接收溫濕度數(shù)據(jù),并以此為根底為用戶提供豐富軟件功能。本系統(tǒng)重點(diǎn)將放在軟件設(shè)計(jì)和實(shí)現(xiàn)上。1.4本文組織結(jié)構(gòu)本文總共分6章來講述關(guān)于無線蔬菜大棚的設(shè)計(jì)和實(shí)現(xiàn)。第一章主要陳述了研究本系統(tǒng)的背景和意義、國內(nèi)國外相關(guān)領(lǐng)域的研究現(xiàn)狀以及本人在本系統(tǒng)中所作的工作;第二章主要介紹了整個(gè)系統(tǒng)的整體框架以及一些必要流程圖來幫助理解本系統(tǒng);第三章主要論述了開發(fā)本系統(tǒng)所用到的開發(fā)環(huán)境、工具等;第四章對(duì)本系統(tǒng)的軟硬件實(shí)現(xiàn)進(jìn)行了詳細(xì)的描述;第五章將對(duì)本系統(tǒng)運(yùn)行的結(jié)果進(jìn)行驗(yàn)證;第六章對(duì)本系統(tǒng)及本文進(jìn)行了總結(jié)。第二章系統(tǒng)結(jié)構(gòu)框架分析和設(shè)計(jì)2.1無線蔬菜大棚模型結(jié)構(gòu)分析經(jīng)過對(duì)Zigbee無線組網(wǎng)技術(shù)的了解、對(duì)蔬菜大棚的自動(dòng)化控制的了解、溫濕度采集等環(huán)節(jié)的了解,再根據(jù)預(yù)期開始時(shí)間、本錢、經(jīng)濟(jì)效益的方面的考慮,本系統(tǒng)的模型主要分為四塊:溫濕度的數(shù)據(jù)采集節(jié)點(diǎn)、負(fù)責(zé)從節(jié)點(diǎn)接收數(shù)據(jù)并向主機(jī)發(fā)送數(shù)據(jù)的基站節(jié)點(diǎn)、主機(jī)〔效勞器〕以及最終的用戶。該系統(tǒng)的模型框架如圖2-1所示:遠(yuǎn)程主機(jī)端效勞端程序遠(yuǎn)程主機(jī)端效勞端程序基站節(jié)點(diǎn)數(shù)據(jù)采集節(jié)點(diǎn)圖2-1系統(tǒng)整體模型框架圖溫濕度采集節(jié)點(diǎn)是由CC2430核心板和溫濕度傳感器構(gòu)成的。其中CC2430是用來實(shí)現(xiàn)ZigbeeZigbee通信協(xié)議。該模塊集成了增強(qiáng)型工業(yè)標(biāo)準(zhǔn)的8051單片機(jī)、Flash、SRAM和RF收發(fā)器[3]。數(shù)據(jù)采集節(jié)點(diǎn)的工作流程圖如圖2-2所示:開始開始N收集溫濕度數(shù)據(jù)系統(tǒng)初始化N收集溫濕度數(shù)據(jù)系統(tǒng)初始化定時(shí)時(shí)間到定時(shí)時(shí)間到Y(jié)Y發(fā)送溫濕度數(shù)據(jù)發(fā)送溫濕度數(shù)據(jù)圖2-2數(shù)據(jù)采集節(jié)點(diǎn)工作流程圖數(shù)據(jù)采集節(jié)點(diǎn)是定時(shí)的(默認(rèn)設(shè)置成10S采集一次溫濕度數(shù)據(jù))采集數(shù)據(jù),這個(gè)時(shí)間間隔是可以網(wǎng)絡(luò)中的基站向溫濕度傳感器節(jié)點(diǎn)發(fā)送重新設(shè)置時(shí)間間隙的控制命令來完成設(shè)置的。PPP(Point-to-PointProtocol)協(xié)議是在設(shè)計(jì)和實(shí)現(xiàn)網(wǎng)絡(luò)中基站節(jié)點(diǎn)功能所要用到的技術(shù)。PPP協(xié)議是為在同等單元之間傳輸數(shù)據(jù)包這樣的簡單鏈路設(shè)計(jì)的鏈路層協(xié)議。這種鏈路提供全雙工操作,并按照順序傳遞數(shù)據(jù)包。設(shè)計(jì)目的主要是用來通過撥號(hào)或?qū)>€方式建立點(diǎn)對(duì)點(diǎn)連接發(fā)送數(shù)據(jù),使其成為各種主機(jī)、網(wǎng)橋和路由器之間簡單連接的一種共通的解決方案。傳感器應(yīng)用了其技術(shù)從而實(shí)現(xiàn)了數(shù)據(jù)的接力傳送,從而提高了網(wǎng)絡(luò)通信的效率[4]。溫濕度采集節(jié)點(diǎn)也是基于Zigbee通信協(xié)議的終端設(shè)。Zigbee的根底是IEEE802.15.4。但I(xiàn)EEE僅處理低級(jí)MAC層和物理層協(xié)議,因此Zigbee聯(lián)盟擴(kuò)展了IEEE,對(duì)其網(wǎng)絡(luò)層協(xié)議和API進(jìn)行了標(biāo)準(zhǔn)化。與其他無線標(biāo)準(zhǔn)802.11或802.16不同,Zigbee以250Kbps的最大傳輸速率承載有限的數(shù)據(jù)流量。它滿足國際標(biāo)準(zhǔn)組織(ISO)開放系統(tǒng)互連(OSI)參考模型,主要包括物理層、數(shù)據(jù)鏈路層[5]。Zigbee是一種新興的短距離、低速率、低功耗的無線可自組的網(wǎng)絡(luò)技術(shù)。主要用于近距離無線連接。在數(shù)千個(gè)微小的傳感器之間相互協(xié)調(diào)實(shí)現(xiàn)通信,這些傳感器只需要很少的能量,以接力的方式通過無線電波將數(shù)據(jù)從一個(gè)傳感器傳到另一個(gè)傳感器,所以它們的通信效率非常高。Zigbee是一個(gè)最多可容納65000個(gè)無線數(shù)值傳輸模塊組成的一個(gè)無線網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)钠脚_(tái)。圖3-2是Zigbee的協(xié)議棧的體系結(jié)構(gòu)圖。圖2-3Zigbee協(xié)議棧體系結(jié)構(gòu)Zigbee網(wǎng)絡(luò)和中國移動(dòng)通信的CDMA/GSM網(wǎng)絡(luò)非常的相似,每一個(gè)Zigbee無線網(wǎng)絡(luò)數(shù)據(jù)傳輸模塊類似于移動(dòng)網(wǎng)絡(luò)中的一個(gè)基站,在其構(gòu)成的真整個(gè)無線網(wǎng)絡(luò)范圍內(nèi),它們之間可以進(jìn)行相互通信;每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)間的距離可以從標(biāo)準(zhǔn)的75米,到擴(kuò)展后的幾百米,甚至幾公里,這樣子可以滿足通信設(shè)備逐漸變大的今天;另外整個(gè)Zigbee網(wǎng)絡(luò)還可以與現(xiàn)有的其它的各種網(wǎng)絡(luò)連接[6]。2.2系統(tǒng)整體框架設(shè)計(jì)本系統(tǒng)根據(jù)現(xiàn)有的農(nóng)業(yè)設(shè)施、計(jì)算機(jī)軟件根底上進(jìn)行了設(shè)計(jì),主要分為傳感器數(shù)據(jù)采集節(jié)點(diǎn)局部,數(shù)據(jù)轉(zhuǎn)發(fā)局部(基站),效勞器端局部以及遠(yuǎn)程主機(jī)4局部。終端節(jié)點(diǎn)既考慮到了功耗的要求,又考慮到了數(shù)據(jù)的平安性。各個(gè)傳感器節(jié)點(diǎn)每隔一定的時(shí)間采集一次它周圍的溫濕度,并將溫濕度數(shù)據(jù)通過臨近節(jié)點(diǎn)或直接傳給基站核心板上;基站核心板負(fù)責(zé)收集從各個(gè)幾點(diǎn)上傳來的數(shù)據(jù),并通過串口轉(zhuǎn)傳到效勞器端上;遠(yuǎn)程主機(jī)將建立數(shù)據(jù)庫來存儲(chǔ)這些數(shù)據(jù),為用戶提供查詢操作,主機(jī)也可以實(shí)現(xiàn)報(bào)警等功能。本系統(tǒng)的總體框架如圖2-4所示。圖2-4無線蔬菜大棚系統(tǒng)總體框架圖以下是對(duì)這4局部功能的詳細(xì)介紹:1、溫濕度傳感器數(shù)據(jù)采集節(jié)點(diǎn):本系統(tǒng)中該環(huán)節(jié)主要是通過CC2430集成的暴露在空氣中的溫濕度傳感器來采集菜蔬大棚里空氣的溫濕度,將其轉(zhuǎn)化成數(shù)字信號(hào),并通過Zigbee無線網(wǎng)絡(luò)將這些采集到的數(shù)據(jù)發(fā)送到基站節(jié)點(diǎn)。數(shù)據(jù)采集節(jié)點(diǎn)并不是多對(duì)一的傳輸關(guān)系,每個(gè)節(jié)點(diǎn)都有路由轉(zhuǎn)發(fā)功能,也可以接受來自鄰近節(jié)點(diǎn)的數(shù)據(jù),并將其轉(zhuǎn)發(fā)給基站節(jié)點(diǎn),從而擴(kuò)大了測量的距離,解決了無線測量范圍有限的難題[7]。2、基站:基站作為本系統(tǒng)的核心環(huán)節(jié),它需要完成收集從自己網(wǎng)內(nèi)各個(gè)數(shù)據(jù)采集節(jié)點(diǎn)發(fā)來的數(shù)據(jù),并將這些數(shù)據(jù)通過串口發(fā)送到計(jì)算機(jī)(也可以稱作效勞器上)進(jìn)行存儲(chǔ),從而為上層用戶提供查詢等效勞提供了數(shù)據(jù)依據(jù)?;疽彩且粔KCC2430的增強(qiáng)型工業(yè)標(biāo)準(zhǔn)的嵌入式核心板,它在組網(wǎng)中的序號(hào)必須是01號(hào),否那么將接受不到數(shù)據(jù),此局部將在下面的章節(jié)詳解介紹。3、效勞器端:效勞器端通過串口線將從基站收到的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,并通過GPRS網(wǎng)絡(luò)傳輸給遠(yuǎn)程主機(jī)端,從而為上層軟件的設(shè)計(jì)、用戶的使用提供了數(shù)據(jù)依據(jù)。本系統(tǒng)的一個(gè)重點(diǎn)是在效勞器端建立一個(gè)軟件系統(tǒng)來管理這些數(shù)據(jù)。4、遠(yuǎn)程用戶端:該局部主要負(fù)責(zé)從效勞器端收集數(shù)據(jù),并存儲(chǔ)在自己的數(shù)據(jù)庫中,并以此為數(shù)據(jù)根底為用戶提供數(shù)據(jù)。本系統(tǒng)在該軟件設(shè)計(jì)中實(shí)現(xiàn)數(shù)據(jù)接收的控制、溫濕度數(shù)據(jù)的顯示、歷史數(shù)據(jù)的查詢、刪除、溫濕度的自報(bào)警以及系統(tǒng)用戶等的管理。第三章系統(tǒng)開發(fā)環(huán)境和軟硬件選型3.1系統(tǒng)開發(fā)環(huán)境本系統(tǒng)的開發(fā)環(huán)境可以分為硬件環(huán)境和軟件環(huán)境:〔1〕硬件環(huán)境主要有:1、溫濕度數(shù)據(jù)采集節(jié)點(diǎn):假設(shè)干個(gè)基于CC2430溫濕度傳感器節(jié)點(diǎn);2、基站節(jié)點(diǎn):基于CC2430的核心板;3、效勞器端:SIM300V1.5開發(fā)板。4、遠(yuǎn)程主機(jī):個(gè)人PC機(jī)?!?〕軟件環(huán)境主要有:1、涉及的開發(fā)工具環(huán)境:SQLServver2005、MicrosoftVisualStudioC++6.0、Cygwin等;2、涉及的操作系統(tǒng):TinyOS、MicrosoftWindowsXPProfessional等。3.2系統(tǒng)軟硬件選型本系統(tǒng)選用集成了SHTxx系列的CC2430增強(qiáng)型8051內(nèi)核的芯片作為溫濕度數(shù)據(jù)采集模塊和基站模塊。圖3-1是溫濕度采集節(jié)點(diǎn)及其基站的實(shí)物展示。圖3-1溫濕度數(shù)據(jù)采集及其基站節(jié)點(diǎn)數(shù)據(jù)采集節(jié)點(diǎn)及其基站節(jié)點(diǎn)是一組安放在蔬菜大棚實(shí)地內(nèi)的傳感器和無線通信模塊的終端集合。主要是負(fù)責(zé)大棚內(nèi)空氣的溫濕度的數(shù)據(jù)采集,并接收從基站發(fā)來的指令,定時(shí)通過無線模塊將本節(jié)點(diǎn)采集到的溫濕度數(shù)據(jù)傳輸給基站節(jié)點(diǎn)。數(shù)據(jù)采集節(jié)點(diǎn)主要由電源模塊、處理器模塊、溫濕度傳感器收集模塊和無線通信模塊4個(gè)模塊構(gòu)成的:1、電源:采用兩節(jié)1.5V的紐扣電池組成的3V直流電為整個(gè)系統(tǒng)供電。2、處理器模塊和無線通信模塊:采用增強(qiáng)型工業(yè)標(biāo)準(zhǔn)的CC2430核心板,它是加強(qiáng)版的Zigbee模塊。3、溫濕度傳感器收集模塊:采用CC2430核心板集成溫濕度傳感器SHT10。數(shù)據(jù)采集節(jié)點(diǎn)的硬件框圖如圖3-2所示:圖3-2為數(shù)據(jù)采集節(jié)點(diǎn)硬件框架圖該芯片的主要優(yōu)點(diǎn)有以下幾點(diǎn)[8]:1、功耗低:由于該節(jié)點(diǎn)應(yīng)用了Zigbee技術(shù),而Zigbee采用了多種節(jié)省功耗的工作模式,所以使用2節(jié)的5號(hào)電池可以確保節(jié)點(diǎn)工作1~2年。從而解決了功耗的問題。2、本錢低:由于Zigbee協(xié)議是免專利費(fèi)用以及其工作的頻段為2.4Hz〔免執(zhí)照頻段〕,所以減少了設(shè)備的本錢。3、自組網(wǎng)、自愈能力強(qiáng):網(wǎng)絡(luò)間個(gè)個(gè)節(jié)點(diǎn)之間無需人為操作下,可自行感知周圍其他節(jié)點(diǎn),并與其建立連接關(guān)系,組成相應(yīng)的網(wǎng)絡(luò)。當(dāng)刪除或添加網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)時(shí),或那么是節(jié)點(diǎn)故障等情況發(fā)生不會(huì)導(dǎo)致網(wǎng)絡(luò)癱瘓,因?yàn)樽陨砭W(wǎng)絡(luò)能夠進(jìn)行自我的修復(fù)、調(diào)整,從而使整個(gè)系統(tǒng)繼續(xù)正常工作。4、除了以上優(yōu)點(diǎn)外,該芯片還具有節(jié)點(diǎn)間通訊間距遠(yuǎn)、可靠性高、數(shù)據(jù)平安以及網(wǎng)絡(luò)容納量大等眾多優(yōu)點(diǎn)。本系統(tǒng)中負(fù)責(zé)效勞端和遠(yuǎn)程主機(jī)端通信的設(shè)備采用的是SIMCOM公司〔希姆〕生產(chǎn)的一款三頻段GSM/GPRS模塊SIM300以及外圍外接的單片機(jī)芯片組成的。由于其內(nèi)嵌TCP/IP協(xié)議棧以及GPRS標(biāo)準(zhǔn),再加上其低功耗、高傳輸速率以及性能優(yōu)良等諸多特點(diǎn),所以SIM300的應(yīng)用范圍很廣泛,特別是在于開發(fā)一些GSM/GPRS的無線應(yīng)用產(chǎn)品更受到業(yè)內(nèi)人士的鐘愛。圖3-3是SIM300及其外圍芯片實(shí)物圖。圖3-3SIM300及其外圍芯片實(shí)物圖使用串口將應(yīng)用系統(tǒng)和SIM300及其外圍電路連接起來,應(yīng)用系統(tǒng)通過GPRS模塊的AT指令向SIM300核心板發(fā)送控制指令,從而對(duì)其產(chǎn)生控制行為。SIM300模塊擁有一套完整的、標(biāo)準(zhǔn)的AT命令集,包括一般命令、〔中英文〕短消息控制命令、本控制命令、GPRS命令、網(wǎng)絡(luò)效勞命令以及呼叫控制命令等。本系統(tǒng)的SIM300模塊主要負(fù)責(zé)從基站接收數(shù)據(jù),并存儲(chǔ)在數(shù)據(jù)庫中,并通過GPRS網(wǎng)絡(luò)以及對(duì)相應(yīng)的AT指令的響應(yīng)后發(fā)送到遠(yuǎn)程的主機(jī)上。從而實(shí)現(xiàn)將基站的數(shù)據(jù)存儲(chǔ)在效勞端的數(shù)據(jù)以及遠(yuǎn)程主機(jī)上。圖3-4是SIM300模塊反面卡的插槽實(shí)物圖。圖3-4反面卡插槽本系統(tǒng)中數(shù)據(jù)采集節(jié)點(diǎn)及其基站節(jié)點(diǎn)程序是采用NesC編寫,通過Cygwin環(huán)境平臺(tái)編譯的。NesC是對(duì)C語言的擴(kuò)展〔也有一種說法是說NesC是集結(jié)了C、C++、java等三種語言的〕,它基于表達(dá)TinyOS的結(jié)構(gòu)化概念和執(zhí)行模型而設(shè)計(jì)的。這是一種針對(duì)于程序工作者開發(fā)基于結(jié)構(gòu)化的組件編程而產(chǎn)生的新語言。NesC語言主要是用在傳感器網(wǎng)絡(luò)〔特別是無線傳感器網(wǎng)絡(luò)〕等嵌入式系統(tǒng)。與C語言的存儲(chǔ)格式不同,用NesC語言編寫的文件是以“.nc〞為后綴。NesC的最大特點(diǎn)是將組件化/模塊化思想和基于事件驅(qū)動(dòng)的執(zhí)行模型相結(jié)合。圖3-5是源程序到燒錄的示意圖。圖3-5源碼到燒錄的示意圖所以每個(gè)nc文件實(shí)現(xiàn)一個(gè)組件功能〔組件化/模塊化〕。在nesC程序中,主要定義兩種功能不同的組件——組件〔configuration〕和模塊〔module〕[9]。組件主要是描述組件不同接口的關(guān)系,完成各個(gè)組件接口之間的相互連接和調(diào)用。一個(gè)組件必須實(shí)現(xiàn)它提供接口的指令和它的使用的接口事件。組件之間通過接口彼此靜態(tài)地相連。組件相關(guān)執(zhí)行局部主要包含提供應(yīng)其他組件的接口和配件要使用的接口的組件接口列表和如何將各個(gè)組件接口連接在一起的執(zhí)行連接列表。在應(yīng)用程序中存在多個(gè)配置文件,并且配件之間存在一個(gè)層次關(guān)系。模塊主要用于描述組件的接口函數(shù)功能以及具體的實(shí)現(xiàn)過程,每個(gè)模塊的具體執(zhí)行都由4個(gè)相關(guān)局部組成:數(shù)據(jù)幀、一組執(zhí)行線程、事件函數(shù)和命令函數(shù)。不同的模塊可以實(shí)現(xiàn)相同的接口。一個(gè)NesC應(yīng)用程序有3個(gè)部份組成:聲明和定義、接口類型和組件,每一個(gè)NesC應(yīng)用程序是由一個(gè)或那么多個(gè)組件通過接口鏈接起來,并通過ncc或gcc編譯生成一個(gè)完整的可執(zhí)行程序。Cygwin是一個(gè)類Linux模擬仿真器,但它是運(yùn)行在Windows環(huán)境下的。Cygwin是由CygnusSolutions公司開發(fā)的自由軟件。Cygwin包括了一套庫,該庫在Win32系統(tǒng)下實(shí)現(xiàn)了POSIX系統(tǒng)所要調(diào)用的應(yīng)用程序接口〔API〕;以及自己的一套GNU開發(fā)工具集〔如GDB、GCC〕,這樣我們可以在windows下進(jìn)行簡單的Unix軟件開發(fā);還有一些UNIX系統(tǒng)下的常見程序[10]。CygnusSolutions公司把gas、gdb、gcc等軟件開發(fā)工具進(jìn)行了一些的改良,使它們能夠生成并解析Win32的目標(biāo)文件。接著公司的工程師們要把這些工具移植到Windows平臺(tái)上去。他們寫了一個(gè)cygwin庫〔共享庫〕,把Win32API中沒有的Unix風(fēng)格的調(diào)用等全部封裝在該共享庫里。那么,在開發(fā)程序的過程中,我們只要把共享庫和這些工具的源代碼鏈接起來,就可以通過Unix上的交叉編譯器生成在Windows平臺(tái)上運(yùn)行的工具集。從而程序開發(fā)者就可以在windows平臺(tái)上使用用戶工具盒開發(fā)工具,并可以運(yùn)行bash等工具,從而在Windows環(huán)境下使用Unix的工具。本系統(tǒng)采用微軟的根底類庫MFC作為效勞端和遠(yuǎn)程主機(jī)端程序的編寫。并采用SQLServer2005作為系統(tǒng)后臺(tái)數(shù)據(jù)庫的支持。MFC是MicrosoftFoundationClasses〔微軟根底類〕的簡稱。它以C++的編程風(fēng)格封裝了Windows的API,即減少了大量在建立Windows程序時(shí)必須編寫的代碼,同時(shí)還為程序工作者提供了一個(gè)應(yīng)用程序框架,從而大大的提高了程序工作者的工作效率。由于它是C++的風(fēng)格,所以它還提供了所有一般C++編程的優(yōu)點(diǎn),例如繼承和封裝。MFC是可移植的,例如,在Windows3.1下編寫的代碼可以很容易地移植到WindowsNT或Windows95上[11]。MFC是一個(gè)擴(kuò)展了C++類層次結(jié)構(gòu)的類庫,而且是一個(gè)很龐大的類庫,它讓程序工作者在開發(fā)Windows應(yīng)用程序時(shí)不再像以前晦澀難懂。MFC可以兼容整個(gè)Windows家族的應(yīng)用程序開發(fā),也就是說,無論是Windows3.x、Windows95還是WindowsNT,所使用的MFC類庫都是兼容的。每每有新的Windows版本出現(xiàn)時(shí),MFC類庫工作者都會(huì)根據(jù)新版Windows特點(diǎn)來修改類庫,從而使得無論新舊編譯器都可以兼容MFC,以便減輕程序工作者的工作量和兼容性。通過Visualc++6.0建立的MFC框架如圖3-6所示[12]。圖3-6MFC應(yīng)用程序框架SQLServer2005是Microsoft公司推出的全面的關(guān)系型數(shù)據(jù)庫效勞器產(chǎn)品,是面向企業(yè)級(jí)用戶的數(shù)據(jù)庫應(yīng)用平臺(tái)。它給企業(yè)級(jí)應(yīng)用數(shù)據(jù)和分析程序帶來了極高的平安性與穩(wěn)定性,并以其易于操作與管理的特性極大地提升了企業(yè)的運(yùn)營效率[13]。SQL即StructuredQueryLanguage的縮寫,中文譯為結(jié)構(gòu)化查詢語言。Server中文譯為效勞器,而2005代表的是版本號(hào)。SQLServer2005不同于以往的數(shù)據(jù)庫效勞器,它不僅是一個(gè)網(wǎng)絡(luò)數(shù)據(jù)庫效勞器,實(shí)質(zhì)上還是一個(gè)關(guān)系型數(shù)據(jù)庫,同時(shí)還是一個(gè)數(shù)據(jù)分析平臺(tái)。它為用戶提供了一個(gè)平安、可靠、高效的開發(fā)平臺(tái),能夠廣泛的應(yīng)用于企業(yè)數(shù)據(jù)管理和商業(yè)智能。通過全面的功能集、現(xiàn)有系統(tǒng)的集成性以及對(duì)日常任務(wù)的自動(dòng)化管理能力,SQLServer2005為不同規(guī)模的企業(yè)提供全面的、集成的、端到端的數(shù)據(jù)解決方案。SQLServer2005的組件架構(gòu)如圖3-7所示[14]。圖3-7SQLServer2005的組件架構(gòu)第四章系統(tǒng)軟硬件的設(shè)計(jì)和實(shí)現(xiàn)早期對(duì)蔬菜大棚內(nèi)溫濕度的監(jiān)控是采用手工控制的,通過長期的經(jīng)驗(yàn)積累,對(duì)蔬菜大棚內(nèi)農(nóng)作物的生長狀況的記錄等形成的依據(jù),直接對(duì)大棚的溫濕度進(jìn)行調(diào)節(jié)以使給大棚里的作物一個(gè)適宜生長的環(huán)境。而基于Zigbee網(wǎng)絡(luò)的蔬菜大棚監(jiān)控系統(tǒng)可以節(jié)省一定的人力資源,將收集到的數(shù)據(jù)和系統(tǒng)設(shè)置的上下限進(jìn)行比照,將準(zhǔn)確的進(jìn)行報(bào)警,通知相關(guān)人員進(jìn)行處理。相比于人工管理階段,本系統(tǒng)一定程度上提高了生產(chǎn)效率[15]。在設(shè)計(jì)本系統(tǒng)的時(shí)候,充分考慮到了系統(tǒng)界面的友好、方便于用戶操作;數(shù)據(jù)傳輸和接收的實(shí)時(shí)性以及整個(gè)系統(tǒng)的穩(wěn)定、平安等因素。本系統(tǒng)主要致力于軟件的設(shè)計(jì)上,實(shí)現(xiàn)了系統(tǒng)的啟動(dòng)和關(guān)閉、溫濕度的實(shí)時(shí)監(jiān)控、險(xiǎn)情警示、溫濕度上下閥值設(shè)置、查詢歷史記錄、按需刪除歷史記錄、管理用戶等功能。4.1數(shù)據(jù)采集節(jié)點(diǎn)的設(shè)計(jì)和實(shí)現(xiàn)數(shù)據(jù)采集節(jié)點(diǎn)按功能模塊劃分可分為:溫濕度數(shù)據(jù)采集模塊和數(shù)據(jù)發(fā)送模塊(無線通信模塊)。下面詳細(xì)介紹這兩個(gè)模塊。4.1.1溫濕度數(shù)據(jù)溫濕度采集模塊式采用溫濕度傳感器SHT10。SHT10是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,采用CMOSens專利技術(shù)將溫度濕度傳感器、A/D轉(zhuǎn)換器及數(shù)字接口無縫結(jié)合。SHT10與CC2430連接電路原理圖如圖4-1所示:圖4-1CC2430與SHT10連接電路原理圖該傳感器由1個(gè)能隙式測溫元件、1個(gè)電容式聚合體測濕元件、1個(gè)14位A/D轉(zhuǎn)換器和1個(gè)2-wire數(shù)字接口組成,使得該產(chǎn)品具有體積小、精度高、功耗低、反響快、抗干擾能力強(qiáng)等優(yōu)點(diǎn)。而且SHT10數(shù)字式傳感器具有類似I2C總線數(shù)字接口的通信方式與CRC數(shù)據(jù)傳輸校驗(yàn)。數(shù)據(jù)采集節(jié)點(diǎn)在上電后,經(jīng)過11ms后,SHT10會(huì)從休眠狀態(tài)恢復(fù)到等待狀態(tài);接著發(fā)送一組“傳輸啟動(dòng)〞時(shí)序進(jìn)行數(shù)據(jù)傳輸?shù)某跏蓟ぷ鱗16]。然后發(fā)送一組測量命令〔其中相對(duì)濕度RH量的時(shí)序命令為“00000101”,攝氏溫度T量的時(shí)序命令為“00000011”〕開始測量周圍的溫濕度量,等待測量結(jié)束〔大約需要20/80/320ms對(duì)應(yīng)其8/12/14位的時(shí)間〕;最后SHT10將下拉DATA到低電平〔進(jìn)入空閑模式〕表示測量結(jié)束了,并傳入一個(gè)字節(jié)的CRC校驗(yàn)并開始接收數(shù)據(jù)[17]。該流程圖如圖4-開始開始傳輸啟動(dòng)傳輸啟動(dòng)測量命令測量命令設(shè)P1.1為輸入設(shè)P1.1為輸入YYP1.1=1?P1.1=1?N接收數(shù)據(jù)N接收數(shù)據(jù)返回返回圖4-2為溫濕度數(shù)據(jù)采集模塊流程圖其中產(chǎn)生啟動(dòng)傳輸時(shí)序的程序片段如下:

//相關(guān)其他的代碼……

P1_1=1;P1_0=1;wait(1);P1_1=0;wait(1);P1_0=0;wait(1);P1_0=1;

wait(1);

P1_1=1;

wait(1);

P1_0=0;

……//其他相關(guān)代碼4.1.2無線通信模塊CC2430是一塊符合IEEE802.15.4標(biāo)準(zhǔn)的片上Zigbee芯片。它的無線通信模塊的根底是數(shù)據(jù)采集節(jié)點(diǎn)之間是采用點(diǎn)對(duì)點(diǎn)的通信方式。其數(shù)據(jù)采集的流程圖如圖4-3所示:圖4-3數(shù)據(jù)采集節(jié)點(diǎn)流程圖在系統(tǒng)啟動(dòng),數(shù)據(jù)采集節(jié)點(diǎn)開啟后,并完成初始化工作后,節(jié)點(diǎn)將開始搜索其無線范圍內(nèi)的網(wǎng)絡(luò)信息。由于Zibgee網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)具有路由轉(zhuǎn)發(fā)的功能,所以節(jié)點(diǎn)之間也可以互發(fā)數(shù)據(jù),直至將源數(shù)據(jù)發(fā)送到最終的基站節(jié)點(diǎn)。接下來介紹點(diǎn)對(duì)點(diǎn)通信的實(shí)現(xiàn)。表4-1MAC層數(shù)據(jù)幀格式1111~1222目標(biāo)地址(DA)源地址(SA)標(biāo)志位(Flags)有效負(fù)載(Payload)幀校驗(yàn)(FCS)由上表4-1可知:1、目標(biāo)地址是用1個(gè)字節(jié)表示,它是數(shù)據(jù)采集節(jié)點(diǎn)在同組網(wǎng)絡(luò)中自身的編號(hào)。2、源地址也是用1個(gè)字節(jié)表示,它和目標(biāo)地址是一個(gè)相對(duì)的概念。3、標(biāo)志位用1個(gè)字節(jié)來表示,當(dāng)?shù)?位為1時(shí),表示目標(biāo)節(jié)點(diǎn)在收到該數(shù)據(jù)幀后要答復(fù);當(dāng)?shù)?位為1時(shí)表示該幀是接收到數(shù)據(jù)幀后的答復(fù)幀;當(dāng)?shù)?位為1時(shí),表示該幀是超時(shí)重傳的數(shù)據(jù)幀;當(dāng)當(dāng)數(shù)據(jù)幀中Flags字節(jié)的第8位為1時(shí),表示該幀是數(shù)據(jù)序列中的一幀。4、有效負(fù)載是用1~122不等字節(jié)表示,協(xié)議的標(biāo)準(zhǔn)中規(guī)定了數(shù)據(jù)在傳輸時(shí)的物理效勞數(shù)據(jù)單元(PSDU)的最大負(fù)載量為127個(gè)字節(jié),而由于已經(jīng)被使用了5個(gè)字節(jié),所以數(shù)據(jù)的有效負(fù)載的長度只能介于1~122個(gè)字節(jié)之間。每當(dāng)有超過有效負(fù)載長度〔超過122個(gè)字節(jié)〕的數(shù)據(jù)需要發(fā)送時(shí),我們需要將數(shù)據(jù)進(jìn)行拆解,拆解成符合IEEE802.15.4協(xié)議規(guī)定的數(shù)據(jù)長度。而負(fù)責(zé)接收數(shù)據(jù)的節(jié)點(diǎn)那么需要將分成段得數(shù)據(jù)進(jìn)行整合后才可進(jìn)行使用。5、幀校驗(yàn)由2字節(jié)組成,它是對(duì)物理層協(xié)議的數(shù)據(jù)單元MPDU的校驗(yàn)。如果CC2430芯片中的RF存放器相關(guān)的某些控制位設(shè)為高電平〔即為1〕的時(shí)候,幀校驗(yàn)FCS將由硬件自動(dòng)來繼續(xù)調(diào)整,燃油由多項(xiàng)式x16+x12+x5+1進(jìn)行CRC軟件校驗(yàn)和生成。數(shù)據(jù)采集節(jié)點(diǎn)發(fā)送數(shù)據(jù)的步驟可以總結(jié)為5步,具體的流程如下:1、系統(tǒng)初始化主要是將整個(gè)系統(tǒng)的工作頻率〔晶振頻率〕設(shè)置為32MHz,,為后面的RF初始化調(diào)工了必要的條件。2、RF初始化主要是設(shè)置通信頻率,設(shè)置電源,并使用代碼清空Rx和Tx,并開啟Rx等工作。3、DMA的初始化主要是為Tx分配1個(gè)空閑的DMA通道,并為其設(shè)置相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。4、當(dāng)設(shè)置為Tx準(zhǔn)備的DMA通道時(shí),需將數(shù)據(jù)的源地址設(shè)為所要發(fā)送數(shù)據(jù)的起始地址,目標(biāo)地址設(shè)為存放器RFD的地址。然后,在設(shè)置所要發(fā)送數(shù)據(jù)的長度。并設(shè)置DMA數(shù)據(jù)按字節(jié)進(jìn)行傳輸以及一些必要位的設(shè)置從而完成DMA的設(shè)置。5、等到DMA描述等的設(shè)置好后,系統(tǒng)將啟動(dòng)DMA通道上數(shù)據(jù)塊的傳輸。而在我們啟動(dòng)DMA通道數(shù)據(jù)傳輸之前,將當(dāng)前數(shù)據(jù)幀的標(biāo)志字節(jié)、目標(biāo)節(jié)點(diǎn)地址、源節(jié)點(diǎn)地址、數(shù)據(jù)長度通過直接寫存放器RFD的方式寫入TxFIFO。通過這樣的流程后,我們在啟動(dòng)DMA通道傳輸后,完整的數(shù)據(jù)幀將會(huì)被傳輸?shù)絋xFIFO。最后發(fā)送指令I(lǐng)STXONCCA給CSP來啟動(dòng)Tx傳輸。這樣子就完成發(fā)送一幀數(shù)據(jù)的整個(gè)過程。數(shù)據(jù)采集節(jié)點(diǎn)發(fā)送數(shù)據(jù)的流程圖如圖4-4所示:開始開始系統(tǒng)初始化系統(tǒng)初始化RF初始化DMA初始化DMA設(shè)置DMA設(shè)置將幀數(shù)據(jù)寫入緩存將幀數(shù)據(jù)寫入緩存NNRSSL正常?RSSL正常?Y開啟Tx并延時(shí)啟動(dòng)Tx返回Y開啟Tx并延時(shí)啟動(dòng)Tx返回圖4-4發(fā)送數(shù)據(jù)流程圖4.2基站節(jié)點(diǎn)的設(shè)計(jì)和實(shí)現(xiàn)4.2.1IEEE802.15.4標(biāo)準(zhǔn)和Zigbee協(xié)議介紹IEEE(InstituteofElectricalandElectronicsEngineers美國電氣和電子工程師協(xié)會(huì))無線個(gè)人區(qū)域網(wǎng)工作組的IEEE802.15.4技術(shù)標(biāo)準(zhǔn)是Zigbee的技術(shù)根底。IEEE802.15.4標(biāo)準(zhǔn)的制定是為低能耗的簡單設(shè)備提供有效覆蓋范圍在10m之內(nèi)的低速連接,用用于用于無線監(jiān)測、工業(yè)控制等消費(fèi)與商用應(yīng)用領(lǐng)域。支持兩種的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),即單跳星狀或當(dāng)通信線路超過10m時(shí)的多跳對(duì)等拓?fù)?。但是?duì)等拓?fù)涞倪壿嫿Y(jié)構(gòu)由網(wǎng)絡(luò)層定義。LR-WPAN中的器件既可以使用64位IEEE地址,也可以使用在關(guān)聯(lián)過程中指配的16位短地址。一個(gè)IEEE802.15.4網(wǎng)最多可以容納216個(gè)器件。IEEE標(biāo)準(zhǔn)最重要的特點(diǎn)是低功耗。因?yàn)樵诂F(xiàn)實(shí)中用電池供電的嵌入式器件,經(jīng)常的更換電池所產(chǎn)生的費(fèi)用往往比器件本身的本錢還要高。所以在IEEE標(biāo)準(zhǔn)的制定中,在數(shù)據(jù)傳輸過程中引入了節(jié)省功率的機(jī)制。多數(shù)機(jī)制是基于信標(biāo)使能的方式,主要是限制器件或協(xié)調(diào)器之收發(fā)信機(jī)的開通時(shí)間,或者在無數(shù)據(jù)傳輸時(shí)使它們處于休眠狀態(tài)[18],從而很大程度上降低了嵌入式應(yīng)用設(shè)備的功耗量。IEEE標(biāo)準(zhǔn)里有三種不同的數(shù)據(jù)傳輸方式從而突出了低功耗的特點(diǎn):間接數(shù)據(jù)傳輸、直接數(shù)據(jù)傳輸和有時(shí)隙保證的數(shù)據(jù)傳輸。Zigbee網(wǎng)絡(luò)是一種高可靠性的無線數(shù)字傳輸網(wǎng)絡(luò),它可工作在三種流行的免費(fèi)頻段上(如全球流行的2.4GHz、美國流行的915MHz和歐洲流行的868MHz)。其傳輸速率分別可以到達(dá)250kbit/s、40kbit/s和20kbit/s。Zigbee是一組基于IEEE批準(zhǔn)通過的IEEE802.15.4無線標(biāo)準(zhǔn)研制開發(fā)的組網(wǎng)、平安和應(yīng)用軟件方面的技術(shù)標(biāo)準(zhǔn)。并由ZigbeeAlliance和IEEE802.15.4小組共同制定了Zigbee技術(shù)標(biāo)準(zhǔn)。Zigbee棧體系結(jié)構(gòu)由一組稱為層的塊兒組成。每個(gè)層為上層執(zhí)行指定一套效勞:數(shù)據(jù)實(shí)體提供數(shù)據(jù)傳輸效勞,管理實(shí)體提供所有其它效勞。每個(gè)效勞實(shí)體通過一個(gè)效勞接入點(diǎn)〔SAP〕為上層提供一個(gè)接口,每個(gè)SAP支持一些效勞原語來完成必須的功能[19]。Zigbee網(wǎng)絡(luò)層〔NWK〕支持星形、樹狀形和網(wǎng)狀拓?fù)浣Y(jié)構(gòu)三種結(jié)構(gòu)。在星狀形的拓?fù)浣Y(jié)構(gòu)里,整個(gè)網(wǎng)絡(luò)是由一個(gè)獨(dú)立的通信設(shè)備Zigbee協(xié)調(diào)器來進(jìn)行控制[20]。Zigbee協(xié)調(diào)器的功能主要是負(fù)責(zé)對(duì)已連入網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行控制和維護(hù)。在樹狀形拓?fù)浜途W(wǎng)狀拓?fù)浣Y(jié)構(gòu)里,Zigbee協(xié)調(diào)器得功能主要是對(duì)已建立的網(wǎng)絡(luò)中的一些參數(shù)進(jìn)行選擇、確定和設(shè)置等。ZigBee網(wǎng)絡(luò)的組建主要是為工業(yè)化的現(xiàn)場實(shí)現(xiàn)自動(dòng)化控制時(shí)對(duì)數(shù)據(jù)的傳輸。它的協(xié)議標(biāo)準(zhǔn)使得設(shè)備功耗低、工作可靠、工作平安、結(jié)構(gòu)簡單、價(jià)格低廉、使用方便等特點(diǎn)。而移動(dòng)通信網(wǎng)的CDMA網(wǎng)或GSM網(wǎng)主要是為用戶的語音的通信而建立的,其單個(gè)基站的費(fèi)用一般都在百萬元以上,而Zigbee協(xié)議中的每個(gè)Zigbee的基站價(jià)值卻不到人民幣1000元?;谝陨蠈?duì)Zigbee節(jié)點(diǎn)的分析,我們選擇使用CC2430的基站節(jié)點(diǎn)。4.2.2基站節(jié)點(diǎn)實(shí)現(xiàn)功能描述基站節(jié)點(diǎn)是作為整個(gè)系統(tǒng)的核心局部,它應(yīng)用Zigbee網(wǎng)絡(luò)從數(shù)據(jù)采集節(jié)點(diǎn)收集它們的溫濕度數(shù)據(jù),然后按一定的數(shù)據(jù)格式編碼后,最后通過串口通信方式將數(shù)據(jù)傳到上位機(jī)〔效勞端〕上。圖4-5向我們展示了基站節(jié)點(diǎn)的實(shí)物圖:圖4-5基站節(jié)點(diǎn)實(shí)物圖上位機(jī)是負(fù)責(zé)從基站那里收集數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在上位機(jī)〔或那么其他上位機(jī)〕的數(shù)據(jù)庫里面,這樣子上位機(jī)就可以為用戶提供豐富的軟件效勞提供了數(shù)據(jù)支持。而基站向效勞器端發(fā)送的數(shù)據(jù)要有一定的數(shù)據(jù)格式〔數(shù)據(jù)傳輸協(xié)議〕,從而來標(biāo)準(zhǔn)和保證數(shù)據(jù)傳輸?shù)恼_性。基站和上位機(jī)通訊的協(xié)議如表4-2所示:表4-2基站和上位機(jī)通訊協(xié)議表字段長度字節(jié)序內(nèi)容包頭包頭標(biāo)志1字節(jié)默認(rèn)為0x37硬件類型2字節(jié)BigEndian默認(rèn)值0x240x30包負(fù)載長度2字節(jié)BigEndian減去9字節(jié)后為傳感器數(shù)據(jù)長度數(shù)據(jù)傳感器類型2字節(jié)BigEndian詳細(xì)定義參考表4-3下一跳節(jié)點(diǎn)編號(hào)2字節(jié)BigEndian假設(shè)如果節(jié)點(diǎn)的數(shù)據(jù)經(jīng)過路由轉(zhuǎn)發(fā),那么第一次轉(zhuǎn)發(fā)的節(jié)點(diǎn)編號(hào)便是該字段值源發(fā)數(shù)據(jù)節(jié)點(diǎn)編號(hào)2字節(jié)BigEndian最初發(fā)送傳感器數(shù)據(jù)的節(jié)點(diǎn)編號(hào)順序號(hào)2字節(jié)BigEndian保存默認(rèn)為0x000x00跳數(shù)1字節(jié)路由轉(zhuǎn)發(fā)過程中所經(jīng)過的節(jié)點(diǎn)數(shù)傳感器數(shù)據(jù)〔包負(fù)載長度-9〕字節(jié)BigEndian源節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)校驗(yàn)位校驗(yàn)碼1字節(jié)除包頭標(biāo)志外所有字節(jié)的異或的結(jié)果通過串口調(diào)試可以驗(yàn)證我們收到的收據(jù)也是20個(gè)字節(jié)的,詳細(xì)數(shù)據(jù)如圖4-6所示:圖4-6從基站收到的數(shù)據(jù)由表4-2和圖4-5可知基站給上位機(jī)傳輸?shù)臄?shù)據(jù)是由三局部組成的:包頭、數(shù)據(jù)和校驗(yàn)碼。其中1、包頭段:包頭段共有5個(gè)字節(jié),其中1個(gè)字節(jié)的包頭標(biāo)志、2個(gè)字節(jié)的硬件類型和2個(gè)字節(jié)的包負(fù)載長度。包頭標(biāo)志固定是0x37。硬件類型也是固定的0x300x24。包負(fù)載長度指定了基站向上位機(jī)所傳輸?shù)臄?shù)據(jù)的字節(jié)數(shù)。2、數(shù)據(jù)段:數(shù)據(jù)段的總字節(jié)數(shù)取決于傳感器數(shù)據(jù)的字節(jié)數(shù),由如圖3-9可知包負(fù)載長度為0x0E所以傳感器數(shù)據(jù)的字節(jié)數(shù)是5個(gè)字節(jié),所以數(shù)據(jù)段的總字節(jié)數(shù)是14個(gè)字節(jié)。其中包含2個(gè)字節(jié)的傳感器類型,該段的定義詳見表4-3;接著是2個(gè)字節(jié)的數(shù)據(jù)來表示嚇一跳節(jié)點(diǎn)的ID,如果節(jié)點(diǎn)是直接和基站通表4-3傳感器類型定義圖傳感器名稱縮寫類型值溫濕度TH1溫度T2光LIGHT3流量FLUX4血壓BLOOD_PRESSURE5海拔高度ALTITUDE6磁場HOARE7雨滴RAIN8訊的該字段應(yīng)該同最初發(fā)送信息節(jié)點(diǎn)的ID是一致的,否那么說明節(jié)點(diǎn)的數(shù)據(jù)是被其他節(jié)點(diǎn)轉(zhuǎn)發(fā)到基站的,并且這個(gè)字段的值就是首發(fā)轉(zhuǎn)發(fā)的節(jié)點(diǎn)的ID;再接著就是2個(gè)字節(jié)的字段來表示最初發(fā)送信息節(jié)點(diǎn)的ID;然后是用2個(gè)字節(jié)來表示節(jié)點(diǎn)的順序號(hào),該字段的值是保存值為0x000x00;接著用1個(gè)字節(jié)數(shù)據(jù)來表示節(jié)點(diǎn)的跳數(shù);最后使用5個(gè)字節(jié)來傳輸節(jié)點(diǎn)傳來的溫濕度數(shù)據(jù),關(guān)于溫濕度數(shù)據(jù)的解碼將在下一小節(jié)進(jìn)行詳解。3、校驗(yàn)碼段:校驗(yàn)碼字段是用1個(gè)字節(jié)來表示的。它的值是前面除包頭標(biāo)志外的所有字節(jié)異或的結(jié)果。4.2.3溫濕度數(shù)據(jù)解碼基站將溫濕度數(shù)據(jù)傳輸給上位機(jī)后,上位機(jī)的應(yīng)用軟件將這些數(shù)據(jù)進(jìn)行解碼,讓數(shù)據(jù)以更直觀的形式展示給用戶。這些數(shù)據(jù)包括溫濕度采集節(jié)點(diǎn)的編號(hào)、該位置節(jié)點(diǎn)測到的溫度和濕度:1、節(jié)點(diǎn)編號(hào)的解碼:由圖4-7可知在傳輸?shù)膮f(xié)議中的9、10字節(jié)決定了是哪個(gè)編號(hào)的節(jié)點(diǎn)傳來的數(shù)據(jù),所以在上位機(jī)的應(yīng)用軟件中使用a=RXData[9]*256+RXData[10];便可以解碼出節(jié)點(diǎn)的編號(hào),其中RXData就是我們接收到的一次數(shù)據(jù)編碼,它共有20個(gè)字節(jié),由圖4-8也可知道。2、溫度數(shù)據(jù)的解碼:經(jīng)過屢次的數(shù)據(jù)收集和計(jì)算,最后可知溫度數(shù)據(jù)是由14~18字節(jié)中的15、16字節(jié)決定的。再根據(jù)如圖4-7公式和圖4-8的系數(shù)可以得到溫度數(shù)據(jù)圖4-7溫度轉(zhuǎn)化公式圖4-8相關(guān)系數(shù)參考圖4-9中Temperature是我們所要解碼的溫度數(shù)據(jù),d1和d2系數(shù)的值要參考圖4-10中的值。經(jīng)過屢次計(jì)算比照可以得到該段的程序源碼如圖4-9所示:圖4-9溫度解碼程序3、濕度數(shù)據(jù)的解碼:濕度數(shù)據(jù)的解碼比溫度復(fù)雜了許多,它還需要溫度的數(shù)據(jù)。為了補(bǔ)償濕度傳感器的非線性以獲得準(zhǔn)確的數(shù)據(jù),首先我們要進(jìn)行如圖4-10的公式來修正輸出數(shù)值:圖4-10濕度非線性補(bǔ)償公式其中c1、c2、c3系數(shù)的值如圖4-11所示,SOrh的值是我們協(xié)議中17、18字節(jié)的數(shù)據(jù)決定的。圖4-11濕度轉(zhuǎn)換系數(shù)接著需要對(duì)濕度傳感器相對(duì)濕度的溫度補(bǔ)償?shù)挠?jì)算,依據(jù)圖4-12的公式:圖4-12濕度傳感器相對(duì)于溫度的轉(zhuǎn)化公式該公式中的T是我們測出的溫度數(shù)據(jù),t1、t2的系數(shù)值參照圖4-13:圖4-13t1、t2系數(shù)參考經(jīng)過屢次的測量、比擬、計(jì)算可得到如圖4-14的源程序來解碼濕度數(shù)據(jù):圖4-14解碼濕度數(shù)據(jù)源碼4.3節(jié)點(diǎn)程序的燒錄節(jié)點(diǎn)〔數(shù)據(jù)采集節(jié)點(diǎn)和基站節(jié)點(diǎn)〕的程序是用NesC編寫完成,而燒錄需要在Cygwin環(huán)境下完成。Cygwin是一個(gè)在windows平臺(tái)上運(yùn)行的unix模擬環(huán)境?!?〕數(shù)據(jù)采集節(jié)點(diǎn)程序燒錄步驟1、設(shè)置Cygwin環(huán)境。首先啟動(dòng)Cygwin環(huán)境,進(jìn)入/opt/atos路徑,如圖4-15所示:圖4-15進(jìn)入/opt/atos路徑然后執(zhí)行命令腳本setupenv,如圖4-18所示:圖4-16執(zhí)行腳本命令這樣子我們就可應(yīng)使用命令行“export|grepATOSROOT〞來查看設(shè)置的結(jié)果,如圖4-19所示:圖4-16查看設(shè)置結(jié)果當(dāng)然我們可以將命令腳本寫入到.bashrc中,這樣子每次啟動(dòng)Cygwin時(shí)就會(huì)自動(dòng)配置環(huán)境。2、編譯NesC程序源碼。進(jìn)入數(shù)據(jù)采集節(jié)點(diǎn)程序所在的目錄/opt/tinyos-2.x/apps/tutorials/BlinkTask??梢钥吹较旅嬗?個(gè)文件,如圖4-17所示:圖4-17進(jìn)入源碼程序所在目錄接著用make命令編譯antc3程序,如圖4-18所示:圖4-18編譯程序編譯成功的話,會(huì)出現(xiàn)如圖4-19的提示:圖4-19編譯成功提示如果有出現(xiàn)錯(cuò)誤,一般可能是因?yàn)榄h(huán)境沒設(shè)置好,這時(shí)我們可以從新配置一次環(huán)境,也有可能是未安裝Keil這個(gè)軟件,安裝好該軟件后,再試試就可以了?!?〕數(shù)據(jù)采集節(jié)點(diǎn)的程序燒錄首先要連接硬件,將CC2430節(jié)點(diǎn)插入到網(wǎng)管辦的插口處,并用串口線將CC2430和PC機(jī)相連,其連接圖如圖4-20所示:圖4-20燒錄硬件連接圖接著使用命令行進(jìn)入到節(jié)點(diǎn)程序所在的目錄,如圖4-21所示:圖4-21進(jìn)入節(jié)點(diǎn)程序所在目錄然后執(zhí)行燒錄命令行,如圖4-22所示:圖4-22燒錄命令其中makeantc3表示編譯該程序。ASO:代表了傳感器類型的選擇,ASO=TH表示我們選擇的是溫濕度類型的傳感器。TYPE:代表了傳感器數(shù)據(jù)類型號(hào),TH=1表示我們選擇的傳感器數(shù)據(jù)類型是溫濕度數(shù)據(jù)。NID〔NodeID〕:指定了數(shù)據(jù)采集節(jié)點(diǎn)的節(jié)點(diǎn)號(hào),該編號(hào)只能從02開始,而且必須為2位的十六進(jìn)制〔位數(shù)不夠要補(bǔ)0〕GRP:指定了數(shù)據(jù)采集節(jié)點(diǎn)所在的網(wǎng)絡(luò)編號(hào),所有的數(shù)據(jù)采集節(jié)點(diǎn)的該編號(hào)要一致,即和基站的網(wǎng)絡(luò)組編號(hào)要一樣。該編號(hào)也是2為的十六進(jìn)制數(shù)。燒錄成功就會(huì)有如圖4-23所示的提示:Erasingflash…Programmingflash…………EraseandprogramOKEraseandprogramOK圖4-23燒錄成功的提示〔3〕基站節(jié)點(diǎn)程序燒錄步驟首先也要連接硬件,將CC2430節(jié)點(diǎn)插入到網(wǎng)管辦的插口處,并用串口線將CC2430和PC機(jī)相連。接著使用命令行進(jìn)入到基站節(jié)點(diǎn)程序所在的目錄:圖4-24進(jìn)入基站節(jié)點(diǎn)程序所在目錄然后執(zhí)行燒錄命令行,如圖4-25所示:圖4-25燒錄命令其中makeantc3表示編譯該程序。這里沒有ASO和TYPE等指定。NID〔NodeID〕:指定了基站節(jié)點(diǎn)的節(jié)點(diǎn)號(hào),該編號(hào)只能為01。GRP:指定了基站點(diǎn)所在的網(wǎng)絡(luò)編號(hào),該編號(hào)指定后,其他所有的數(shù)據(jù)采集節(jié)點(diǎn)的網(wǎng)絡(luò)組號(hào)必須和該值一致。該編號(hào)也是2為的十六進(jìn)制數(shù)〔不夠補(bǔ)0〕。燒錄成功就會(huì)有如圖4-26所示的提示:Erasingflash…Programmingflash…………EraseandprogramOKEraseandprogramOK圖4-26燒錄成功提示4.4效勞端的設(shè)計(jì)和實(shí)現(xiàn)效勞端主要是通過串口線從基站獲取到各個(gè)傳感器數(shù)據(jù)采集節(jié)點(diǎn)傳輸過來的溫濕度數(shù)據(jù),并存儲(chǔ)在效勞端的數(shù)據(jù)庫上,接著將每條數(shù)據(jù)通過SIM300的GPRS功能將其發(fā)送到遠(yuǎn)程主機(jī)上。效勞端程序也是由MFC來完成其界面的。通過串口的響應(yīng)來接收溫濕度數(shù)據(jù),接著讀取效勞端的系統(tǒng)時(shí)間,并解碼溫濕度數(shù)據(jù)〔關(guān)于溫濕度數(shù)據(jù)的解碼詳見小節(jié)和4.2.3小節(jié)〕,然后再根據(jù)解碼得到的數(shù)據(jù)將其繼續(xù)編碼最后通過GPRS發(fā)送到遠(yuǎn)程主機(jī)端上,編碼的主要源碼如下:CStringstring1;// m_pReviceData="";string1+="D";string1+=SystemTime;//時(shí)間string1+="N";string1+=num;//節(jié)點(diǎn)號(hào)string1+="T";string1+=wendu;//溫度string1+="R";string1+=shidu;string1+="E";//濕度以及結(jié)束字符比方我們收到的一條數(shù)據(jù)是“2023-11-0512:23:45323.673”,那么通過上面的編碼,最后發(fā)往遠(yuǎn)城主機(jī)端的數(shù)據(jù)是“D2023-11-0512:23:45N3T23.6R73E〞接著將已重新編碼的數(shù)據(jù)通過GPRS的AT指令發(fā)往SIM300模塊,通過GPRS網(wǎng)絡(luò)往遠(yuǎn)程主機(jī)端上發(fā)送,其主要代碼如下[21]:CStringstring2="AT+CIPSEND\r\n";string2+=string1;m_pMyComm2.SetOutput(COleVariant(string2));CByteArrayhexdata;hexdata.Add(0x1a);//結(jié)束的十六進(jìn)制字符1am_pMyComm2.SetOutput(COleVariant(hexdata));最后將收到的數(shù)據(jù)通過一定的代碼組織將其寫入數(shù)據(jù)庫,關(guān)于數(shù)據(jù)庫的存儲(chǔ)主要代碼如圖4-27所示:圖4-27數(shù)據(jù)庫存儲(chǔ)主要源碼以上的工作主要是完成了效勞器端的主要工作,效勞端運(yùn)行起來的界面如圖4-28所示。圖4-28效勞端主界面4.5遠(yuǎn)程主機(jī)端的設(shè)計(jì)和實(shí)現(xiàn)遠(yuǎn)程主機(jī)端主要是負(fù)責(zé)從基站接收數(shù)據(jù),并解析、取舍、解碼溫濕度數(shù)據(jù),然后將接收時(shí)間、節(jié)點(diǎn)號(hào)、溫濕度的值都存儲(chǔ)在主機(jī)的數(shù)據(jù)庫中,從而為應(yīng)用軟件提供效勞。本文作者使用MFC來構(gòu)建應(yīng)用程序和SQLServer2005來存儲(chǔ)數(shù)據(jù)。4.5.1主機(jī)效勞端應(yīng)用軟件設(shè)計(jì)分析效勞器端的應(yīng)用軟件設(shè)計(jì)有用戶操作界面和數(shù)據(jù)庫存儲(chǔ)設(shè)計(jì)。其中用戶界面的操作涵蓋了整個(gè)系統(tǒng)的需求,所以它被作為真?zhèn)€應(yīng)用軟件的核心局部。它主要實(shí)現(xiàn)以下幾個(gè)方面的功能:1、用戶登錄:該功能模塊是在翻開應(yīng)用軟件時(shí)必須要求用戶執(zhí)行的一個(gè)操作。而且用戶的權(quán)限要分為兩種,一種是普通用戶,一種是超級(jí)用戶,超級(jí)用戶擁有最高的操作權(quán)限,擁有超級(jí)用戶權(quán)限的用戶可以對(duì)應(yīng)用軟件執(zhí)行所有的操作;而普通用戶就不能執(zhí)行添加用戶、刪除用戶、刪除數(shù)據(jù)等的操作,這也是和超級(jí)用戶的區(qū)別,從而增加了系統(tǒng)的平安性能。2、溫濕度數(shù)據(jù)顯示:這里將實(shí)時(shí)的顯示從基站傳過來的溫濕度數(shù)據(jù),讓用戶直觀的看到大棚什么時(shí)候、哪個(gè)節(jié)點(diǎn)(哪里)的溫濕度數(shù)據(jù)。另外在收到正確的數(shù)據(jù)后,系統(tǒng)將會(huì)將這些數(shù)據(jù)寫到數(shù)據(jù)庫中保存起來。3、報(bào)警功能:系統(tǒng)應(yīng)該處理大棚中溫濕度超標(biāo)時(shí)的情況,所以應(yīng)用軟件在操作界面應(yīng)該有該功能。為了減少因?yàn)榕既灰蛩匾鸬恼`報(bào)警,在某個(gè)節(jié)點(diǎn)在溫濕度連續(xù)收集3次的值都超過臨界值,那么系統(tǒng)將給予報(bào)警。而報(bào)警的處理方式就是在界面上形成視覺的反差從而引起用戶的注意。4、歷史數(shù)據(jù)的查詢:這個(gè)是為了方便用戶查看歷史數(shù)據(jù)而設(shè)定的功能。它包括歷史數(shù)據(jù)以圖表和曲線圖的方式展示給用戶。5、數(shù)據(jù)的刪除:該功能主要是為了在節(jié)點(diǎn)位置、信息更新時(shí)所進(jìn)行的操作,從而保障數(shù)據(jù)的正確性。6、用戶操作:該功能主要是增加用戶、修改密碼、刪除用戶三個(gè)功能。增加用戶和刪除用戶只有超級(jí)用戶才有權(quán)限的操作。而修改密碼視為了用戶的平安,普通用戶擁有修改密碼的權(quán)限。效勞器端數(shù)據(jù)庫的存儲(chǔ)設(shè)計(jì),也是在主機(jī)效勞器端進(jìn)行的,它是運(yùn)行在SQLServer2005數(shù)據(jù)庫效勞器上的,通過對(duì)數(shù)據(jù)庫的訪問,將讀取出保存在數(shù)據(jù)庫中的數(shù)據(jù)。在這里我們將采用ADO技術(shù)來進(jìn)行對(duì)此的管理。使用預(yù)處理指令:#import#import"C:\ProgramFiles\CommonFiles\System\ADO\msado15.dll"\no_namespacerename("EOF","EndOfFile")在編譯過程中,VC++會(huì)讀出msado15.dll中的類型庫信息,自動(dòng)產(chǎn)生兩個(gè)該類型庫的頭文件和實(shí)現(xiàn)文件msado15.tlh和msado15.tli〔在Debug或Release目錄下〕。主機(jī)效勞端應(yīng)用軟件局部功能實(shí)現(xiàn)1)登陸模塊登陸模塊主要是用來授權(quán)用戶進(jìn)入系統(tǒng),對(duì)系統(tǒng)進(jìn)行操作。登陸界面如下列圖4-29所示:圖4-29系統(tǒng)登陸界面在“用戶名〞中輸入已授權(quán)的用戶名,在密碼處輸入密碼;接著按登陸,系統(tǒng)將連接數(shù)據(jù)庫的用戶登錄表進(jìn)行校驗(yàn)。如果用戶名和密碼都對(duì)了,將允許你進(jìn)入該系統(tǒng),如圖4-30所示。圖4-30身份驗(yàn)證成功提示框如果不對(duì)將出現(xiàn)提示,并讓你重新輸入,如圖4-31所示:圖4-31身份驗(yàn)證失敗提示框2)主界面主界面里面有菜單欄、工具欄、顯示界面。菜單欄有文件、查看、關(guān)于、平安設(shè)置等選項(xiàng)。工具欄有翻開監(jiān)控和關(guān)閉監(jiān)控兩個(gè)選項(xiàng)。顯示界面中有即時(shí)監(jiān)控和歷史數(shù)據(jù)。通過Tab空間進(jìn)行兩者之間的切換。如圖4-32所示圖4-32系統(tǒng)主界面m_pMyAtosenet.AddPage("即時(shí)監(jiān)控",&MonitoringDlg,IDD_DIALOG1);m_pMyAtosenet.AddPage("歷史數(shù)據(jù)",&HistoricalDlg,IDD_DIALOG2);兩條語句將實(shí)現(xiàn)上圖中〞即時(shí)監(jiān)控〞和〞歷史數(shù)據(jù)〞的初始化顯示。目前顯示在“即時(shí)監(jiān)控〞界面,該界面分左右兩局部。左邊實(shí)現(xiàn)從基站傳來數(shù)據(jù)的顯示;有半局部實(shí)現(xiàn)預(yù)警功能,即如果溫濕度超過了溫濕度上下限三次的時(shí)候相應(yīng)的綠燈將會(huì)以紅燈閃爍的形式產(chǎn)生視覺差距,從而更容易引起用戶的注意力,從而更加實(shí)時(shí)的區(qū)操作。待警報(bào)處理完后,用戶只需點(diǎn)點(diǎn)紅色的燈,系統(tǒng)立馬會(huì)將燈的顏色切換成綠色的。當(dāng)然用戶也可以根據(jù)實(shí)際的蔬菜大棚溫濕度情況需要來調(diào)節(jié)系統(tǒng)溫濕度上下限的報(bào)警值,只要報(bào)警值一變,系統(tǒng)也會(huì)立馬識(shí)別到該報(bào)警數(shù)據(jù)。圖4-33向用戶展示了〞歷史數(shù)據(jù)〞的界面。這里有六個(gè)漂亮的按鈕,它們分別是代表6個(gè)溫濕度采集節(jié)點(diǎn)。用戶只需按下要查詢的節(jié)點(diǎn)號(hào)的數(shù)字,系統(tǒng)將為你展現(xiàn)出該節(jié)點(diǎn)所有的歷史的溫濕度數(shù)據(jù)。圖4-33歷史數(shù)據(jù)查看界面“歷史數(shù)據(jù)〞界面的左下局部是通過曲線的形式給我們展現(xiàn)歷史數(shù)據(jù),以更加形象的方式給用戶提供數(shù)據(jù),供用戶查看。溫度為曲線圖的界面如圖4-34所示:圖4-34溫度曲線圖在曲線圖查看中,我們通過上面的選擇日期、節(jié)點(diǎn)號(hào)的選擇可以方便的看到一天中24小時(shí)溫度最高和最低的曲線圖,如圖4-35所示:圖4-35通過查詢得到的溫度曲線圖至此我們可以形象的看到某天中24小時(shí)之內(nèi)某節(jié)點(diǎn)在某時(shí)刻最高和最低的溫度值。當(dāng)然“及時(shí)監(jiān)控〞界面中的濕度曲線圖和溫度曲線圖是類似的。圖4-36的〞歷史數(shù)據(jù)〞界面的右半局部是數(shù)據(jù)刪除區(qū)。圖4-36刪除數(shù)據(jù)區(qū)用戶根據(jù)實(shí)際需要來選擇刪除某天內(nèi)所有節(jié)點(diǎn)或某天內(nèi)指定節(jié)點(diǎn)或某節(jié)點(diǎn)的所有數(shù)據(jù)。如果用戶只選擇〞按日期刪除〞,那么系統(tǒng)將刪除某天內(nèi)所有節(jié)點(diǎn)的數(shù)據(jù);如果用戶只選擇〞按節(jié)點(diǎn)號(hào)刪除〞,那么系統(tǒng)將刪除指定節(jié)點(diǎn)的所有數(shù)據(jù);如果用戶這兩個(gè)選項(xiàng)都選了,那么系統(tǒng)將刪除某天內(nèi)指點(diǎn)節(jié)點(diǎn)號(hào)的所有數(shù)據(jù);在刪除前系統(tǒng)將會(huì)跳出如圖4-37的提示圖4-37刪除數(shù)據(jù)確認(rèn)提示此時(shí)用戶點(diǎn)確定,那么系統(tǒng)將刪除指定的數(shù)據(jù),這些數(shù)據(jù)是恢復(fù)不了的,所以用戶請謹(jǐn)慎使用。如果用戶都沒選擇那么,系統(tǒng)將會(huì)跳出如圖4-38的提示框來提醒用戶圖4-38選擇提示框在系統(tǒng)中的菜單欄中共有4個(gè)選項(xiàng),分別是〞文件〞、〞查看〞,〞關(guān)于〞和〞平安設(shè)置〞。在查看選項(xiàng)中,用戶可以選擇〞翻開監(jiān)控〞,〞關(guān)閉監(jiān)控〞和〞退出〞。初始時(shí),由于系統(tǒng)為開啟監(jiān)控,所以〞關(guān)閉監(jiān)控〞那項(xiàng)是不能操作的〔灰白〕,當(dāng)我們選擇〞翻開監(jiān)控〞,那么〞關(guān)閉監(jiān)控〞就可以執(zhí)行了,而〞翻開監(jiān)控〞選項(xiàng)此時(shí)就不能執(zhí)行了。同時(shí)系統(tǒng)的工具欄上也會(huì)實(shí)時(shí)的變化。當(dāng)我們選擇“退出〞選項(xiàng)時(shí),系統(tǒng)將關(guān)閉監(jiān)控并斷開數(shù)據(jù)庫,最后關(guān)閉界面,退出系統(tǒng),如圖4-39所示。圖4-39菜單欄“文件〞選項(xiàng)在查看的菜單項(xiàng)選擇項(xiàng)卡中有〞即時(shí)數(shù)據(jù)〞和〞歷史數(shù)據(jù)〞兩項(xiàng)。用戶可以更具實(shí)際情況來選擇查看,如圖4-40所示。圖4-40菜單欄“查看〞選項(xiàng)在關(guān)于的菜單項(xiàng)選擇項(xiàng)卡中我們可以看到該系統(tǒng)的一些信息。在“平安設(shè)置〞的選項(xiàng)卡中友如下列圖4-41所示的一些功能.。圖4-41平安設(shè)置內(nèi)容由上圖可知在平安設(shè)置中我們可以選擇〞增加用戶〞、〞修改密碼〞和〞刪除用戶〞三個(gè)功能。不過在這普通用戶只能修改自身的密碼,而臥權(quán)限增加和刪除用戶。超級(jí)用戶可以選擇增加用戶、修改密碼、刪除用戶三個(gè)功能在刪除用戶中,超級(jí)用戶是不能刪除超級(jí)用戶的。通過此設(shè)置將提高整個(gè)系統(tǒng)的平安性能。具體功能實(shí)現(xiàn)如下:1)增加用戶〔〔普通用戶無權(quán)限〕。在這個(gè)功能中用戶必須輸入新的用戶名、密碼和確認(rèn)密碼,以及選擇是否將新用戶添加為超級(jí)用戶,如圖4-42所示。圖4-42增加用戶對(duì)話框2)修改密碼。普通用戶和超級(jí)用戶都可以使用此功能。在這邊輸入新密碼和確認(rèn)密碼,只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論