智能灌溉系統(tǒng)上位機(jī)軟件的設(shè)計(jì)_第1頁
智能灌溉系統(tǒng)上位機(jī)軟件的設(shè)計(jì)_第2頁
智能灌溉系統(tǒng)上位機(jī)軟件的設(shè)計(jì)_第3頁
智能灌溉系統(tǒng)上位機(jī)軟件的設(shè)計(jì)_第4頁
智能灌溉系統(tǒng)上位機(jī)軟件的設(shè)計(jì)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、智能灌溉系統(tǒng)上位機(jī)軟件的設(shè)計(jì)引言 在水資源緊缺的條件下,要實(shí)現(xiàn)灌溉農(nóng)業(yè)的可持續(xù)發(fā)展,就需要灌溉更加精確智能。在不影響農(nóng)作物生長發(fā)育的前提下,按照農(nóng)作物需水要求準(zhǔn)確及時(shí)地預(yù)報(bào),并實(shí)現(xiàn)水量的自動(dòng)控制,精確施予。目前,主要采用先進(jìn)的物聯(lián)網(wǎng)技術(shù)與傳統(tǒng)農(nóng)業(yè)生產(chǎn)相結(jié)合的辦法,通過研發(fā)先進(jìn)的傳感器、灌溉控制設(shè)備、功能強(qiáng)大的計(jì)算機(jī)灌溉管理軟件等來實(shí)現(xiàn)科學(xué)灌溉,提高農(nóng)業(yè)效益。由于全球氣候的惡化和水污染等原因,水資源短缺已經(jīng)成為全球性的問題。在各大園林、農(nóng)業(yè)及高爾夫灌溉項(xiàng)目中,越來越多的人認(rèn)識到了節(jié)水灌溉的重要性。為了保證人工植被和農(nóng)作物的正常生長,節(jié)水灌溉系統(tǒng)起到了至關(guān)重要的作用。托普物聯(lián)網(wǎng)專注于農(nóng)業(yè)物聯(lián)網(wǎng)的研

2、發(fā)和建設(shè),在這幾年里,積極響應(yīng)國家農(nóng)業(yè)物聯(lián)網(wǎng)推廣的號召,組建專業(yè)的研發(fā)團(tuán)隊(duì)和推廣團(tuán)隊(duì),同時(shí)也取得了一定的成就。主要研發(fā)的有溫室大棚控制系統(tǒng)、灌溉系統(tǒng)、噴灌系統(tǒng)、花卉栽培控制系統(tǒng)、設(shè)施園藝自動(dòng)控制系統(tǒng)、滴灌智能控制系統(tǒng)、設(shè)施農(nóng)業(yè)滴灌施肥智能化控制系統(tǒng)。并在多地有已經(jīng)建成的項(xiàng)目。 1 系統(tǒng)主要功能 我們設(shè)計(jì)并制作出具有監(jiān)視、控制、環(huán)境數(shù)據(jù)的不間斷采集、整理、統(tǒng)計(jì)、繪圖功能的智能灌溉系統(tǒng),以實(shí)現(xiàn)優(yōu)化科學(xué)灌溉。該系統(tǒng)適用于庭院、園林、農(nóng)田等灌溉場所。主要包括以下功能: 根據(jù)CO2濃度自動(dòng)控制電磁閥的開關(guān),與CO2發(fā)生器配套使用; 根據(jù)土壤的干濕度自動(dòng)控制電磁閥的開關(guān),與噴灌、微灌、滴灌等管道系統(tǒng)配套使

