網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)的研究與設(shè)計_第1頁
網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)的研究與設(shè)計_第2頁
網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)的研究與設(shè)計_第3頁
網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)的研究與設(shè)計_第4頁
網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)的研究與設(shè)計_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

碩 士 學(xué) 位 論 文Thesis中文論文題目: 網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)的研究與設(shè)計 英文論文題目: ResearchandDesignofMulti-parameter WirelessMonitoringSysteminCageCulture 學(xué)科專業(yè): 控制理論與控制工程 摘 要中國是世界上最大的漁業(yè)生產(chǎn)國,然而由于對漁業(yè)資源的過度捕撈,國家漁業(yè)總產(chǎn)量增長率呈下降趨勢,因此,發(fā)展水產(chǎn)養(yǎng)殖尤其是擁有諸多優(yōu)點的網(wǎng)箱養(yǎng)殖就顯得非常重要。然而傳統(tǒng)的網(wǎng)箱養(yǎng)殖大多是憑養(yǎng)殖戶的經(jīng)驗和頻繁巡查,當(dāng)大型養(yǎng)殖漁場網(wǎng)箱較多時,就很難使網(wǎng)箱維持在最佳狀態(tài),限制了養(yǎng)殖產(chǎn)出?;诖?,本文針對網(wǎng)箱養(yǎng)殖現(xiàn)場分布的特點,利用各類傳感器,結(jié)合無線網(wǎng)絡(luò)技術(shù)、嵌入式與自動控制等技術(shù),確立多層網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),優(yōu)化網(wǎng)絡(luò)傳輸,設(shè)計了基于無線傳感網(wǎng)絡(luò)的可對網(wǎng)箱內(nèi)多種參數(shù)進行實時監(jiān)測和控制的自動化控制系統(tǒng),對加強漁場參數(shù)監(jiān)控,提高喂養(yǎng)質(zhì)量與養(yǎng)殖產(chǎn)量具有現(xiàn)實意義。本文主要完成的工作如下:1、綜述了養(yǎng)殖水質(zhì)檢測和無線傳感網(wǎng)絡(luò)技術(shù)的發(fā)展現(xiàn)狀,分析了網(wǎng)箱養(yǎng)殖的特點,提出了基于無線傳感網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)的網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)的總體設(shè)計方案。2、針對網(wǎng)箱養(yǎng)殖水溫、溶解氧等參數(shù)檢測與傳輸特性,分析了TI的Z-Stack協(xié)議棧,構(gòu)建了傳感器節(jié)點、匯集網(wǎng)關(guān)以及WEB服務(wù)器等可行的系統(tǒng)結(jié)構(gòu),完成了信號采集與調(diào)理、無線通信、SIM卡接口電路等硬件設(shè)計,搭建了網(wǎng)箱養(yǎng)殖多參數(shù)無線傳感網(wǎng)絡(luò)實驗系統(tǒng)。3、針對網(wǎng)箱養(yǎng)殖特點與功能要求,建立了基于Protothread狀態(tài)機的軟件系統(tǒng)運行機制,研究了基于WinCE6.0嵌入式系統(tǒng)內(nèi)核裁剪以及基于此內(nèi)核的應(yīng)用軟件的編程方法,為多參數(shù)網(wǎng)絡(luò)系統(tǒng)數(shù)據(jù)傳輸?shù)膶崟r可靠奠定了基礎(chǔ),并分析了STM32內(nèi)部存儲器結(jié)構(gòu)及其與Cotex-M3內(nèi)核的對應(yīng)關(guān)系,設(shè)計了可應(yīng)用于網(wǎng)箱養(yǎng)殖的傳感器固件遠程更新的方法。模塊設(shè)計,制作了基于Django的WEB界面,設(shè)計了監(jiān)控畫面,并在搭建的系統(tǒng)上進行了實驗測試。結(jié)果表明,本系統(tǒng)具有實時性強、可靠性高、操作簡單等特點,可在多種智能終端上進行聯(lián)網(wǎng)監(jiān)測,具有較高的實用價值。關(guān)鍵詞:網(wǎng)箱養(yǎng)殖;數(shù)據(jù)采集;無線傳感網(wǎng)絡(luò);監(jiān)控系統(tǒng);遠程固件無線更新IResearchandDesignofMulti-parameterWirelessMonitoringSysteminCageCultureABSTRACTChinaisthelargestproducerinfisheryallaroundtheworld.However,thegrowthrateofnationalfisheryoutputisonthedeclineduetooverfishingoffisheryresources.Therefore,itisveryimportanttodevelopaquacultureindustry,especiallycageculturewithmanyadvantages.However,traditionalcageculturemostlydependsontheexperienceandfrequentpatroloffarmers.Itisdifficulttokeepthecagesinthebestconditioninlarge-scaleaquafarmwithmanycages,whichlimitstheaquacultureoutput.Basedonthissituation,thispaperusesmultiplesensorsandcombineswiththewirelessnetworktechnology,embeddedandautomaticcontroltechnologytoestablishmulti-layernetworktopologystructureandoptimizethenetworktransmissionaccordingtothecharacteristicsofcagesdistribution,anddesignsanautomationcontrolsystembasedonwirelesssensornetwork,whichcanmonitorandcontrolmulti-parametersofcagesinrealtime.Inaword,ithaspracticalsignificancetostrengthenthemonitoringofaquafarmparametersandimprovefeedqualityandaquacultureoutput.Inthispaper,themainworkisasfollows:ThispaperreviewsthebackgroundanddevelopmentofwaterqualitydetectionandWSN.Thecharacteristicsofcagecultureisanalyzed.BasedonthewirelesssensornetworkandInternetnetwork,theoveralldesignofmulti-parameterwirelessmonitoringsystemincagecultureisproposed.Aimedatthedetectionandtransmissioncharacteristicsofparameterssuchastemperature,dissolvedoxygen,theTIZ-Stackprotocolstackisanalyzed.Thefeasiblesystemstructurewithsensornode,sensorgatewayandWEBserverisbuilt.Thehardwaredesign,includingsignalacquisitionandregulation,wirelesscommunication,SIMcardinterfacecircuitandothers,iscompleted.Multi-parameterexperimentsystembasedonwirelesssensornetworkincagecultureisset.Aimedatthecharacteristicsandfunctionrequirementsofcageculture,therunningIImechanismofsoftwaresystembasedontheprotothreadstatemachineisestablished.TheembeddedsystemkernelcuttingbasedonWinCE6.0andtheapplicationsoftwareprogrammingmethodbasedonthekernelarestudied,whichlaysthefoundationofreal-timeandreliabledatatransmissioninmultipleparametersnetworksystem.TheSTM32internalstoragestructureanditscorrespondingrelationshipwithCotex-M3kernelareanalyzed.Themethodofremotefirmwareupdatingwhichbeappliedtocagecultureisdesigned.Thefunctionmodulesincludingdataacquisition,serialcommunication,Ethernetcommunication,remotecontrolandremotefirmwareupdatingovertheairareimplemented.TheWEBinterfaceandmonitoringscreenbasedonDjangoaredesigned.Afterexperimentsonthebuiltsystem,theresultsshowthatthissystemhasthecharacteristicssuchasstrongreal-timeperformance,highreliabilityandsimpleoperation,andcanbemonitoredonavarietyofintelligentterminaloverthenetwork.Inaword,thissystemhaspracticalvalue.Keywords:CageCultue;DataAcquisition;WirelessSensorNetwork;MonitoringandControlSystem;RemoteFirmwareUpdateOverTheAirIII目 錄摘 要 IABSTRACT II目 錄 第一章 緒論 11.1 課題的背景與意義 11.2 國內(nèi)外的研究現(xiàn)狀 21.3 研究內(nèi)容及章節(jié)內(nèi)容安排 4第二章 系統(tǒng)總體方案設(shè)計 62.1 網(wǎng)箱養(yǎng)殖的需求分析 62.2 傳感器節(jié)點設(shè)計 72.3 匯集網(wǎng)關(guān)設(shè)計 82.4 基于WEB的服務(wù)器軟件設(shè)計 92.5 本章小結(jié) 9第三章 系統(tǒng)硬件設(shè)計 103.1 傳感器節(jié)點硬件設(shè)計 103.1.1 無線通信模塊設(shè)計 103.1.2 信號調(diào)理電路設(shè)計 123.2 匯集網(wǎng)關(guān)硬件設(shè)計 143.2.1 GPRS通信模塊設(shè)計 153.2.2 供電電源模塊設(shè)計 153.2.3 SIM卡接口電路設(shè)計 173.3 本章小結(jié) 17第四章 系統(tǒng)軟件設(shè)計 184.1 無線傳感網(wǎng)絡(luò)的搭建 184.1.1 無線傳感器網(wǎng)絡(luò)相關(guān)概念 184.1.2 無線傳感網(wǎng)絡(luò)的體系架構(gòu) 184.1.3 基于Z-Stack協(xié)議棧的無線傳感網(wǎng)絡(luò)搭建 19IV4.2 傳感器節(jié)點軟件設(shè)計 224.2.1 Protothread狀態(tài)機 224.2.2 簡易FIFO緩存機制 244.3 匯集網(wǎng)關(guān)軟件設(shè)計 264.3.1 WinCE6.0開發(fā)平臺 264.3.2 應(yīng)用軟件的開發(fā)與設(shè)計 304.4 WEB服務(wù)器的設(shè)計和開發(fā) 334.4.1 Django框架簡介 334.4.2 Django開發(fā)環(huán)境搭建 334.4.3 后臺管理界面開發(fā) 344.4.4 網(wǎng)箱數(shù)據(jù)上傳和處理 364.4.5 前端界面開發(fā) 374.5 本章小結(jié) 39第五章 遠程固件無線更新方法研究 405.1 遠程固件無線更新的基礎(chǔ) 405.1.1 協(xié)議簡介 405.1.2 STM32內(nèi)嵌bootloader的研究 415.2 遠程固件無線更新方法設(shè)計與實現(xiàn) 435.2.1 通信協(xié)議研究和設(shè)計 435.2.2 協(xié)議移植 455.2.3 自定義bootloder程序設(shè)計 455.3 本章小結(jié) 53第六章 系統(tǒng)調(diào)試和實驗結(jié)果分析 546.1 實驗系統(tǒng)搭建 546.2 遠程固件無線更新方法驗證 566.3 本章小結(jié) 58第七章 總結(jié)和展望 59參 考 文 獻 61攻讀碩士學(xué)位期間研究成果 65致 謝 66V第一章緒論1.1課題的背景與意義中國是世界上最大的漁業(yè)生產(chǎn)國,漁業(yè)發(fā)展給中國國民經(jīng)濟帶來很大的貢獻,而且在全球整個漁業(yè)發(fā)展勢頭日漸趨于平緩的情況下,國內(nèi)的漁業(yè)仍能保持一個較好的增長勢頭。同時,漁業(yè)發(fā)展還對改善國民生活、生態(tài)環(huán)境保護等方面有著重要深遠的意義。得要增加捕撈規(guī)模不斷地來攝取漁業(yè)資源,甚至超出了漁業(yè)資源自身更新的能力,因此在這樣的情況下,發(fā)展水產(chǎn)養(yǎng)殖就顯得非常重要,而且顯而易見,水產(chǎn)養(yǎng)殖經(jīng)濟效益十分可觀。水產(chǎn)養(yǎng)殖有很多種方式,而網(wǎng)箱養(yǎng)殖是其中一種重要的形式。該方式方便活、操作簡便、起捕容易。傳統(tǒng)的網(wǎng)箱養(yǎng)殖大多是憑靠養(yǎng)殖戶的經(jīng)驗,往往容易出現(xiàn)誤判,難以使網(wǎng)箱維持在24等經(jīng)濟價值較高,不少對養(yǎng)殖環(huán)境要求苛刻,一旦出現(xiàn)問題,養(yǎng)殖戶損失較大,因此對養(yǎng)殖環(huán)境及時準(zhǔn)確的監(jiān)控就顯得十分重要。不同于其他行業(yè),網(wǎng)箱養(yǎng)殖的特點決定了現(xiàn)場環(huán)境復(fù)雜、分布廣泛、數(shù)目眾多的特點,難以采用普通的工業(yè)監(jiān)控方式來設(shè)置。對網(wǎng)箱養(yǎng)殖信息的獲取、分析處理、系統(tǒng)智能化等問題是各類研究機構(gòu)關(guān)注的焦點,已成為國際上研究現(xiàn)代漁業(yè)的重要課題。現(xiàn)今在水產(chǎn)養(yǎng)殖業(yè)中信息快速采集技術(shù)方面的研究情況仍與其他領(lǐng)域的信息技術(shù)的水平有較大差距,制約了漁業(yè)養(yǎng)殖水平的進一步提高,成課題主要針對網(wǎng)箱養(yǎng)殖現(xiàn)場分布的特點,利用各類傳感器,結(jié)合無線網(wǎng)絡(luò)技術(shù)、嵌入式與自動控制等技術(shù),確立多層網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),優(yōu)化網(wǎng)絡(luò)傳輸,對網(wǎng)箱內(nèi)各種參數(shù)進行實時監(jiān)測。該項目符合我國現(xiàn)階段發(fā)展海洋經(jīng)濟的戰(zhàn)略,且項目的實施有助于實現(xiàn)對漁業(yè)養(yǎng)殖過程中參數(shù)的實時檢測,降低獲取此類數(shù)據(jù)的難度,為相關(guān)的漁業(yè)研究水平、管理能力的提升提供了有力的保證;有利于漁業(yè)監(jiān)測從室內(nèi)走向室外,從單一環(huán)境轉(zhuǎn)向1復(fù)雜環(huán)境;還有利于推進智能檢測及自動化技術(shù)在漁業(yè)科研與生產(chǎn)監(jiān)測中的應(yīng)用,使網(wǎng)箱養(yǎng)殖的品質(zhì)控制從產(chǎn)后管理向產(chǎn)中管理延伸,消除盲區(qū),促進我省漁業(yè)養(yǎng)殖中科技改革,為漁業(yè)增收、區(qū)域經(jīng)濟的發(fā)展發(fā)揮重要作用。1.2國內(nèi)外的研究現(xiàn)狀養(yǎng)殖水體水質(zhì)檢測方法經(jīng)歷了三個階段,分別是傳統(tǒng)經(jīng)驗法、化學(xué)法和儀器法[1]。然而不管是用化學(xué)分析法還是儀表測試法,都需要要面對漫長的監(jiān)測周期和高額的監(jiān)測很大程序上制約了水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng)進一步的發(fā)展。隨著傳感技術(shù)、通信技術(shù)、自動化控制技術(shù)等技術(shù)的不斷發(fā)展和完善,養(yǎng)殖水質(zhì)監(jiān)控系統(tǒng)不斷地被研究和更新。舊有的檢測方式已滿足不了日益發(fā)展的需要,此時更新一代的養(yǎng)殖水質(zhì)監(jiān)控系統(tǒng)應(yīng)運而生,它能夠利用各種水質(zhì)檢測相關(guān)的傳感器來采集養(yǎng)殖水體的各種狀態(tài),并能夠完成實時有效可靠監(jiān)測養(yǎng)殖水環(huán)境的狀態(tài)參數(shù),是一個運用先進存儲以及查看等功能的完整系統(tǒng)[4]?,F(xiàn)今已有的以串行總線、現(xiàn)場總線等有線的方式為基礎(chǔ)的水質(zhì)自動監(jiān)測系統(tǒng),主要采用了分散管理,集中控制的有線控制方式。雖然這類有線系統(tǒng)可以滿足一定的生產(chǎn)需求,但整個系統(tǒng)很難適應(yīng)水產(chǎn)養(yǎng)殖環(huán)境的高濕度、高鹽度和高酸堿度,而且復(fù)雜的養(yǎng)殖環(huán)境使得現(xiàn)場布線施工困難,線路容易受腐蝕,維護成本高,因此在一定程度上也是制約了水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng)的發(fā)展[5,6]。目前,國內(nèi)外已在無線傳感器網(wǎng)絡(luò)在水產(chǎn)養(yǎng)殖監(jiān)控相關(guān)方面做了一定的應(yīng)用研究。歐美國家在水質(zhì)監(jiān)測系統(tǒng)方面發(fā)展比較快,設(shè)施很先進,將自動監(jiān)測技術(shù)應(yīng)用于水產(chǎn)養(yǎng)養(yǎng)殖監(jiān)控系統(tǒng)提出了一套軟件仿真框架,該軟件框架由過濾和數(shù)據(jù)集成模塊、狀態(tài)建模建了一個漁場養(yǎng)殖自動化監(jiān)控系統(tǒng),搭建了可以實時監(jiān)控漁場水環(huán)境的監(jiān)控網(wǎng)絡(luò),具有低成本、低功耗和易操作等特點,同時又研究設(shè)計了一個可持續(xù)供電的供電系統(tǒng),可在設(shè)計并詳細(xì)介紹了以傳感器數(shù)據(jù)記錄為核心的水環(huán)境狀態(tài)監(jiān)控系統(tǒng),并且可以在任何地方通過Internet網(wǎng)絡(luò)或者移動網(wǎng)絡(luò)接入監(jiān)控系統(tǒng)來查看監(jiān)控數(shù)據(jù)。而相較國外來說,國內(nèi)在無線傳感網(wǎng)絡(luò)方面所做的研究工作總體來說還是比較缺乏的,尤其是在基于無線傳2感網(wǎng)絡(luò)所做的水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng)方面的研究和應(yīng)用,目前看來仍是處于起步階段[10],然而盡管如此,國內(nèi)近期在這方面還是做了不少的探索研究。以下就是本文所做的一些總結(jié),文獻[11]提出將無線傳感網(wǎng)絡(luò)應(yīng)用到水產(chǎn)養(yǎng)殖中,并構(gòu)建了一個無線監(jiān)控系統(tǒng),同時研究優(yōu)化了LEACH路由協(xié)議,經(jīng)驗證其能夠滿足規(guī)?;a(chǎn)養(yǎng)殖大量數(shù)據(jù)傳輸?shù)男枰约氨WC通信安全可靠。文獻[12]對路由協(xié)議進行研究比較,且在以自適應(yīng)分群分層路由協(xié)議為研究基礎(chǔ),研究了可根據(jù)節(jié)點電池剩余能量動態(tài)地進行數(shù)據(jù)傳輸方式切換的方法,從達到了節(jié)能和延長網(wǎng)絡(luò)生命周期的目的。文獻[13]提出了基于無線傳感器網(wǎng)絡(luò)的參數(shù)測量和節(jié)能型變頻增氧控制,進一步優(yōu)化通信網(wǎng)絡(luò),達到各節(jié)點供電電池剩余PI-PID控制算法對溶解氧含量進行自動變頻控制,實現(xiàn)了對養(yǎng)殖水環(huán)境最重要的溶解氧因子的閉環(huán)控制。文獻[14]構(gòu)建了基于無線傳感器網(wǎng)絡(luò)的水產(chǎn)養(yǎng)殖水質(zhì)監(jiān)測系統(tǒng),研究了設(shè)計PH值傳感器、溶解氧傳感器等傳感器信號采集和標(biāo)定,使得水質(zhì)參數(shù)檢測小型化成為可能,經(jīng)驗證系統(tǒng)運行穩(wěn)定、測量準(zhǔn)確可靠。文獻[15]基于物聯(lián)網(wǎng)技術(shù)設(shè)計了多功能水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng),可通過無線傳感技術(shù)、射頻識別等技術(shù)方法,全面地管理和監(jiān)測養(yǎng)殖環(huán)境,并結(jié)合實際項目進行驗證其具有高數(shù)據(jù)采集準(zhǔn)確性和高數(shù)據(jù)傳輸穩(wěn)定性??梢婋S著無線傳感網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,給水產(chǎn)養(yǎng)殖水體監(jiān)控帶來很大的發(fā)展。有了無線傳感網(wǎng)絡(luò)的幫助,對于養(yǎng)殖戶來說,可以更加方便地進行管理養(yǎng)殖生產(chǎn);可以實時查看水環(huán)境狀態(tài),對異常情況可以第一時間做出處理;可以減少飼料浪費,減少環(huán)境污染等;為能生產(chǎn)出安全,綠色,高質(zhì)量的水產(chǎn)品提供了保障[16,17]。可見其有美好的發(fā)如生產(chǎn)過程缺乏病害預(yù)警機制與預(yù)防策略、水質(zhì)實時監(jiān)測與報警比較落后,相關(guān)技術(shù)還不夠成熟以及系統(tǒng)設(shè)備的高成本等問題,這些問題同樣也會限制養(yǎng)魚規(guī)模的擴大和產(chǎn)量的提高,進而制約整個行業(yè)的發(fā)展[18,19]。綜上所述,基于水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng)和無線傳感網(wǎng)絡(luò)技術(shù)的發(fā)展現(xiàn)狀,本論文針對網(wǎng)箱養(yǎng)殖監(jiān)控系統(tǒng)存在的如下兩方面的問題開展研究和設(shè)計:但是設(shè)備早已發(fā)給客戶,此時如果挨家挨戶的取下設(shè)備做升級,顯然是不太現(xiàn)實;運行在PC機上的監(jiān)控軟件來查看,這就在空間和時間上帶來很大的局限,如果可以接入多種終端,如手機、PAD等,系統(tǒng)監(jiān)控將更加方便。31.3研究內(nèi)容及章節(jié)內(nèi)容安排針對上述不足,本文基于無線傳感網(wǎng)絡(luò)、移動網(wǎng)絡(luò)以及Internet網(wǎng)絡(luò)等網(wǎng)絡(luò)技術(shù),匯集和上傳,同時可實現(xiàn)對水環(huán)境參數(shù)隨時隨地查看等功能的網(wǎng)箱養(yǎng)殖多參數(shù)無線監(jiān)控系統(tǒng)。在系統(tǒng)中,以無線通信模塊和微控制器雙核結(jié)構(gòu)為基礎(chǔ)的傳感器節(jié)點與以嵌入式系統(tǒng)平臺為基礎(chǔ)的匯集網(wǎng)關(guān)進行自組網(wǎng),之后傳感器節(jié)點通過外設(shè)資源和信號調(diào)理電路等進行網(wǎng)箱水環(huán)境參數(shù)的采集、處理和發(fā)送,匯集網(wǎng)關(guān)接收各個傳感器節(jié)點所采集的參數(shù)并打包轉(zhuǎn)發(fā)到系統(tǒng)所設(shè)計的WEB服務(wù)器進行數(shù)據(jù)存儲,用戶可通過多種智能設(shè)備打開WEB界面進行網(wǎng)箱養(yǎng)殖水環(huán)境狀態(tài)監(jiān)控。同時,系統(tǒng)具有遠程控制和傳感器固件無線遠程更新的功能。論文各章節(jié)安排內(nèi)容如下:第一章:詳細(xì)介紹了在網(wǎng)箱養(yǎng)殖監(jiān)控系統(tǒng)方面所做研究的背景和意義,基于無線傳感網(wǎng)絡(luò)技術(shù)的水產(chǎn)養(yǎng)殖監(jiān)控系統(tǒng)的國內(nèi)外研究現(xiàn)狀,并總結(jié)現(xiàn)有系統(tǒng)的不足,提出本論文主要研究內(nèi)容,最后介紹各章節(jié)內(nèi)容安排。第二章:詳細(xì)分析了網(wǎng)箱養(yǎng)殖的特點和需求,系統(tǒng)所開發(fā)設(shè)計的傳感器節(jié)點和匯集網(wǎng)關(guān)的主要功能和節(jié)點結(jié)構(gòu)以及系統(tǒng)所開發(fā)設(shè)計的WEB服務(wù)器軟件的優(yōu)勢和主要功能。第三章:詳細(xì)介紹了傳感器節(jié)點和匯集網(wǎng)關(guān)這兩個系統(tǒng)關(guān)鍵組成部分的相關(guān)硬件設(shè)計,傳感器節(jié)點硬件設(shè)計涉及到對無線通信模塊的天線設(shè)計,各水質(zhì)傳感器調(diào)理電路的設(shè)計等方面;匯集網(wǎng)關(guān)硬件設(shè)計主要包括對GPRS通信模塊的主電路,供電電源電路和SIM卡接口電路等方面。第四章:詳細(xì)介紹了系統(tǒng)軟件設(shè)計部分,主要包括傳感器節(jié)點軟件設(shè)計,匯集網(wǎng)關(guān)軟件設(shè)計和WEB服務(wù)器軟件的設(shè)計。其中傳感器節(jié)點軟件設(shè)計主要包括對protothread狀態(tài)機的研究和應(yīng)用、FIFO緩存機制的研究設(shè)計與應(yīng)用等方面;嵌入式系統(tǒng)WinCE軟件設(shè)計主要包括對WinCE6.0系統(tǒng)的裁剪與移植,應(yīng)用軟件的設(shè)計與開發(fā)等方面;WEB服務(wù)器軟件設(shè)計主要包括對Django框架的研究和應(yīng)用等方面。bootloader和協(xié)議的遠程固件無線更新的方法,設(shè)計研究了用于匯集網(wǎng)關(guān)與無線通信模塊和傳感器節(jié)點與無線通信模塊之間通信的自定義協(xié)議,研究改進了文件傳輸協(xié)議使其更適合論文所設(shè)計的系統(tǒng),提出了遠程固件無線更新的思路,并據(jù)此研究了STM32啟動過程和中斷方式,設(shè)計開發(fā)了自定義bootloader程序,并研究設(shè)計了軟件程序與自定義bootloader程序之間的跳4轉(zhuǎn)代碼。第六章:詳細(xì)介紹系統(tǒng)實物整體運行情況,包括軟件和硬件,以及記錄和分析相關(guān)數(shù)據(jù),并驗證系統(tǒng)設(shè)計的遠程固件無線更新方法的有效性。第七章:總結(jié)課題所做的工作以及所取得的成果,提出論文的不足點,且對下一步的工作進行展望。5第二章系統(tǒng)總體方案設(shè)計2.1網(wǎng)箱養(yǎng)殖的需求分析網(wǎng)箱養(yǎng)殖是近幾年來發(fā)展起來的一項具備高科技水平的養(yǎng)殖項目,它是利用人造的網(wǎng)狀箱體,放入水體中,形成一個適宜魚類生活的活水環(huán)境,能以較高的效益獲得較高的產(chǎn)出。網(wǎng)箱養(yǎng)魚之所以能高產(chǎn),很大程序上是因為網(wǎng)箱養(yǎng)殖是利用大自然自動調(diào)節(jié)能進而可以加速魚體的增長;另外,網(wǎng)箱的網(wǎng)狀結(jié)構(gòu)本身就有保護魚少受其他生物危害的作用。除此之外,網(wǎng)箱養(yǎng)魚方法具有機動、靈活、簡便、高產(chǎn)、水域適應(yīng)性廣等諸多特點,在我國海、淡水養(yǎng)殖業(yè)中有廣闊的發(fā)展前途[20-22]。在實際的網(wǎng)箱養(yǎng)殖過程中,選擇合適的養(yǎng)殖環(huán)境非常重要。一般而言,設(shè)置網(wǎng)箱的的水流,不易過大過小,一般0.05-0.2米/秒為宜;③選擇富含豐富的浮游生物,且不僅適合魚體生長,又適合富有生物生長的水域。網(wǎng)箱培育魚種是高密度的養(yǎng)殖,需要根據(jù)網(wǎng)箱中水的更新速度,水體中浮游生物含量和飼養(yǎng)管理技術(shù)水平等來確定放養(yǎng)密度。密度跟成活率密切相關(guān),衡量網(wǎng)箱養(yǎng)殖的水平高低的重要一條就是產(chǎn)量和成活率。此外還速度、水質(zhì)透明度等參數(shù),同時網(wǎng)箱培育魚種必須科學(xué)投喂,做到定質(zhì)、定量、定時、定位地進行投餌。為做到科學(xué)養(yǎng)殖,養(yǎng)殖戶需要針對不同情況進行多方案投餌,根據(jù)不同的季節(jié)和不同的水溫進行動態(tài)調(diào)整投餌量。具體投餌量還需要視天氣和魚的吃食情況來靈活掌握,因此投餌過程也需要智能控制。整個網(wǎng)箱養(yǎng)殖系統(tǒng)在地域上往往處于邊遠郊區(qū),而且都是露天環(huán)境,現(xiàn)場環(huán)境極其復(fù)雜,對此利用普通工業(yè)現(xiàn)場總線聯(lián)網(wǎng)的方案往往難以實現(xiàn),因此課題提出基于無線監(jiān)控的方案。系統(tǒng)主要以Zigbee無線傳感網(wǎng)絡(luò)、GPRS移動網(wǎng)絡(luò)以及Internet網(wǎng)絡(luò)等網(wǎng)絡(luò)技術(shù)為基礎(chǔ),以嵌入式系統(tǒng)和web服務(wù)器為載體,并結(jié)合傳感、信號變換等技術(shù),實現(xiàn)了網(wǎng)箱養(yǎng)殖水環(huán)境的實時遠程監(jiān)測與控制。系統(tǒng)總體框圖如下圖2-1所示。圖中一個傳感器節(jié)點對應(yīng)一個網(wǎng)箱,匯集網(wǎng)關(guān)將n個傳感器節(jié)點將數(shù)據(jù)匯集起來,6再通過移動網(wǎng)絡(luò)發(fā)往因特網(wǎng)。一般而言,一個匯聚節(jié)點對應(yīng)一個養(yǎng)殖場。若是多個養(yǎng)殖場的監(jiān)控就需要多個匯集網(wǎng)關(guān)。這一過程中匯聚節(jié)點通過ZigBee無線傳感網(wǎng)絡(luò)利用協(xié)議與采集節(jié)點連接,將養(yǎng)殖場中各個網(wǎng)箱的水環(huán)境參數(shù)信息并整合,通過GPRS移動網(wǎng)絡(luò)中轉(zhuǎn)上傳到web服務(wù)器,儲存到相應(yīng)的數(shù)據(jù)庫中。最終養(yǎng)殖戶可以用PC機等設(shè)備訪問web服務(wù)器,通過課題設(shè)計開發(fā)的基于WEB的服務(wù)器端軟件實現(xiàn)各個網(wǎng)箱的水環(huán)境參數(shù)的監(jiān)測,同時還可以遠程操縱網(wǎng)箱各執(zhí)行機構(gòu)的運行狀態(tài)。對應(yīng)上述系統(tǒng)總體結(jié)構(gòu),課題在工作上主要也就上述三大部分展開,即:傳感器節(jié)點設(shè)計、匯聚節(jié)點設(shè)計和基于WEB的服務(wù)器端軟件設(shè)計。圖2-1系統(tǒng)總體結(jié)構(gòu)2.2傳感器節(jié)點設(shè)計傳感器節(jié)點主要具備采集網(wǎng)箱水環(huán)境參數(shù),打包和發(fā)送數(shù)據(jù)以及響應(yīng)遠程控制指令等功能,并能對執(zhí)行機構(gòu)進行控制。節(jié)點采用由STM32F103RBT6微控制器和TI(德州儀器)的CC2530微控制器組合使用的雙核方案來實現(xiàn)節(jié)點功能。其中STM32F103RBT6微控制器主要負(fù)責(zé)水環(huán)境各參數(shù)的采集,電池電壓的檢測和充氧泵等執(zhí)行機構(gòu)的控制,CC2530微控制器主要負(fù)責(zé)進行組網(wǎng)以及傳輸數(shù)據(jù)和控制指令,傳感器節(jié)點結(jié)構(gòu)圖如圖2-2所示。7執(zhí)行機構(gòu)模塊執(zhí)行機構(gòu)模塊SM32F103RC6單片機控制模塊傳感器模塊CC2530無線通信模塊電源模塊太陽能充電模塊UART圖2-2傳感器節(jié)點結(jié)構(gòu)圖2.3匯集網(wǎng)關(guān)設(shè)計匯集網(wǎng)關(guān)結(jié)構(gòu)圖如圖2-3所示。服務(wù)器801GGPRS通信模塊CC2530無線通信模塊電源模塊以太網(wǎng)接口UARTsyARMMX283嵌入式系統(tǒng)平臺UART圖2-3匯集網(wǎng)關(guān)結(jié)構(gòu)圖匯集網(wǎng)關(guān)主要具備匯集和上傳各傳感器節(jié)點數(shù)據(jù)、轉(zhuǎn)發(fā)遠程控制指令等功能。本文采用廣州周立功單片機科技有限公司的EasyARM-iMX283嵌入式系統(tǒng)平臺來完成節(jié)點功能,平臺以Freescale公司的基于ARM9內(nèi)核的i.MX283多媒體應(yīng)用處理器為核心,其主頻為DDR2和NAND3路路路SPI、4路12bitADC、1路10/100M以太網(wǎng)接口、1路SDIO、1路I2S接口、1路USBOTG接口、1路USBHost接口、支持TFT液晶屏和電阻式觸摸。平臺的資源豐富,同時其資源基本都以接口或者排針的形式引出,可方便外接其他功能模塊來擴展平臺功能。系統(tǒng)通過一路接口與CC2530無線通信模塊相連,通過無線協(xié)議進行組網(wǎng),利用無線網(wǎng)絡(luò)將整個無線傳感網(wǎng)絡(luò)中的各個網(wǎng)箱的水環(huán)境參數(shù)進行匯集,并加以處8理;通過一路以太網(wǎng)接口或者GPRS接口可將平臺與Internet網(wǎng)絡(luò)進行綁定,將已匯聚的各節(jié)點數(shù)據(jù)上傳到web服務(wù)器的數(shù)據(jù)庫中。2.4基于WEB的服務(wù)器軟件設(shè)計服務(wù)器端信息綜合管理系統(tǒng)軟件需要具備對現(xiàn)場眾多節(jié)點監(jiān)測和部分執(zhí)行器件控制的功能,主要體現(xiàn)兩種優(yōu)勢:a)強大的數(shù)據(jù)處理與功能;b)靈活的接入方式,支持手機、Pad等多種終端;基于以上兩點考慮,系統(tǒng)軟件將會選擇可利用計算機、Pad或者手機隨時訪問,并可以根據(jù)需要加入信息推送功能,將監(jiān)控狀態(tài)直接推送到用戶手中,比如報警信息,以便客戶在第一時間進行應(yīng)對。PythonMySQL5.5Django框架的進行前端界面的開發(fā)。軟件功能部分需要設(shè)計包含:數(shù)據(jù)采集存儲、多參數(shù)數(shù)據(jù)曲線顯示、數(shù)據(jù)查詢等各部分功能。2.5本章小結(jié)本章首先對網(wǎng)箱養(yǎng)殖的相關(guān)知識及其特點進行介紹,之后對傳感器節(jié)點和匯集網(wǎng)關(guān)的節(jié)點結(jié)構(gòu)以及主要功能進行詳細(xì)介紹,最后分析了WEB服務(wù)器軟件的優(yōu)勢并系統(tǒng)所設(shè)計的WEB服務(wù)器的主要功能。9第三章系統(tǒng)硬件設(shè)計網(wǎng)箱養(yǎng)殖監(jiān)控系統(tǒng)中涉及到眾多檢測水參數(shù)的傳感器,而不同的傳感器信號需要進行不同的調(diào)理輸出,數(shù)據(jù)的采集需要微控制器的支持,數(shù)據(jù)的傳輸需要通信模塊支持,整個系統(tǒng)功能的實現(xiàn)需要有硬件平臺作為基礎(chǔ)支持,因此課題開展了相應(yīng)的硬件設(shè)計工作。對于傳感器節(jié)點而言,硬件設(shè)計的主要內(nèi)容包含無線通信模塊設(shè)計、信號處理單元設(shè)計、ARM處理器控制模塊設(shè)計等。對于匯聚網(wǎng)關(guān)而言,硬件設(shè)計的主要內(nèi)容包含無通信模塊設(shè)計等。3.1傳感器節(jié)點硬件設(shè)計3.1.1無線通信模塊設(shè)計課題采用MAC和物理層網(wǎng)絡(luò)規(guī)范國際標(biāo)準(zhǔn)的2.4G射頻收發(fā)器2400~2483.6MHz16個免許可證的頻段通道,數(shù)據(jù)傳輸率可最高達250kbps[24],具有成本低,組網(wǎng)速度快,網(wǎng)絡(luò)穩(wěn)定等特點,是一款廣泛應(yīng)用于智能家居、智能農(nóng)業(yè)、安全監(jiān)控等行業(yè)的片上系統(tǒng)解決方案。圖3-1CC2530應(yīng)用電路如上圖3-1所示是CC2530的應(yīng)用電路,從圖中可以看出CC2530的最小系統(tǒng)有電10源,時鐘電路,復(fù)位電路和天線電路等組成,而天線電路是設(shè)計的關(guān)鍵部分,其一般采用2種設(shè)計方案:一種是SMA天線,一種是PCB天線,在距離稍遠的實際應(yīng)用中,一般采用SMA天線,如果需要還可以在天線前端增加功率放大模塊,來進一步增加發(fā)射功率從而提高傳播距離。課題采用SMA方案。課題對阻抗匹配的基本原理做了一些研究。一般來說,阻抗匹配主要是通過負(fù)載阻抗與激勵源內(nèi)部阻抗進行互相適配來實現(xiàn),目的是為了獲得最大功率輸出。下圖3-2所示的電源負(fù)載電路,其中E為電壓源,r為電源E的內(nèi)阻,R為負(fù)載電阻。由于r的存R很小時趨于短路狀態(tài);而當(dāng)R很大時,電路趨于開路狀態(tài)[25]。根據(jù)公式3-(1),負(fù)載在開路或者短路狀態(tài)下都不能獲得最大功率。p=I2R=E R+r

