智能灌溉系統上位機軟件的設計_第1頁
智能灌溉系統上位機軟件的設計_第2頁
智能灌溉系統上位機軟件的設計_第3頁
智能灌溉系統上位機軟件的設計_第4頁
智能灌溉系統上位機軟件的設計_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、用; 根據空氣的干濕度自動控制電磁閥的開關,與加/降溫、加/除濕等設備配套使用。 2 總體結構設計 Zigbee 是基于 IEEE802.15.4 標準的低功耗局域網協議。據這個協議規定的技術是一種短距離、低功耗的無線通信技術。其特點是近距離、低復雜度、自組織、低功耗、低數據速率、低成本。主要適合用于自動控制和遠程控制領域,可以嵌入各種設備。 無線網關實現了ZigBee、GPRS、以太網、串口的網絡互聯和協議轉換,集成了符合ZigBee協議標準的JN5121系列通訊模塊,GPRS模塊,以太網接口,RS232接口。并具有通訊距離遠、抗干擾能力強、組網靈活等優點和特性;可實現一點對多點、多點對多點

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

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

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

7、;如果設備有故障或告警,節點圖標應該改變自身顏色警示操作人員。 數據查詢,實時記錄物聯網智能灌溉系統的當前和歷史數據,提供用戶對數據按日期和設備標識查詢的功能。根據數據容量和數據訪問并發性的要求,建議數據庫采用專用的數據庫管理軟件,例如SQL Server 2005。 數據分析,根據數據庫內查詢的數據繪制圖表(折線圖或餅圖等),顯示數據的分布和趨勢,提供用戶環境參數的歷史數據和做出灌溉決策的參考信息。 分布式軟件,可以在多個計算機上同時打開上位機軟件,軟件之間相互協調,每個上位機作出的參數修改都能在其他上位機軟件上顯示出操作記錄,參數設置具有并發性,多個上位機軟件進行同一參數的設置不會沖突,參

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

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

10、開發,作為系統開發的工具。開發人員必須掌握的預備知識和工具有:UDP通訊編程(UDP包測試工具的使用);多線程;Chart控件的使用;調試工具的使用。 5 數據庫表結構數據庫名稱:ZigDB。主要包括設備狀態信息表(如表1所示)、設備信息表(如表2所示)、設備類別表(如表3所示)、系統設置表、權限表、用戶表等。表1 EqStatusInfo表2 EquipmentInfo表3 EquipmentType 6 系統功能模塊系統上位機模塊包括四個主要功能模塊:實時監測模塊、數據查詢分析模塊、權限管理模塊和系統管理模塊。每一個模塊中設計了若干子模塊。系統上位機功能模塊圖,如圖4所示。圖4 系統上位機

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

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

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

14、fer0=buffer1=0xef; /發送標識符 buffer2=0x06; /發送長度 /序列號組的規則為拆封設備序列號為 3 個字節 buffer3=Convert.ToByte(strEqSn.Substring(0,2); buffer4=Convert.ToByte(strEqSn.Substring(2,2); buffer5=Convert.ToByte(strEqSn.Substring(4,2); buffer6=0x10; /命令字為單字節表示 /命令選項為命令字的輔助標記部分,區分同一類型命令的不同功能 /命令參數的長度不定,在設置類命令中為需要設置的具體參數數值 bu

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

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

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

溫馨提示

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

評論

0/150

提交評論