3、用; 根據(jù)空氣的干濕度自動(dòng)控制電磁閥的開關(guān),與加/降溫、加/除濕等設(shè)備配套使用。 2 總體結(jié)構(gòu)設(shè)計(jì) Zigbee 是基于 IEEE802.15.4 標(biāo)準(zhǔn)的低功耗局域網(wǎng)協(xié)議。據(jù)這個(gè)協(xié)議規(guī)定的技術(shù)是一種短距離、低功耗的無線通信技術(shù)。其特點(diǎn)是近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本。主要適合用于自動(dòng)控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入各種設(shè)備。 無線網(wǎng)關(guān)實(shí)現(xiàn)了ZigBee、GPRS、以太網(wǎng)、串口的網(wǎng)絡(luò)互聯(lián)和協(xié)議轉(zhuǎn)換,集成了符合ZigBee協(xié)議標(biāo)準(zhǔn)的JN5121系列通訊模塊,GPRS模塊,以太網(wǎng)接口,RS232接口。并具有通訊距離遠(yuǎn)、抗干擾能力強(qiáng)、組網(wǎng)靈活等優(yōu)點(diǎn)和特性;可實(shí)現(xiàn)一點(diǎn)對多點(diǎn)、多點(diǎn)對多點(diǎn)

4、的串口設(shè)備間的數(shù)據(jù)透明傳輸,也可以根據(jù)用戶的需要定制軟件;可按照星形網(wǎng)絡(luò)、網(wǎng)狀網(wǎng)絡(luò)以及樹狀網(wǎng)絡(luò)組網(wǎng)。兼容 FCC Part 15, ETSI ETS 300-328 和日本的ARIB STD-T16標(biāo)準(zhǔn)。主要應(yīng)用領(lǐng)域:煤礦/油田設(shè)備遠(yuǎn)程監(jiān)控、電力/水利設(shè)備遠(yuǎn)程監(jiān)控、遠(yuǎn)程智能抄表/線纜取代、工業(yè)、農(nóng)業(yè)自動(dòng)化控制、樓宇、路燈智能控制。本系統(tǒng)設(shè)計(jì)由三個(gè)部分組成:監(jiān)控中心、無線網(wǎng)關(guān)、無線路由節(jié)點(diǎn)。其中,監(jiān)控中心主體是服務(wù)器和上位機(jī);無線網(wǎng)關(guān)集成了符合ZigBee協(xié)議標(biāo)準(zhǔn)JN5121系列通訊模塊,GPRS模塊,以太網(wǎng)接口,RS232接口,負(fù)責(zé)將各節(jié)點(diǎn)的數(shù)據(jù)發(fā)送給上位機(jī)處理,或接收上位機(jī)發(fā)送的指令并傳送給

5、各節(jié)點(diǎn);無線路由節(jié)點(diǎn)可以有多個(gè),集成了CO2濃度傳感模塊、土壤的干濕度傳感模塊、空氣的干濕度傳感模塊和ARM模塊。系統(tǒng)組成框圖如圖1所示。圖1 系統(tǒng)組成框圖 3 硬件原理本系統(tǒng)的傳感節(jié)點(diǎn)硬件采用CC2530,如圖2所示。CC2530是用于2.4-GHz IEEE 802.15.4、ZigBee和RF4CE應(yīng)用的一個(gè)真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM和許多其他強(qiáng)大的功能。CC2530有四種不同的閃存版本:CC2530F32/64/128

6、/256,分別具有32/64/128/256KB的閃存。CC2530具有不同的運(yùn)行模式,使得它特別適應(yīng)超低功耗要求的系統(tǒng)。運(yùn)行模式之間的轉(zhuǎn)換時(shí)間短,進(jìn)一步確保了低能源消耗。圖2 傳感節(jié)點(diǎn)硬件框圖 4 上位機(jī)的設(shè)計(jì) 4.1 功能需求 以太網(wǎng)通信方式是物聯(lián)網(wǎng)智能灌溉系統(tǒng)與計(jì)算機(jī)最主要的通信方式,采用UDP通信協(xié)議層,多線程方式進(jìn)行數(shù)據(jù)交互。上位機(jī)需要單獨(dú)具備以太網(wǎng)通信界面,除了實(shí)現(xiàn)物聯(lián)網(wǎng)智能灌溉系統(tǒng)以太網(wǎng)通信命令中列出的各項(xiàng)命令之外,還需要以下幾個(gè)重要功能。 網(wǎng)絡(luò)拓?fù)?,顯示物聯(lián)網(wǎng)智能灌溉系統(tǒng)所有已經(jīng)注冊的設(shè)備節(jié)點(diǎn)物理區(qū)域視圖,主要用于直觀地反映設(shè)備節(jié)點(diǎn)的分布概況,用于設(shè)備故障定位。在視圖上,雙擊設(shè)