2 E2R=Rr24r+

只有當(dāng)

4r+

E2Rr2R

R分母中的r2的值取最小值0時負(fù)載才能獲得最大輸出功率。因此,得出當(dāng)要向負(fù)載輸出最大功率,就要滿足負(fù)載電阻等于電源內(nèi)阻時。同理,在設(shè)計天線電路時,為了輸出最大的天線發(fā)射功率,就需要做到天線線路的輸出阻抗與天線阻抗等大。ErR圖3-2電源負(fù)載電路從上圖3-1所示的天線電路可以看出CC2530輸出的射頻信號是差分信號。差分電路具有高增益、抗電磁干擾、抗電源噪聲、抗地噪聲能力很高、抑制偶次諧波等優(yōu)點,如今在RF電路和低頻電路中,差分電路的使用越來越廣泛。如果將芯片的兩路射頻信系統(tǒng)設(shè)計包括課題所設(shè)計的系統(tǒng)一般選用的天線是同軸電纜,是不平衡傳輸,為了不影響天線信號的發(fā)射,就要避免在天線的屏蔽層,也就是外皮,出現(xiàn)高頻電流。因此,就需要要在天線和電纜之間加入平衡不平衡轉(zhuǎn)換器,將本將流入天線外皮的高頻信號截斷為實現(xiàn)上述轉(zhuǎn)換,可直接選用價格較貴的集成的巴倫模塊,但如果對帶寬和頻率要{求不高,完全可用分立元件實現(xiàn)。為了更直接的了解和掌握天線設(shè)計的流程,課題采用分立元件來完成巴倫電路的設(shè)計。如下圖3-3所示是巴倫結(jié)構(gòu)。{}RI L}CC平衡端輸入不平衡端輸出L圖3-3巴倫結(jié)構(gòu)取值計算公式RI和RL分別為單端和輸出端口的阻抗。=2fZC=RIRLL=ZCC=1 ZC

