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

下載本文檔

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

文檔簡介

1、智能灌溉系統(tǒng)上位機軟件的設(shè)計引言 在水資源緊缺的條件下,要實現(xiàn)灌溉農(nóng)業(yè)的可持續(xù)發(fā)展,就需要灌溉更加精確智能。在不影響農(nóng)作物生長發(fā)育的前提下,按照農(nóng)作物需水要求準確及時地預報,并實現(xiàn)水量的自動控制,精確施予。目前,主要采用先進的物聯(lián)網(wǎng)技術(shù)與傳統(tǒng)農(nóng)業(yè)生產(chǎn)相結(jié)合的辦法,通過研發(fā)先進的傳感器、灌溉控制設(shè)備、功能強大的計算機灌溉管理軟件等來實現(xiàn)科學灌溉,提高農(nóng)業(yè)效益。由于全球氣候的惡化和水污染等原因,水資源短缺已經(jīng)成為全球性的問題。在各大園林、農(nóng)業(yè)及高爾夫灌溉項目中,越來越多的人認識到了節(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ā)團隊和推廣團隊,同時也取得了一定的成就。主要研發(fā)的有溫室大棚控制系統(tǒng)、灌溉系統(tǒng)、噴灌系統(tǒng)、花卉栽培控制系統(tǒng)、設(shè)施園藝自動控制系統(tǒng)、滴灌智能控制系統(tǒng)、設(shè)施農(nóng)業(yè)滴灌施肥智能化控制系統(tǒng)。并在多地有已經(jīng)建成的項目。 1 系統(tǒng)主要功能 我們設(shè)計并制作出具有監(jiān)視、控制、環(huán)境數(shù)據(jù)的不間斷采集、整理、統(tǒng)計、繪圖功能的智能灌溉系統(tǒng),以實現(xiàn)優(yōu)化科學灌溉。該系統(tǒng)適用于庭院、園林、農(nóng)田等灌溉場所。主要包括以下功能: 根據(jù)CO2濃度自動控制電磁閥的開關(guān),與CO2發(fā)生器配套使用; 根據(jù)土壤的干濕度自動控制電磁閥的開關(guān),與噴灌、微灌、滴灌等管道系統(tǒng)配套使

3、用; 根據(jù)空氣的干濕度自動控制電磁閥的開關(guān),與加/降溫、加/除濕等設(shè)備配套使用。 2 總體結(jié)構(gòu)設(shè)計 Zigbee 是基于 IEEE802.15.4 標準的低功耗局域網(wǎng)協(xié)議。據(jù)這個協(xié)議規(guī)定的技術(shù)是一種短距離、低功耗的無線通信技術(shù)。其特點是近距離、低復雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本。主要適合用于自動控制和遠程控制領(lǐng)域,可以嵌入各種設(shè)備。 無線網(wǎng)關(guān)實現(xiàn)了ZigBee、GPRS、以太網(wǎng)、串口的網(wǎng)絡(luò)互聯(lián)和協(xié)議轉(zhuǎn)換,集成了符合ZigBee協(xié)議標準的JN5121系列通訊模塊,GPRS模塊,以太網(wǎng)接口,RS232接口。并具有通訊距離遠、抗干擾能力強、組網(wǎng)靈活等優(yōu)點和特性;可實現(xià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標準。主要應(yīng)用領(lǐng)域:煤礦/油田設(shè)備遠程監(jiān)控、電力/水利設(shè)備遠程監(jiān)控、遠程智能抄表/線纜取代、工業(yè)、農(nóng)業(yè)自動化控制、樓宇、路燈智能控制。本系統(tǒng)設(shè)計由三個部分組成:監(jiān)控中心、無線網(wǎng)關(guān)、無線路由節(jié)點。其中,監(jiān)控中心主體是服務(wù)器和上位機;無線網(wǎng)關(guān)集成了符合ZigBee協(xié)議標準JN5121系列通訊模塊,GPRS模塊,以太網(wǎng)接口,RS232接口,負責將各節(jié)點的數(shù)據(jù)發(fā)送給上位機處理,或接收上位機發(fā)送的指令并傳送給

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

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

7、;如果設(shè)備有故障或告警,節(jié)點圖標應(yīng)該改變自身顏色警示操作人員。 數(shù)據(jù)查詢,實時記錄物聯(lián)網(wǎng)智能灌溉系統(tǒng)的當前和歷史數(shù)據(jù),提供用戶對數(shù)據(jù)按日期和設(shè)備標識查詢的功能。根據(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ù)和做出灌溉決策的參考信息。 分布式軟件,可以在多個計算機上同時打開上位機軟件,軟件之間相互協(xié)調(diào),每個上位機作出的參數(shù)修改都能在其他上位機軟件上顯示出操作記錄,參數(shù)設(shè)置具有并發(fā)性,多個上位機軟件進行同一參數(shù)的設(shè)置不會沖突,參

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

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

10、開發(fā),作為系統(tǒng)開發(fā)的工具。開發(fā)人員必須掌握的預備知識和工具有: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)上位機模塊包括四個主要功能模塊:實時監(jiān)測模塊、數(shù)據(jù)查詢分析模塊、權(quán)限管理模塊和系統(tǒng)管理模塊。每一個模塊中設(shè)計了若干子模塊。系統(tǒng)上位機功能模塊圖,如圖4所示。圖4 系統(tǒng)上位機

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

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

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

14、fer0=buffer1=0xef; /發(fā)送標識符 buffer2=0x06; /發(fā)送長度 /序列號組的規(guī)則為拆封設(shè)備序列號為 3 個字節(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é)表示 /命令選項為命令字的輔助標記部分,區(qū)分同一類型命令的不同功能 /命令參數(shù)的長度不定,在設(shè)置類命令中為需要設(shè)置的具體參數(shù)數(shù)值 bu

15、ffer7=0x00; /校驗和為從應(yīng)答標識符到應(yīng)答參數(shù)包含的字節(jié)內(nèi)數(shù)值累加和 byte x=0; for (int i=0; i<8; i+) x+=bufferi; buffer8=x; StaticCommon.lstbufferii=buffer; /送到臨時緩沖區(qū) udp.Send(buffer, buffer.Length, ipp); /UDP 方式發(fā)送 Thread.Sleep(200); StaticCommon.lstrevii =udp.Receive(ref ipp); /間隔 0.2秒接受數(shù)據(jù) AddData(StaticCommon.lstrevii); /記

16、錄到數(shù)據(jù)庫表 Thread.Sleep(int)StaticCommon.ssi.SpanTime); /間隔用戶指定時間 ii+; if (ii>=StaticCommon.EqSn.Count) ii=0; /在指定的設(shè)備數(shù)中循環(huán) catch (Exception ex) /異常處理 以上各傳感器數(shù)據(jù)信息參數(shù)的計算公式如下: 二氧化碳濃度: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×256+SUN數(shù) 據(jù)2×256×256+SUN數(shù)據(jù)3

17、×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)用界面控件的方法是錯誤的做法,一般采用Invoke和BeginInvoke解決這個問題。它們的共同之處是參數(shù)為delegate(委托),委托的方法是在Control的線程上執(zhí)行的,也就是UI線程,這樣確保在多線程中安全地更新界面顯示。 Invoke在擁有此控件的基礎(chǔ)窗口句柄的線程上執(zhí)行指定的委托;而BeginInvoke則在創(chuàng)建控件的基礎(chǔ)句柄所在線程上異步執(zhí)行指定委托。本系統(tǒng)主要采用Invoke方法。實現(xiàn)輪詢

溫馨提示

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

評論

0/150

提交評論