7、備節(jié)點(diǎn)圖標(biāo)能夠自動(dòng)顯示該節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù)信息;如果設(shè)備有故障或告警,節(jié)點(diǎn)圖標(biāo)應(yīng)該改變自身顏色警示操作人員。 數(shù)據(jù)查詢,實(shí)時(shí)記錄物聯(lián)網(wǎng)智能灌溉系統(tǒng)的當(dāng)前和歷史數(shù)據(jù),提供用戶對數(shù)據(jù)按日期和設(shè)備標(biāo)識查詢的功能。根據(jù)數(shù)據(jù)容量和數(shù)據(jù)訪問并發(fā)性的要求,建議數(shù)據(jù)庫采用專用的數(shù)據(jù)庫管理軟件,例如SQL Server 2005。 數(shù)據(jù)分析,根據(jù)數(shù)據(jù)庫內(nèi)查詢的數(shù)據(jù)繪制圖表(折線圖或餅圖等),顯示數(shù)據(jù)的分布和趨勢,提供用戶環(huán)境參數(shù)的歷史數(shù)據(jù)和做出灌溉決策的參考信息。 分布式軟件,可以在多個(gè)計(jì)算機(jī)上同時(shí)打開上位機(jī)軟件,軟件之間相互協(xié)調(diào),每個(gè)上位機(jī)作出的參數(shù)修改都能在其他上位機(jī)軟件上顯示出操作記錄,參數(shù)設(shè)置具有并發(fā)性,多

8、個(gè)上位機(jī)軟件進(jìn)行同一參數(shù)的設(shè)置不會沖突,參數(shù)設(shè)置完成后,其他上位機(jī)界面會同步更新。 4.2 上位機(jī)架構(gòu)本系統(tǒng)采用.Net三層架構(gòu)。三層架構(gòu)(3-tier application)通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用邏輯上劃分為:表示層(USL)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。三層架構(gòu)是一個(gè)支持可抽取、可替換的“抽屜”式架構(gòu),符合“高內(nèi)聚,低耦合”的思想,所以這些層可以單獨(dú)開發(fā),單獨(dú)測試。具體的三層架構(gòu)的分層結(jié)構(gòu)圖,如圖3所示。圖3 三層架構(gòu)的分層結(jié)構(gòu)圖 4.3 開發(fā)工具的選擇 .NET 是一個(gè)開發(fā)平臺,它定義了一種公用語言子集(Common Language Subset, C

9、LS)。.NET統(tǒng)一了編程類庫,提供了對下一代網(wǎng)絡(luò)通信標(biāo)準(zhǔn),可擴(kuò)展標(biāo)記語言(XML)的完全支持,使軟件的開發(fā)變得容易。.NET與Windows平臺緊密集成,是一種面向網(wǎng)絡(luò)、支持各種用戶終端的開發(fā)平臺環(huán)境。 SQL SERVER 2005 對 SQL Server 2000 中已經(jīng)存在的特性進(jìn)行了加強(qiáng)。加強(qiáng)了T-SQL(事務(wù)處理SQL),整合了符合.NET規(guī)范的語言(可以在數(shù)據(jù)庫管理系統(tǒng)中執(zhí)行.NET代碼以充分利用.NET功能),使自身帶有支持對用戶自定義數(shù)據(jù)庫中存儲的數(shù)據(jù)進(jìn)行加密的功能,生成多活動(dòng)結(jié)果集(允許從單個(gè)的客戶端到數(shù)據(jù)庫保持一條持久的連接,以便在每個(gè)連接上擁有超過一個(gè)的活動(dòng)請求)等。