3.1.2信號調(diào)理電路設(shè)計由于網(wǎng)箱養(yǎng)殖所涉及的參數(shù)眾多,需要不同的傳感器,有些是模擬輸出的,有些是數(shù)字輸出,不同的傳感器往往又涉及到不同信號處理和獲取的方法。課題選取其中兩個傳感器信號來加以描述,限于篇幅,其他傳感器設(shè)計部分不再贅述。1、PH傳感器信號調(diào)理模塊課題采用的PH傳感器是基于復(fù)合電極制成的PH3-4所示是PH傳感器的調(diào)理電路,傳感器接到圖中所示的P1座子上。系統(tǒng)選用的PH傳感器是采用PH玻璃電極和參比電極組合而成的結(jié)構(gòu),其輸出信號即為兩個電極的相對電壓。傳感器在酸堿性不同溶液中會輸出正負(fù)變化的電壓值,當(dāng)參比電極處于中性溶液中時,酸性溶液輸出正壓,堿性溶液輸出負(fù)壓[28]。然而負(fù)壓對于所選STM32F103RC微控制器的AD(模數(shù)轉(zhuǎn)換)來說是不可接受的,所以就利用其輸出信號時相對于參比電極的電壓差值這個特性,給參比電極,也就是傳感器的PH-端,加上一個合適的電壓值,保證信號電極電壓恒為正值。此電壓通過TL431基準(zhǔn)源產(chǎn)生,再通過電壓跟隨器平穩(wěn)輸出,再配合放大器12放大輸出得到在控制器AD工作電壓范圍內(nèi)的電壓。在實際調(diào)試過程中,需根據(jù)控制器AD的工作電壓范圍來調(diào)節(jié)滑動變阻器W1來調(diào)整輸出,保證其在一定范圍內(nèi)。TL431提供的基準(zhǔn)電壓計算公式3-(3)如下:(1W1/R4),

)傳感器信號經(jīng)由下圖3-43-(4)計算得出:_(PH)/測量出的電壓信號到最后的使用,還需進行校準(zhǔn)標(biāo)定。盡管pH計盡管種類很多,但其pH值與傳感器輸出的電壓信號是成線性關(guān)系,一般校準(zhǔn)方法是采用兩點校準(zhǔn)法,即選擇兩種標(biāo)準(zhǔn)緩沖液:一種pH7標(biāo)準(zhǔn)緩沖液,第二種是pH9標(biāo)準(zhǔn)緩沖液或pH4緩沖液。課題選用雷磁的鄰苯二甲酸氫鉀溶液(pH=4.00,25℃)和混合磷酸鹽溶液圖3-4PH傳感器的調(diào)理電路2、溶解氧傳感器信號調(diào)理模塊陰0.1M氯化鉀(KCl)溶液作為電解液,采用用硅橡膠滲透膜作透氣膜。根據(jù)透過滲透膜的氧量與水中溶解氧濃度成正比,可得電極間的極限擴散電流與水中溶解氧濃度成正比[29],因此,只需用檢測此擴散電流,再經(jīng)轉(zhuǎn)換運算就可得到溶液中的氧含量。圖3-5所示是溶解氧傳感器的調(diào)理電路,主要完13成將傳感器輸出的4-20ma的電流信號轉(zhuǎn)成STM32F103RC微控制器可接受的電壓信號,電路中R7電阻選型比較講究,要求精度高,溫漂小,其作用是將輸入的電流信號轉(zhuǎn)變成相應(yīng)的電壓值,之后利用運算放大器輸入高阻的特性,將上述轉(zhuǎn)換過來的電壓分壓輸入到雙運算放大器TLC27L2的一個放大器中并進行10處理電路輸入到TLC27L2個電路需要通過調(diào)整滑動變阻器W1進行輸出校準(zhǔn)。經(jīng)過該電路處理即可完成溶解氧傳感器輸出,從而可進行后續(xù)處理分析。傳感器信號經(jīng)由下圖3-53-(5)計算得出:VI