10、基于上述原因,我們選擇.NET架構(gòu)C#語言開發(fā),作為系統(tǒng)開發(fā)的工具。開發(fā)人員必須掌握的預(yù)備知識和工具有:UDP通訊編程(UDP包測試工具的使用);多線程;Chart控件的使用;調(diào)試工具的使用。 5 數(shù)據(jù)庫表結(jié)構(gòu)數(shù)據(jù)庫名稱:ZigDB。主要包括設(shè)備狀態(tài)信息表(如表1所示)、設(shè)備信息表(如表2所示)、設(shè)備類別表(如表3所示)、系統(tǒng)設(shè)置表、權(quán)限表、用戶表等。表1 EqStatusInfo表2 EquipmentInfo表3 EquipmentType 6 系統(tǒng)功能模塊系統(tǒng)上位機(jī)模塊包括四個(gè)主要功能模塊:實(shí)時(shí)監(jiān)測模塊、數(shù)據(jù)查詢分析模塊、權(quán)限管理模塊和系統(tǒng)管理模塊。每一個(gè)模塊中設(shè)計(jì)了若干子模塊。系統(tǒng)上位

11、機(jī)功能模塊圖,如圖4所示。圖4 系統(tǒng)上位機(jī)功能模塊圖 7 上下位機(jī)通信的方式 本系統(tǒng)主要采用兩種與上位機(jī)通信的方式。 本地調(diào)試端口,采用RS232串口通信方式,用于和計(jì)算機(jī)直連后進(jìn)行數(shù)據(jù)通信,同時(shí),對智能灌溉系統(tǒng)進(jìn)行設(shè)備注冊和網(wǎng)絡(luò)參數(shù)配置也使用該通信方式。 遠(yuǎn)程通信端口,采用以太網(wǎng)通信方式,用于和遠(yuǎn)端計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,主要功能是上報(bào)智能灌溉系統(tǒng)各傳感器的數(shù)據(jù),以及獲取修改相關(guān)參數(shù)的上下限閾值。 8 主要窗口與關(guān)鍵技術(shù) 8.1 主要窗口 上位機(jī)軟件主要包括以下幾個(gè)窗口。 主窗口(FormMain):主要包括監(jiān)聽線程Run()方法,用于實(shí)現(xiàn)輪詢,先采樣放入緩沖區(qū)然后入庫。 網(wǎng)絡(luò)拓?fù)浯翱?Form

12、NetworkTop):顯示AP結(jié)點(diǎn)拓?fù)湮恢?,主要包括AP結(jié)點(diǎn)圖標(biāo)的類型和位置,鼠標(biāo)MouseDown()、MouseUp()、MouseMove()事件處理等。 設(shè)備狀態(tài)窗口(FormOneEq):主要包括發(fā)送信息給傳感器sendThreshold()、跨線程訪問控件UpdateUI()、設(shè)置最大閾值和最小閾值。 設(shè)備序列號的設(shè)置窗口(FormEqpSN):主要包括一些按鈕事件處理btnSave_Click()、btnDel_Click()、btnUpdate_Click(),實(shí)現(xiàn)對設(shè)備序列號的增刪改查的操作。 數(shù)據(jù)查詢窗口(FormBrowseHisData):主要包括根據(jù)查詢條件顯示查詢