R7W1pR4,

3-(5)o iR7W1 R5若W1R7W1將近似等于R7W1圖3-5溶解氧傳感器的調(diào)理電路3.2匯集網(wǎng)關(guān)硬件設(shè)計課題選用EasyARM-iMX283作為系統(tǒng)采集數(shù)據(jù)和控制數(shù)據(jù)傳輸?shù)闹行模髤R集網(wǎng)關(guān)需要比較高的性能,要有較大的數(shù)據(jù)緩存、較快的數(shù)據(jù)處理、多任務(wù)快速切換調(diào)度和管理等能力。EasyARM-iMX283平臺所擁有的豐富外設(shè)資源,足以滿足課題所需的數(shù)據(jù)采集、數(shù)據(jù)傳輸以及更高水平更復(fù)雜的應(yīng)用。另外,課題設(shè)計中需要通過1路以太網(wǎng)接口或者GPRS接口將系統(tǒng)接入Internet應(yīng)的驅(qū)動電路,這塊更多的是集中在軟件方面的研究,論文將在第四章中詳細(xì)闡述,本節(jié)則主要來介紹GPRS通信模塊的設(shè)計。143.2.1GPRS通信模塊設(shè)計課題所設(shè)計的GPRS通信模塊,可被稱為數(shù)據(jù)傳輸單元DTU(DataTransfer是專門用于將串口數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)或?qū)?shù)據(jù)轉(zhuǎn)換為串口數(shù)據(jù)通過無線移動網(wǎng)絡(luò)進硬件平臺通過串口與GPRS模塊相連,實現(xiàn)將各網(wǎng)箱所采集的水環(huán)境參數(shù)通過串口發(fā)給GPRS模塊,經(jīng)過拆包打包通過移動網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)轉(zhuǎn)發(fā)到相應(yīng)的服務(wù)器。如下圖3-6所示是課題設(shè)計的GPRS模塊選用北京公司的W801G將介紹GPRS通信模塊硬件設(shè)計的幾個關(guān)鍵部分:圖3-6GPRS通信模塊153.2.2供電電源模塊設(shè)計課題所選用的GPRS3.3V~4.2V射射頻信號時電流峰值最高會達到2A以上,因此在電源設(shè)計時就選擇供電能力要盡可能達到LM2576-ADJ來作為供電穩(wěn)壓芯片,其最大輸出電流可達3A和可調(diào)輸出電壓都能滿足模塊正常穩(wěn)定工作所需的電壓和電流,若不正確的選擇,就會導(dǎo)致在模塊使用過程中出現(xiàn)電壓跌落的環(huán)境比較惡劣,模塊供電很容易受到外部干擾,為了增強模塊電源抗干擾能力,設(shè)計中在外部電源輸入端加入一些TVS管等器件,在供電芯片輸出端加一些nf、pf級電容,濾除干擾[32]。+12VM2576801GGNDINGNDOUTGNDVCCGND圖3-7GPRS通信模塊合理布局通信模塊工作穩(wěn)定性的好壞與模塊PCB的布局和布線有著很大的關(guān)系。若模塊PCB設(shè)計不進行合理的布局和布線,在模塊開機注冊網(wǎng)絡(luò)、TCP/IP傳輸數(shù)據(jù)頻繁大數(shù)據(jù)量、信號強度不好等需要比較大電流的情況下時,模塊就很可能也會出關(guān)機或重啟現(xiàn)象。如上圖3-7所示是課題研究設(shè)計比較合理的布局。在PCB布線中,還要特別注意地線的布線,因為地線在整個回流路徑中出現(xiàn)長短不一或者阻抗的不連續(xù),也會造成電源跌落,進而會影響模塊正常工作。課題設(shè)計中,將地線做如下模塊的GND,電源適配器的GND間用一塊完整的銅PCB板盡量多打地孔,從而保證電源和地的回流路徑最小。為了能達到更好的穩(wěn)壓效果,設(shè)計中還需要在靠近模塊的VCC引腳處接上大電容,16進一步地確保供電電壓的穩(wěn)定,進而可以增加模塊工作的穩(wěn)定性。3.2.3SIM卡接口電路設(shè)計課題所選的GPRS模塊支持1.8V或者3.0V的SIMSIM卡的類型自3.0V±10%或者SIM卡的通信也是很容易受到環(huán)境和供電的影響,如圖3-6所示,課題故作如下的設(shè)計:VSIM:需要并100或220nF電容,以穩(wěn)定電源輸出,減小紋波;SIMIO:建議并pF級電容,防止高頻干擾;SIMRST:建議并nF級電容,防止高頻干擾;為了增強SIM卡部分的可靠性,在靠近SIM卡卡座的接口處增加ESD靜電保護器件[33]。PCB布局和布線時,將SIM卡卡座盡量靠近模塊,避免走線過長,導(dǎo)致無法識別SIM卡。上述提到的電容、ESD等器件放置要靠近SIM卡座。3.3本章小結(jié)本章結(jié)合自身實際應(yīng)用的經(jīng)驗具體介紹了傳感器節(jié)點和匯集網(wǎng)關(guān)的硬件設(shè)計中的幾個關(guān)鍵點。在傳感器節(jié)點硬件設(shè)計這方面,主要對各傳感器調(diào)理電路的設(shè)計,無線通信模塊的天線設(shè)計等方面進行了介紹;在匯集網(wǎng)關(guān)硬件設(shè)計這方面,主要對GPRS通信模塊的主電路,電源電路和SIM卡接口電路等方面進行了介紹。17第四章系統(tǒng)軟件設(shè)計針對網(wǎng)箱養(yǎng)殖特點與功能要求,在本文硬件設(shè)計的基礎(chǔ)上,采用多種軟件平臺和軟對應(yīng)于傳感器節(jié)點、匯聚網(wǎng)關(guān)以及WEB服務(wù)器,課題開展了相應(yīng)的軟件設(shè)計工作。對于傳感器節(jié)點而言,軟件設(shè)計的主要內(nèi)容包含無線傳感網(wǎng)絡(luò)搭建、protothread狀態(tài)機、簡易FIFOWinCE6.0嵌入式操作系統(tǒng)的裁剪與移植、應(yīng)用軟件開發(fā)與設(shè)計等。對于WEB服務(wù)器而言,軟件設(shè)計的主要內(nèi)容包括Django界面開發(fā)等。4.1無線傳感網(wǎng)絡(luò)的搭建4.1.1無線傳感器網(wǎng)絡(luò)相關(guān)概念SensorNetworks,WSN)就是由部署在監(jiān)測區(qū)域中大量的廉價微型傳感器節(jié)點組成,通過無線通信方式形成的一個多跳的自組織網(wǎng)絡(luò)系統(tǒng),其目無線傳感網(wǎng)絡(luò)是大規(guī)模、自組織、動態(tài)性、可靠性強的網(wǎng)絡(luò),又是以數(shù)據(jù)為中心的網(wǎng)絡(luò),是與應(yīng)用相關(guān)的網(wǎng)絡(luò),這完全可以符合課題的需要。4.1.2無線傳感網(wǎng)絡(luò)的體系架構(gòu)圖4-1無線傳感網(wǎng)絡(luò)的體系架構(gòu)如第二章所述,課題構(gòu)建了較為合理的無線傳感網(wǎng)絡(luò),包括隨機部署在檢測區(qū)域內(nèi)18部或附近的傳感器節(jié)點、收集檢測區(qū)域內(nèi)各傳感器節(jié)點數(shù)據(jù)的匯聚節(jié)點以及在云端對檢集節(jié)點,當(dāng)距離過遠或者信號過差,還可沿著其他傳感器節(jié)點進行路由傳輸,經(jīng)過多次轉(zhuǎn)發(fā)后到達匯聚節(jié)點。最后,數(shù)據(jù)還可通過各種網(wǎng)絡(luò)媒介到達管理節(jié)點。用戶通過管理圖4-1所示。圖4-2IAR工程目錄4.1.3基于協(xié)議棧的無線傳感網(wǎng)絡(luò)搭建1、Z-Stack協(xié)議棧課題設(shè)計的系統(tǒng)在傳感器和匯聚節(jié)點之間,選用了Z-Stack網(wǎng)絡(luò)協(xié)議進行組網(wǎng)通信,它是TI公司研發(fā),通過zigbee聯(lián)盟認(rèn)證的免費協(xié)議棧,協(xié)議內(nèi)部也包括了OS的模型,協(xié)議棧具有國際化,標(biāo)準(zhǔn)化的特點,協(xié)議棧已提供十幾種(未來會更多)應(yīng)用場景剖面(如圖4-2所示是Z-Stack協(xié)議棧的IAR工程目錄。軟件程序一般是從main函數(shù)開始,Z-Stack協(xié)議棧亦然,通過研究分析Z-Stack協(xié)議棧的工程發(fā)現(xiàn),協(xié)議棧主要完成兩個任務(wù):一個是完成系統(tǒng)各硬件外設(shè)和軟件架構(gòu)的初始化,另一個任務(wù)就是執(zhí)行操作系統(tǒng)抽象層實體。a)各硬件外設(shè)和軟件架構(gòu)的初始化為了使操作系統(tǒng)抽象層的軟件程序正常運行,系統(tǒng)上電啟動需要完硬件平臺和軟件架構(gòu)的初始化,主要有系統(tǒng)時鐘初始化、芯片工作電壓檢測、初始化堆棧、I/O外設(shè)初19開始o(jì)s_n_dsb開始o(jì)s_n_dsb()關(guān)閉所有中斷HA_BOARD_INI()初始化系統(tǒng)時鐘zmain_vdd_check():檢查芯片電壓是否正常zmain_ram_init():初始化堆棧InitBoard(OB_COLD):初始化I/OHalDriverInit():初始化底層驅(qū)動osal_nv_init():初始化flash存儲zmain_ext_addr():初始化節(jié)點MAC地址os_srt_sysos_srt_sysm(執(zhí)行操作系統(tǒng)gIn()初始化一些非易失變量fInt()初始化應(yīng)用框架層os_n_sysm()初始化操作層os_nt_nbe()使能全部中斷InBorOB_RRDY)初始化KYn_dv_nf()顯示設(shè)備信息b)操作系統(tǒng)抽象層實體的執(zhí)行系統(tǒng)初始完成后,就開始執(zhí)行操作系統(tǒng)抽象層的入口程序,之后便由操作系統(tǒng)抽象Osal_start_system(),此函數(shù)是一個死循環(huán),若沒有則程序會跑飛。自這個函數(shù)運行后,程序就不斷地進行輪轉(zhuǎn)查詢的操作,以便保證每個任務(wù)事件發(fā)生時,可以即刻調(diào)用相應(yīng)的事件處理函數(shù)進行任務(wù)的處理。2、無線傳感網(wǎng)絡(luò)的搭建在Z-Stack協(xié)議棧中需要在f8wConfig.cfg文件中來配置建立或者加入網(wǎng)絡(luò)的和的配置,協(xié)議棧會根據(jù)上述文件的ZDAPP_CONFIG_PAN_ID參數(shù)值的不同來選擇設(shè)備是強制建立或加入一個固定的網(wǎng)絡(luò)20過設(shè)置上述文件中的參數(shù)為不同的值來選擇加入16個通信頻道協(xié)議默認(rèn)的頻道。運行協(xié)調(diào)器建立網(wǎng)絡(luò),路由器或終端設(shè)備加入網(wǎng)絡(luò)。Z-Stack協(xié)議棧中,在新建立自定義任務(wù)時,需要加入如下兩個函數(shù):SensorApp_Init()和SensorApp_ProcessEvent()。SensorApp_Init()用來完成自定義任務(wù)的初始化,包括任務(wù)運行所需的變量,網(wǎng)絡(luò)模式以及設(shè)備類型等;SensorApp_ProcessEvent()用來完成自定義任務(wù)事件的處理,在初始化時需要將該事件處理函數(shù)綁定到任務(wù)事件列表,以便在任務(wù)事件發(fā)生時調(diào)用對應(yīng)的事件處理函數(shù)?;谏鲜隹偨Y(jié),課題所設(shè)計的傳感器節(jié)點的初始化和運行流程如下圖4-4程詳細(xì)描述如下:在osal_init_system()中的osalInitTasks()中新建SensorApp_Init(taskID),并在tasksArr[]數(shù)組中添加SensorApp_ProcessEvent進行綁定;通過Osal_start_system()執(zhí)行osal進行任務(wù)輪詢;c)在系統(tǒng)輪詢到自定義任務(wù)時,進入到相應(yīng)的事件處理函數(shù)中進行判斷和處理事件,即SensorApp_ProcessEvent()函數(shù),主要有事件有SYS_EVENT_MSG和,而在SYS_EVENT_MSG事件中主要又分AF_INCOMING_MSG_CMD(收到新的無線數(shù)據(jù))和3、透傳模式為了配置傳感器節(jié)點所設(shè)計的軟件功能,CC2530軟件設(shè)計這塊除了要完成基于Z-Stack勢在于用戶可以直接跳過無線通信模塊組網(wǎng)的過程,只需要考慮應(yīng)用軟件的實現(xiàn),可以很大程序上減少項目開發(fā)的時間,簡化項目應(yīng)用的開發(fā)流程,用戶只需將數(shù)據(jù)通過串口發(fā)送到無線通信模塊里,模塊就會按照預(yù)先配置好的通信參數(shù)發(fā)出,目的接收模塊接收21在在osInsks()函數(shù)中初始化自定義應(yīng)用SnsorApp在Osl_sr_sysm()函數(shù)中開始輪詢?nèi)蝿?wù)進入到SnsorApp_Prossvn(函數(shù)進行事件處理處理接收到的數(shù)據(jù)執(zhí)行一次SND_DAA_VNT任務(wù)打包數(shù)據(jù)且發(fā)送是否輪詢到自定義應(yīng)用SnsorAp?NNN是否收到數(shù)據(jù)? 網(wǎng)絡(luò)狀態(tài)是否發(fā)生變化? 是否需要發(fā)送數(shù)據(jù)?YYY圖4-4自定義應(yīng)用使用流程4.2傳感器節(jié)點軟件設(shè)計網(wǎng)箱養(yǎng)殖所需要監(jiān)測的水環(huán)境參數(shù)有水溫、PH值、氨氮含量、亞硝酸鹽含量、溶解氧含量等,每種傳感器有需要不同的采集和處理方式,傳感器節(jié)點的控制器需要承擔(dān)水環(huán)境參數(shù)采集的這部分,不但如此,節(jié)點控制器還需要保證能跟匯集網(wǎng)關(guān)進行準(zhǔn)確快速的數(shù)據(jù)交互等??梢妭鞲衅鞴?jié)點所要實現(xiàn)的功能還是很多,各部分功能協(xié)調(diào)也是比較復(fù)雜的。因此,課題引入了protothread狀態(tài)機作為運行機制,使節(jié)點具備更好的效率、代碼可讀性等優(yōu)點,同時還引入了FIFO緩存機制,來保證串口通信可靠性。Protothread狀態(tài)機1、Protothread狀態(tài)機簡介事件驅(qū)動模型是一種常見的編程模型,特別是在諸如無線傳感器網(wǎng)絡(luò)這些內(nèi)存受限的嵌入式系統(tǒng)中。與多線程模型相比,事件驅(qū)動模型不需要為每個線程分配??臻g,從TinyOS,22Contiki都是基于事件驅(qū)動模型的。在很多資源受限的嵌入式系統(tǒng)中事件驅(qū)動模型同樣被廣泛使用。然而事件驅(qū)動模型不支持阻塞等待。因此程序員在編寫需要阻塞等待的程序時通常需要使用狀態(tài)機模式去實現(xiàn),同時他們將那些不能由一個事件處理函這些有控制流抽象出來的狀態(tài)機通常沒有具體的含義,它們就像是由程序員憑空創(chuàng)造出來的一樣,會使得基于事件驅(qū)動模型的編程變得困難[41,42]。Protothread是一種新的編程抽象模型,這種模型使得程序員可以使用類線程的模式來別寫基于事件驅(qū)動的程序,而且每個類線程只消耗2字節(jié)的內(nèi)存,很多基于狀態(tài)機模式編寫的復(fù)雜程序可以使用protothread來簡化。在測試的一些程序中,有些的狀態(tài)機可以完全被protothreadprotothread在空間上可以使代碼行數(shù)減少三分之一,在時間上也僅需要付出若干個機器周期的代價。總狀態(tài)機是專為資源有限的系統(tǒng)設(shè)計的線程模型,相比于嵌入式操作系統(tǒng),有無硬件依靠性,可移植性強,資源需求極少,沒有棧但支持阻塞操作等優(yōu)點。同時又有官方提供的庫代碼,代碼精簡易懂[44]。另外,又不得不提Protothread巧妙的阻塞機制:在每個條件判斷前,先將當(dāng)前行號保存到某個變量中,再判斷條件是否成立,若條件成立,則往下運行;若條件不成立,則返回。它的實時性體現(xiàn)在,當(dāng)遇到阻塞時,一個靜態(tài)變量s記錄了當(dāng)前的行號,下次執(zhí)行到此函數(shù)時再從當(dāng)前行號開始執(zhí)行。2、Protothread狀態(tài)機應(yīng)用傳感器節(jié)點軟件功能主要分三部分:傳感器數(shù)據(jù)打包和發(fā)送,遠程控制信息解析和KeilMDK5開發(fā)環(huán)境和STM32F103RC微控制器硬件平臺上開發(fā)的。Protothread狀態(tài)機在傳感器節(jié)點軟件程序中的使用,使得各任務(wù)初始化和任務(wù)執(zhí)行3和2個字節(jié),分別用來存儲其對應(yīng)任務(wù)的狀態(tài),即當(dāng)前行號。在執(zhí)行各任務(wù)之前,先調(diào)用函數(shù)PT_INIT()用來初始化之前定義的任務(wù)變量,之后在while(1)大循環(huán)中調(diào)用函數(shù)task1_thread()、task2_thread()和task3_thread()用來執(zhí)行相應(yīng)的任務(wù)。由下圖4-5中代碼可見,每個任務(wù)都有一個阻塞位置,分別是23==1),程序循環(huán)依次執(zhí)行這三個任務(wù)函數(shù),如果程序運行到上述的阻塞位置時,就判斷其運行條件是否滿足,若不滿足,則阻塞,直接跳出該任務(wù)進入下一個任務(wù),并且當(dāng)下一次再進入該任務(wù)時則直接跳到之前的阻塞位置進行同樣的判斷和處理。為了能滿足系統(tǒng)實時性的要求,各個任務(wù)運行時間之和要小于系統(tǒng)實時響應(yīng)的時間要求。圖4-5傳感器節(jié)點的3個任務(wù)4.2.2簡易FIFO緩存機制CC2530無線模塊進行通信,經(jīng)實驗研究發(fā)現(xiàn),當(dāng)控制器頻繁接收到數(shù)據(jù)時,很容易造成數(shù)據(jù)的丟失或出錯。為解決這一問題,可以選用AL422B緩沖器類的芯片,然而成本會提高,而一般的微控制24FIFO緩存機制是一種先進先出的數(shù)據(jù)緩存機制,所以肯定涉及到兩個過程:數(shù)據(jù)存儲和數(shù)據(jù)讀取[45]。1、數(shù)據(jù)存儲對于數(shù)據(jù)存儲這個過程來說,首先需要在內(nèi)存空間開辟一段固定的空間,課題設(shè)計預(yù)留緩存空間為80數(shù)據(jù)尾一同放入到所開辟的緩存當(dāng)中。這里需要強調(diào)的是這邊數(shù)據(jù)儲存不是在收到一條完整指令后再統(tǒng)一觸發(fā)某個中斷再進行處理的,而是每接收到一個字節(jié)就立即將其放入緩存中。同時,還設(shè)有一個變量止數(shù)組的溢出。2、數(shù)據(jù)讀取對于數(shù)據(jù)讀取這個過程來說,因為還要涉及到指令數(shù)據(jù)解析,所以要進行更多的處理。跟數(shù)據(jù)存儲的一樣,會設(shè)有一個變量(_tail)來記錄讀取的位置。若_head和_tail兩個變量不相等,即非空狀態(tài),則繼續(xù)判斷數(shù)據(jù)頭是否為0XEE,若是則開始依次從緩存空間中讀取數(shù)據(jù),在讀取的過程中監(jiān)測到完整的數(shù)據(jù)尾(0xFF0XFC0xFF0xFF)則判定已讀到一串完整的指令數(shù)據(jù),則提取出這串?dāng)?shù)據(jù)進行解析。上邊若有條件不滿足,則丟棄當(dāng)前所讀取一個字節(jié)的數(shù)據(jù)。整個FIFO讀寫過程如下圖4-6所示。完整的一串指令數(shù)據(jù)提取出來后需要對其進行解析,這可以理解為給指令數(shù)據(jù)中的每個部分取一個名字。課題采用強制賦值給結(jié)構(gòu)體的方法來方便快捷地完成解析這部分功能。前提是要根據(jù)通信協(xié)議規(guī)定的按順序依次建立結(jié)構(gòu)中的變量并確定其數(shù)據(jù)類型,如下圖4-7之后通過結(jié)構(gòu)體變量就可以直接使用每一部分的數(shù)據(jù)。此外,為了使上述的強制轉(zhuǎn)換順利進行,需要通過#pragmapack(n)語句來設(shè)置編譯器字節(jié)對齊方式,若不設(shè)置則按照編譯器默認(rèn)對齊方式,即結(jié)構(gòu)體成員中占空間最大的成員的大小,這會導(dǎo)致強制轉(zhuǎn)換時指令數(shù)據(jù)中的數(shù)據(jù)不能跟結(jié)構(gòu)體中成員對應(yīng)起來,從而影響整個數(shù)據(jù)解析結(jié)果以及后面進一步的應(yīng)用。25FIFO緩存區(qū)數(shù)據(jù)寫入緩存區(qū) 數(shù)據(jù)從緩存區(qū)讀出圖4-6緩存區(qū)讀寫示意圖圖4-7指令數(shù)據(jù)結(jié)構(gòu)體4.3匯集網(wǎng)關(guān)軟件設(shè)計課題在EasyARM-iMX283平臺上進行WinCE6.0嵌入式系統(tǒng)的移植和監(jiān)控軟件的設(shè)計,從而實現(xiàn)匯集網(wǎng)關(guān)的功能。監(jiān)控軟件設(shè)計主要內(nèi)容包括:與無線通信模塊通信接口參數(shù)設(shè)置,與WEB服務(wù)器通信以太網(wǎng)接口參數(shù)設(shè)置,傳感器節(jié)點固件無線遠程更新功能,傳感器節(jié)點執(zhí)行機構(gòu)遠程控制和水環(huán)境參數(shù)轉(zhuǎn)發(fā)等功能。下文將對上述的功能進行展開說明。4.3.1WinCE6.0開發(fā)平臺1、開發(fā)平臺的搭建WinCE6.0系統(tǒng)的應(yīng)用軟件開發(fā)可以完全在PC的搭建,除了PC機及其Windows系統(tǒng)(本系統(tǒng)設(shè)計在XP操作系統(tǒng)下開發(fā))外,還需SP1中文安裝包、ActiveSync軟件和WinCE6.0安裝包及其補丁。開發(fā)平臺構(gòu)建完后,就可以在平臺上構(gòu)建自己的WinCE6.0操作系統(tǒng)和開發(fā)基于WinCE6.0的應(yīng)用程序了[46,47]。262、WinCE6.0系統(tǒng)內(nèi)核的裁剪和下載a)內(nèi)核裁剪課題所需要制作的系統(tǒng)內(nèi)核是裝有WindowsEmbeddedCE6.0和Studio2005的軟件環(huán)境中進行的。一般嵌入式系統(tǒng)的內(nèi)核制作首先需要安裝基于硬件平臺的板級支持包(下文簡稱EasyARM-iMX283內(nèi)核制作前需要安裝基于EasyARM-iMX283硬件平臺的BSP[48]。在VS2005中新建項目,選擇“PlatformBuilderforCE順序下來,選擇在新建項目之前安裝的BSP,選擇默認(rèn)設(shè)備類型模板“PDADevice”和具體設(shè)備類型模板“Mobile要選擇保留FileCache和QuarterVGA不相關(guān)的,達到精簡的目的),選擇網(wǎng)絡(luò)與通信配置(根據(jù)課題應(yīng)用選擇TCP/IPv6和LAN4-8所示是VS2005新建工程目錄。圖4-8VS2005新建工程目錄系統(tǒng)的裁剪主要在上圖4-8所示的工程目錄下進行,根據(jù)課題需要,選擇加入SDHost并且支持USBUHIVE注冊表和RAM、ROMWinCE6.0在便可以編譯生成內(nèi)核鏡像,但為了滿足更多的需要,課題根據(jù)需要加入下面的特性: 加入網(wǎng)絡(luò)應(yīng)用程序,如ping、ipconfig、route等應(yīng)用程序命令; 加入DOS命令符窗口;27加入WindowsXP風(fēng)格的界面; 加入對USBDevice串口類的支持; 加入對中文字體的支持。配置好了編譯參數(shù)后,可以根據(jù)需要選擇生成Debug或Release,課題設(shè)計選擇Release,然后就可以開始編譯內(nèi)核鏡像了,選擇菜單“生成”→“AdvancedBuildCommands”→“CleanWinCE6.0操作系統(tǒng)鏡像。b)內(nèi)核下載生成的內(nèi)核文件需下載到課題所選用的EasyARM-iMX283平臺中才能最終發(fā)揮其功Eboot通過以太網(wǎng)下載WinCE內(nèi)核文件到EasyARM-iMX283平臺上,以下下載流程的闡述是默認(rèn)平臺Eboot已通過USB方式啟動:連接硬件、修改IP。分別使用USB連接線連接到平臺的4-9所示是平臺接線總圖。然后修改開發(fā)主機地址。圖4-9平臺接線總圖設(shè)置EbootWinCE28filenamefordebugger:”為所要下載內(nèi)核文件文件名。使用EbootEboot,將會在超級終端中看到Eboot的操作選項如下圖4-10所示。輸入“d”進入Eboot下載狀態(tài),此時EasyARM-iMX283所示。設(shè)置VS2005EasyARM-iMX283VS2005配置中,選擇當(dāng)前同一網(wǎng)段內(nèi)所有發(fā)出“BOOTME”信息的WinCE設(shè)備標(biāo)識,確定后連接設(shè)備進行內(nèi)核文件下載。選擇最終內(nèi)核下載目的地,在開發(fā)機上進行WinCE前還需要選擇本次具體內(nèi)核下載的目的設(shè)備:0-NandFlash、1-SD/TF卡、2-RAM。課題調(diào)試為了增加調(diào)試速度選擇NandFlash確認(rèn)進行對NandFlash的燒寫操作,完成后確認(rèn)重啟。圖4-10Eboot目錄選項圖Eboot進行等待開發(fā)主機連接狀態(tài)29圖4-12匯集網(wǎng)關(guān)軟件主界面4.3.2應(yīng)用軟件的開發(fā)與設(shè)計匯集網(wǎng)關(guān)所實現(xiàn)的軟件功能有串口通訊設(shè)置、以太網(wǎng)通訊設(shè)置、遠程控制、遠程固件無線更新和數(shù)據(jù)轉(zhuǎn)發(fā)等功能。為了實現(xiàn)課題所需的上述功能,需用到EasyARM-iMX283平臺的如上圖4-12所示。對于串口(UART)通信來說,EasyARM-iMX283平臺已包含有多個是標(biāo)準(zhǔn)的WinCE6.0VS2005中提供的專門用于操作驅(qū)動程序的函數(shù),從而實現(xiàn)WinCE6.0系統(tǒng)與其它外部設(shè)備之間的串口通信。如下圖4-13所示是串口通信設(shè)置界面,由于參數(shù)比較多,在主界面上設(shè)置這些變量將會占用比較多的顯示面積,所以新建一個對話框來進行WinCE6.0系統(tǒng)與無線傳輸模塊的串口通信接口參數(shù)的設(shè)置,主要參數(shù)包括串口號、通信波特率、數(shù)據(jù)位、停止位以及校驗等。圖4-13串口參數(shù)設(shè)置界面30在課題開發(fā)設(shè)計中,要使得所設(shè)計的應(yīng)用軟件與實際所要操作的硬件對應(yīng)起來,首先需要調(diào)用串口驅(qū)動。在此基礎(chǔ)上,課題設(shè)計了串口打開(下文簡稱OpenPort())/關(guān)閉(下文簡稱ClosePort())函數(shù),串口接收線程(CommRecvTread)及接收成功回調(diào)函數(shù)OpenPort()函數(shù)中調(diào)用CreateFile()打開指定的串口,以獲取串口操作句柄;在ClosePort()函數(shù)中釋放該操作句柄。另外在OpenPort()函數(shù)中設(shè)計有SetCommTimeouts()函數(shù),用來設(shè)置串口接收與發(fā)送超時時間,本文設(shè)計中主要用來設(shè)置接收字符間最大時間間隔和讀數(shù)據(jù)總超時常量。創(chuàng)建串口接收線程的目的是為了使得等待串口數(shù)據(jù)任務(wù)跟監(jiān)控軟件主線程并行進行,避免因為串口等待數(shù)據(jù)而影響其他功能的實現(xiàn)。課題設(shè)計中串口數(shù)據(jù)接收通過ReadFile()函數(shù)來完成,之后再通過回調(diào)函數(shù)將接收到的數(shù)據(jù)顯示在界面控件上。串口發(fā)送函數(shù)中主要調(diào)用寫文件函數(shù)WriteFile()將用戶輸入的字符串通過從串口發(fā)送出去。如圖4-14啟充氧泵”按鈕時,軟件將獲取“魚塘號”編輯框中的數(shù)值,進行數(shù)據(jù)打包,通過串口發(fā)送到無線通信模塊,無線通信模塊通過建立的無線傳感網(wǎng)絡(luò)轉(zhuǎn)發(fā)到指定的魚塘,即發(fā)送到指定魚塘所對應(yīng)的傳感器節(jié)點,相應(yīng)傳感器節(jié)點接收到數(shù)據(jù)進行解析,最后進行充氧泵的控制。當(dāng)點擊“開啟所有充氧泵”按鈕時,具體流程同上述控制單個節(jié)點充氧泵流程,不同的是在無線通信模塊進行轉(zhuǎn)發(fā)時,選擇廣播的方式,即將控制指令發(fā)送給所有節(jié)點,從而實現(xiàn)對所有傳感器節(jié)點的充氧泵進行控制。如圖4-14中的(b)圖所示,遠程固件無線更新界面主要有兩種控件組成:按鈕和編輯框。課題選用固件文件類型flash空間,可見選用此種文件類型作為固件文件的文件類型,也使得整個研發(fā)設(shè)計更加的直接和方“更新”和“全部更新”按鈕用來啟動更新操作,整個更需要花費幾分鐘的時間,主要看固件文件的大小。其中遠程固件無線更新的方法是課題重點研究內(nèi)容,將在第五章展開詳細(xì)論述,此處就不再贅述。間兼容的套接字接口,這使得網(wǎng)絡(luò)應(yīng)用程序可以在不同平臺之間進行自由移植;同時系統(tǒng)提供多種網(wǎng)卡驅(qū)動程序接口,支持多種常用的網(wǎng)絡(luò)協(xié)議,開發(fā)人員只要著重于相應(yīng)的平臺主板上還提供了1路的10/100M以太31EasyARM-iMX283平臺的WinCE6.0系統(tǒng)強大的網(wǎng)絡(luò)通信功能,可以方便實現(xiàn)與課題所設(shè)計的WEB服務(wù)器之間的網(wǎng)絡(luò)通信,故用其進行如下所述的界面功能設(shè)計。(a)遠控控制界面(b)遠程更新界面圖4-14監(jiān)控軟件功能界面圖4-15以太網(wǎng)通信接口參數(shù)設(shè)置界面匯集網(wǎng)關(guān)通過以太網(wǎng)接口所要實現(xiàn)的最主要的功能是將節(jié)點以客戶端身份連接到課題所設(shè)計開發(fā)的WEBWEBTCP接口通信參數(shù)設(shè)置界面,主要包括遠程服務(wù)器地址和遠程服務(wù)器端口的設(shè)置,在編輯框里填上所要連接服務(wù)器相應(yīng)的參數(shù)后,點“確定”按鈕就可以客戶端的身份連接到服務(wù)器。客戶端與服務(wù)器建立連接的流程,如下圖4-16所示,TCP通信開始于客戶端主動TCP服務(wù)器的服務(wù)端接收該請求并完成3就可以進行客戶端與服務(wù)器之間的TCP通信,完成數(shù)據(jù)交互。按鈕后,程序會使用函數(shù)WSAStartup()加載6.0TCP32為了不讓主線程持續(xù)等待TCP通信也需要創(chuàng)建一個TCP用recv()函數(shù),發(fā)送數(shù)據(jù)用send()函數(shù)。調(diào)用調(diào)用ossok()關(guān)閉套接字s調(diào)用sok()建立流式套接字返回套接字s調(diào)用onn()建立與遠程服務(wù)器的連接調(diào)用rv()和snd()在套接s接收或發(fā)送數(shù)據(jù)圖4-16TCP客戶端流程圖4.4WEB服務(wù)器的設(shè)計和開發(fā)Web服務(wù)器可以用來存儲并管理超媒體(包括超文本文件、音頻文件、視頻文件等WEB服務(wù)器的WEB界面可滿足實現(xiàn)課題所需要的遠程監(jiān)測和數(shù)據(jù)存儲等功能的要求,而且WEB服務(wù)器有網(wǎng)絡(luò)就可以訪問,可使得監(jiān)控軟件脫離空間和設(shè)備的限制,達到隨時隨地在多種智能終端上進python的Django框架進行WEB下就課題針對WEB服務(wù)器所做研究的一些總結(jié)。Django框架簡介Django項目是一個python定制框架,又是一個基于MVC構(gòu)造的框架,但實際更關(guān)注的是模型、模板和視圖,故又稱為MTV模式[50]。總的來說,Django是一個可以使Web開發(fā)工作愉快并且高效的Web開發(fā)框,是從真實世界的應(yīng)用中成長起來。它主要著重于解決在實際WEB應(yīng)用開發(fā)中所遇到的問題,因為它的開發(fā)者致力于讓開發(fā)人員節(jié)省時間,編寫更加容易維護的程序,同時保證程序運行的效率[51]。33Django開發(fā)環(huán)境搭建1、組件安裝Django本身是純PythonDjango框架首先安裝Python和設(shè)計選擇Python2.6版本,Django1.6.5版本,另外,數(shù)據(jù)庫選擇MySQL5.5數(shù)據(jù)庫,同時安裝MySQLGUI工具用于管理數(shù)據(jù)庫,最后選擇相應(yīng)的Python對MySQL的接口程序包安裝[52,53]。Python安裝完成后,需要在windows系統(tǒng)的CMD命令符窗口中輸入“python”,安裝和測試可選擇在CMD需在CMD命令符窗口依次輸入“python”→“importdjango”→“printdjango是否安裝成功。2、集成開發(fā)環(huán)境的安裝一般來說,完成以上軟件包的安裝足以進行web開發(fā),但為了使得開發(fā)變得方便快捷,課題開發(fā)選擇在PyCharm3.1.3集成開發(fā)環(huán)境上進行的。PyCharm集成開發(fā)環(huán)境是一種基于PythonDjango是后期的代碼功能調(diào)試等,都變得非常方便快捷[54]。整個開發(fā)是在微軟的Windows7系統(tǒng)上進行。4.4.3后臺管理界面開發(fā)對于課題所設(shè)計的WEB服務(wù)器來說,其后臺管理界面是非常重要的一部分。對網(wǎng)頁前端顯示數(shù)據(jù)的調(diào)整,傳感器節(jié)點執(zhí)行機構(gòu)的遠程控制,以及數(shù)據(jù)庫數(shù)據(jù)調(diào)用分析等課題所設(shè)計的功能,都需要有權(quán)限限制,只有有操作權(quán)限的管理者或者分配有權(quán)限的用戶才可以進行操作和管理??梢妼σ粋€完整監(jiān)控系統(tǒng)來說,擁有一個網(wǎng)站后臺管理系統(tǒng)還是很有必要,然而如果全新開發(fā)一套高性能的網(wǎng)站后臺管理系統(tǒng),肯定需要花費大量Django作為開發(fā)框架的原因之一,因為在后臺管理功能在Django中本身就已為開發(fā)者設(shè)計好了。在課題設(shè)計中,研究發(fā)現(xiàn)實際只需按照以下幾點激活即可完成管理系統(tǒng)搭建:在settings.py文件中的INSTALLED_APPS中添加“django.contrib.admin”、34MIDDLEWARE_CLASSES中添加“mon.CommonMiddleware”、“django.contrib.sessions.middleware.SessionMiddleware”和“django.contrib.auth.middleware.AuthenticationMiddleware”,在url.py文件中的urlpatterns中添加“(r'^admin/',include(admin.site.urls))”,最后通過PyCharm編譯環(huán)境的菜單欄中“Tools”下的“Runmanage.pytask...”運行“syncdb”指令,即可生成管理界面使用的額外數(shù)據(jù)表,同時通過編譯引導(dǎo)創(chuàng)建一個超級用戶用來登陸管理平臺。圖4-17后臺登陸后的界面另外,課題為了使后面管理平臺界面更加友好,課題還研究了grappelli包的工作原理,并應(yīng)用其來完成美化后臺管理界面的工作。在添加完grappelli包后,同樣需要在settings.py文件的INSTALLED_APPS中進行設(shè)置,此時需要添加“grappelli”語句,而且這里需要再三強調(diào)的是這條代碼必須位于“django.contrib.admin”語句之前,再在settings.py文件中添加靜態(tài)文件路徑“ADMIN_MEDIA_PREFIX=STATIC_URL+"grappurl.py文件中的urlpatterns語句,最后調(diào)用開發(fā)環(huán)境的指令“Runmanage.pytask...”和“collectstatic”指令來收集所需要的靜態(tài)文件,即可完成對后臺管理系統(tǒng)界面的美化。上圖4-17是應(yīng)用grappelli美化后后臺登陸后的界面,顯示了各個網(wǎng)箱所有的傳感器類型。354.4.4網(wǎng)箱數(shù)據(jù)上傳和處理在課題設(shè)計的系統(tǒng)中,用戶登陸到管理界面之后,就可以通過管理界面來查看數(shù)據(jù)庫中所保存的各個網(wǎng)箱水環(huán)境的狀態(tài)數(shù)據(jù)。圖4-18所示是用戶所看到是匯聚節(jié)點推送上來保存在web服務(wù)器的數(shù)據(jù)庫中的部分?jǐn)?shù)據(jù)。課題設(shè)計是采用HTTP/1.1協(xié)議中的POST請求方法來上傳傳感器節(jié)點所采集的數(shù)據(jù)到web服務(wù)器的數(shù)據(jù)庫。HTTP/1.1協(xié)議中的POST提交數(shù)據(jù)方式根據(jù)content_type又可分四種方式,它們分別是application/x-www-form-urlencoded、multipart/form-data、application/json和格式能夠更好地體現(xiàn)數(shù)據(jù)的層次結(jié)構(gòu),而且Python本身就有用來進行JSON編碼和譯碼的模塊simplejson,故課題決定選擇application/json方式來上傳傳感器數(shù)據(jù)[55]。下面來介紹課題研究中的一些技術(shù)細(xì)節(jié)。匯集網(wǎng)關(guān)通過Internet網(wǎng)絡(luò)用HTTP/1.1協(xié)議中的POST方法來提交數(shù)據(jù),在提交數(shù)據(jù)之前,匯集網(wǎng)關(guān)首先會連接到web服務(wù)器,然后通過以太網(wǎng)口發(fā)送以上POST包即可上傳數(shù)據(jù),具體實現(xiàn)代碼如下所示。Content-Length的數(shù)值一定要等于提交數(shù)據(jù)長度。POST/api/V1/gateway/UpdateSensors/1/HTTP/1.1Content-Type:application/jsonContent-Length:32{"sensorname":"T1","value":"20"}當(dāng)課題所設(shè)計的web服務(wù)器接收到通過POST方法提交的傳感器節(jié)點數(shù)據(jù)時,即可用以下代碼進行傳感器名稱以及對應(yīng)數(shù)值的讀取,具體實現(xiàn)代碼如下所示。req=json.loads(request.body)sensorname=req['

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論