13、結(jié)果和CHART圖表。涉及btnBrow_Click()、dgvBrowResult_DataBindingComplete()等事件處理。 8.2 關(guān)鍵技術(shù) 8.2.1 輪詢監(jiān)聽 主程序(FormMain)中監(jiān)聽線程Run()方法代碼,主要根據(jù)通訊協(xié)議的要求,通過輪詢方式,主要采用基于System.Net,System.Net.Sockets空間的UdpClient類實(shí)現(xiàn)UDP通信,向設(shè)備發(fā)送命令,從而獲取傳感器數(shù)據(jù)信息,然后解析數(shù)據(jù)(包括進(jìn)制轉(zhuǎn)換),并記錄到數(shù)據(jù)庫表中。 部分代碼如下: private void Run() byte buffer=new byte9; while (tru

14、e) Try strEqSn=StaticCommon.EqSnii; buffer0=buffer1=0xef; /發(fā)送標(biāo)識符 buffer2=0x06; /發(fā)送長度 /序列號組的規(guī)則為拆封設(shè)備序列號為 3 個(gè)字節(jié) buffer3=Convert.ToByte(strEqSn.Substring(0,2); buffer4=Convert.ToByte(strEqSn.Substring(2,2); buffer5=Convert.ToByte(strEqSn.Substring(4,2); buffer6=0x10; /命令字為單字節(jié)表示 /命令選項(xiàng)為命令字的輔助標(biāo)記部分,區(qū)分同一類型命令

15、的不同功能 /命令參數(shù)的長度不定,在設(shè)置類命令中為需要設(shè)置的具體參數(shù)數(shù)值 buffer7=0x00; /校驗(yàn)和為從應(yīng)答標(biāo)識符到應(yīng)答參數(shù)包含的字節(jié)內(nèi)數(shù)值累加和 byte x=0; for (int i=0; i<8; i+) x+=bufferi; buffer8=x; StaticCommon.lstbufferii=buffer; /送到臨時(shí)緩沖區(qū) udp.Send(buffer, buffer.Length, ipp); /UDP 方式發(fā)送 Thread.Sleep(200); StaticCommon.lstrevii =udp.Receive(ref ipp); /間隔 0.2秒

16、接受數(shù)據(jù) AddData(StaticCommon.lstrevii); /記錄到數(shù)據(jù)庫表 Thread.Sleep(int)StaticCommon.ssi.SpanTime); /間隔用戶指定時(shí)間 ii+; if (ii>=StaticCommon.EqSn.Count) ii=0; /在指定的設(shè)備數(shù)中循環(huán) catch (Exception ex) /異常處理 以上各傳感器數(shù)據(jù)信息參數(shù)的計(jì)算公式如下: 二氧化碳濃度:CO2數(shù)據(jù)=CO2數(shù)據(jù)1×256+CO2數(shù)據(jù)2 土壤濕度:SOIL數(shù)據(jù)=SOIL數(shù)據(jù) 日照度:SUN數(shù)據(jù)=SUN數(shù)據(jù)1×256×256

17、15;256+SUN數(shù) 據(jù)2×256×256+SUN數(shù)據(jù)3×256+SUN數(shù)據(jù)4 空氣溫度:TEMP數(shù)據(jù)=TEMP數(shù)據(jù)-40空氣濕度:HUMI數(shù)據(jù)=HUMI數(shù)據(jù) 8.2.2 跨線程訪問控件 在多線程編程中,經(jīng)常要在工作線程中去更新界面顯示,而在多線程中直接調(diào)用界面控件的方法是錯(cuò)誤的做法,一般采用Invoke和BeginInvoke解決這個(gè)問題。它們的共同之處是參數(shù)為delegate(委托),委托的方法是在Control的線程上執(zhí)行的,也就是UI線程,這樣確保在多線程中安全地更新界面顯示。 Invoke在擁有此控件的基礎(chǔ)窗口句柄的線程上執(zhí)行指定的委托;而BeginInvoke則在創(chuàng)建控件的基礎(chǔ)句柄所在線程上異步執(zhí)行指定委托。本系統(tǒng)主要采用Invoke方法。實(shí)現(xiàn)

溫馨提示

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

評論

0/150

提交評論