亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于WebSocket協(xié)議的智能溫室測控系統(tǒng)設(shè)計與實(shí)現(xiàn)

        2017-03-31 15:44:06盛平丁波
        軟件導(dǎo)刊 2016年8期
        關(guān)鍵詞:物聯(lián)網(wǎng)嵌入式

        盛平+丁波

        摘 要:針對智能溫室發(fā)展現(xiàn)狀,引入了跨平臺、易擴(kuò)展的思想,將WebSocket通信協(xié)議應(yīng)用到嵌入式設(shè)備通信中,結(jié)合嵌入式、Zigbee無線傳輸、傳感器采集等技術(shù),設(shè)計了一套基于WebSocket協(xié)議的智能溫室測控系統(tǒng)。一方面能夠簡化系統(tǒng)開發(fā)、克服傳統(tǒng)B/S架構(gòu)不能提供長連接的TCP雙向通信和C/S架構(gòu)開發(fā)周期長、無法跨平臺等缺點(diǎn);另一方面,用戶可以實(shí)時查看溫室環(huán)境、設(shè)備運(yùn)行狀況以及實(shí)時控制情況等,并且能夠獲得實(shí)時溫室預(yù)警等推送。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)運(yùn)行穩(wěn)定、使用便捷,很好地滿足了溫室實(shí)時測控的功能需求。

        關(guān)鍵詞關(guān)鍵詞:智能溫室;物聯(lián)網(wǎng);WebSocket;嵌入式;實(shí)時測控

        DOIDOI:10.11907/rjdk.161620

        中圖分類號:TP319

        文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2016)008-0065-04

        0 引言

        隨著物聯(lián)網(wǎng)技術(shù)的日益普及,各式物聯(lián)網(wǎng)產(chǎn)品應(yīng)用于衣食住行等各個領(lǐng)域,為人們的日常生活提供了極大便利。同樣,在智能農(nóng)業(yè)領(lǐng)域也廣泛地應(yīng)用了物聯(lián)網(wǎng)技術(shù),這些應(yīng)用使農(nóng)業(yè)種植變得更加簡便、高效和科學(xué)。但目前這些應(yīng)用系統(tǒng)的整體通信架構(gòu)一般是基于C/S架構(gòu)或傳統(tǒng)B/S架構(gòu)設(shè)計的,基于C/S架構(gòu)的應(yīng)用系統(tǒng)具有系統(tǒng)設(shè)計復(fù)雜、開發(fā)周期長、無法跨平臺等缺陷;基于傳統(tǒng)B/S架構(gòu)的應(yīng)用系統(tǒng)雖然能夠跨平臺,但它是基于HTTP協(xié)議進(jìn)行通信的,并不能提供一個長連接的TCP雙向通信機(jī)制。而WebSocket作為HTML5的一種新協(xié)議日趨標(biāo)準(zhǔn)化,它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信,在生活中得到了廣泛應(yīng)用,如新浪微博的評論、私信通知和騰訊的WebQQ等。本文將該協(xié)議應(yīng)用到嵌入式應(yīng)用系統(tǒng)中,使嵌入式設(shè)備與服務(wù)器之間能夠基于WebSocket協(xié)議進(jìn)行通信,以克服傳統(tǒng)通信架構(gòu)的缺陷[1]。

        1 系統(tǒng)整體設(shè)計

        本文設(shè)計了一個基于WebSocket協(xié)議的智能溫室控制系統(tǒng),該智能溫室測控系統(tǒng)通過綜合管理系統(tǒng)實(shí)現(xiàn)溫室大棚的自動監(jiān)測,其中包括溫室內(nèi)溫濕度、光照度、溫室通風(fēng)換氣系統(tǒng)等。如圖1所示,該系統(tǒng)總體分為環(huán)境感知層、物理控制層和應(yīng)用層3部分。

        (1) 在環(huán)境感知層,依靠一系列傳感器精準(zhǔn)采集溫室內(nèi)部和室外的環(huán)境數(shù)據(jù),通過Zigbee網(wǎng)絡(luò)傳輸給Zigbee中繼節(jié)點(diǎn),中繼節(jié)點(diǎn)再通過RS232/485接口傳輸給嵌入式計算機(jī)。

        (2) 在物理控制層,光耦繼電器通過RS232/485接口與嵌入式計算機(jī)連接,接收基于MODEBUS-RTU協(xié)議的控制指令,控制溫室設(shè)備控制柜內(nèi)的交流接觸器,進(jìn)而控制各個溫室設(shè)備(如濕簾風(fēng)機(jī)、水泵、遮陽簾、環(huán)流風(fēng)機(jī)等)。

        (3) 在應(yīng)用層,主要分為嵌入式端應(yīng)用模塊、Web管理系統(tǒng)和服務(wù)器端應(yīng)用模塊。嵌入式端應(yīng)用模塊實(shí)現(xiàn)了基于WebSocket協(xié)議與服務(wù)器的通信、解析控制協(xié)議、上傳環(huán)境數(shù)據(jù)、自動運(yùn)行等功能;Web管理系統(tǒng)實(shí)現(xiàn)了用戶通過瀏覽器實(shí)時管理溫室的功能;服務(wù)器端應(yīng)用模塊實(shí)現(xiàn)了WebSocket客戶端的連接請求、客戶端之間的通信以及數(shù)據(jù)的解析、存儲等。

        通過以上幾部分的相互協(xié)作實(shí)現(xiàn)了一個完整的智能溫室測控系統(tǒng),用戶可以通過手機(jī)、PC、Pad等設(shè)備的Web瀏覽器實(shí)時查看溫室的環(huán)境數(shù)據(jù)、設(shè)備運(yùn)行狀況和設(shè)置溫室運(yùn)行參數(shù)等。

        2 系統(tǒng)感知層

        系統(tǒng)感知層是整個系統(tǒng)的基礎(chǔ),其作用相當(dāng)于人的五官,主要包括兩部分:溫室內(nèi)部三合一傳感器和室外氣象站。系統(tǒng)感知層可通過兩部分的傳感器獲取更加精準(zhǔn)的溫室內(nèi)外環(huán)境狀況,以達(dá)到更有效地控制操作和進(jìn)行溫室種植研究的目的。

        另外,從簡化安裝、便于維護(hù)等方面考慮,本系統(tǒng)采用Zigbee無線技術(shù),將采集的環(huán)境數(shù)據(jù)集中傳輸?shù)角度胧接嬎銠C(jī)中。

        2.1 傳感器采集模塊

        該系統(tǒng)中的傳感器模塊[2,3]統(tǒng)一采用MODBUS-RTU通信協(xié)議[4],設(shè)備操作和回復(fù)都為16進(jìn)制數(shù)據(jù),默認(rèn)通信波特率為:9600,8,n,1,基本通信格式為:

        【設(shè)備地址】【功能碼】【起始地址:2字節(jié)】【數(shù)據(jù)長度:2字節(jié)】【CRC16校驗(yàn)】

        傳感器讀取、解析和發(fā)送的實(shí)現(xiàn)流程如圖2所示。首先,創(chuàng)建一個線程,打開指定串口(傳感器通過485網(wǎng)絡(luò)總線形式連接到串口)并監(jiān)聽該串口,程序每隔60秒發(fā)送傳感器查詢指令,對監(jiān)聽串口接收的傳感器反饋數(shù)據(jù)進(jìn)行數(shù)據(jù)解析;接下來判斷解析數(shù)據(jù)是否正常,如果不正常則丟棄,如果正常則存儲下來進(jìn)行CRC校驗(yàn);最后將CRC校驗(yàn)[5]后的數(shù)據(jù)發(fā)送到LED顯示器上進(jìn)行顯示。具體代碼實(shí)現(xiàn)如下:

        int pthread_create(&threadSensor,NULL,WriteSensor,NULL); //創(chuàng)建線程,并綁定傳感器讀取函數(shù)

        void *WriteSensor(); //傳感器讀取函數(shù),間隔60秒查詢傳感器

        int optOpen(int fd,int port); //打開指定串口

        int optSet(int fd,int nSpeed,int nBits,char nEvent,int nStop); //設(shè)置串口的相應(yīng)參數(shù),如串口文件描述符、串口波特率、數(shù)據(jù)流控制、數(shù)據(jù)位、停止位和校驗(yàn)類型等

        int SelectRead(int fd,char rev[50],int length); //利用I/O select模型進(jìn)行串口讀取,將接收到的數(shù)據(jù)進(jìn)行解析,判斷數(shù)據(jù)是否正常[6]

        unsigned short CRC16(unsigned char *pushMsg,unsigned short usDataLen); //根據(jù)CRC16校驗(yàn)算法進(jìn)行CRC校驗(yàn)

        2.2 Zigbee通信模塊

        Zigbee節(jié)點(diǎn)數(shù)據(jù)采集系統(tǒng)主要由兩部分組成[7,8],分別為數(shù)據(jù)中心和數(shù)據(jù)采集設(shè)備。其數(shù)據(jù)中心為中心主站,連接用戶PC或嵌入式系統(tǒng),用于接收數(shù)據(jù);數(shù)據(jù)采集設(shè)備用于數(shù)據(jù)采集。如圖3所示,該系統(tǒng)中的Zigbee節(jié)點(diǎn)采用星型網(wǎng)組網(wǎng)形式,其數(shù)據(jù)通訊流程為:電腦(或嵌入式系統(tǒng))發(fā)送IO控制命令→中心主站→中繼路由→目標(biāo)采集設(shè)備→IO狀態(tài)響應(yīng)→中繼路由→中心主站→電腦(或嵌入式系統(tǒng))。

        3 系統(tǒng)控制層

        控制層模塊主要使用16路無源光耦繼電器,通過RS232/485串口與嵌入式計算機(jī)進(jìn)行通信。通信協(xié)議是標(biāo)準(zhǔn)的MODBUS-RTU協(xié)議。該繼電器工作模式為本機(jī)非鎖聯(lián)動模式,在該模式下,輸入光耦與繼電器直接聯(lián)動,即:光耦輸入信號生效→對應(yīng)繼電器吸合;光耦輸入信號取消→對應(yīng)繼電器斷開。通過該模式,確保了溫室設(shè)備的準(zhǔn)確運(yùn)行,并能獲取設(shè)備的實(shí)時運(yùn)行狀況。

        4 系統(tǒng)應(yīng)用層

        該系統(tǒng)軟件模塊主要分為3部分:嵌入式應(yīng)用模塊、Web管理系統(tǒng)和服務(wù)器端應(yīng)用模塊。

        4.1 嵌入式應(yīng)用模塊

        嵌入式應(yīng)用模塊主要實(shí)現(xiàn)基于WebSocket協(xié)議建立通信、指令解析和數(shù)據(jù)封裝、自動運(yùn)行等功能,如圖4所示。

        為了實(shí)現(xiàn)嵌入式客戶端與服務(wù)器進(jìn)行WebSocket通信,該系統(tǒng)引用了開源項(xiàng)目libwebsockets。libwebsockets是一個輕量級的純C庫建成的項(xiàng)目。通過libwebsockets提供的API與服務(wù)器進(jìn)行通信,并完成對接收數(shù)據(jù)的解析和上傳數(shù)據(jù)的封裝,具體實(shí)現(xiàn)代碼如下:

        struct lws* lws_client_connnect_via_info(struct lws_client_connect_info *i)

        //通過該函數(shù)創(chuàng)建一個到目的服務(wù)器的連接,形參i是指向結(jié)構(gòu)體lws_client_connect_info的指針

        callbackRecv(struct lws *wsi, enum lws_callback_reasons reason,void *user,void *in,size_t len); //通過自定義的回調(diào)函數(shù)接收來自服務(wù)器的消息

        4.2 Web管理系統(tǒng)

        由于本系統(tǒng)需要通過Web瀏覽器查看溫室的實(shí)時運(yùn)行狀況,比如當(dāng)前的光、溫、濕等環(huán)境數(shù)據(jù)、溫室內(nèi)設(shè)備的運(yùn)轉(zhuǎn)情況,并控制溫室內(nèi)相關(guān)設(shè)備等,對于該功能模塊的實(shí)現(xiàn),系統(tǒng)采用JavaScript[9]提供的WebSocket API完成與服務(wù)器的實(shí)時通信。首次訪問該視圖時觸發(fā)JavaScript的onload函數(shù),判斷當(dāng)前瀏覽器是否支持WebSocket協(xié)議并創(chuàng)建WebSocket對象;當(dāng)WebSocket連接上后觸發(fā)調(diào)用onopen事件處理程序,從Seesion中獲取用戶名等信息并發(fā)送到WebSocket服務(wù)器進(jìn)行注冊;接下來通過方法send和事件處理程序onmessage即可實(shí)現(xiàn)[10]雙通道通信。具體代碼實(shí)現(xiàn)如下:

        var ws=new WebSocket(“ws://xxx.xxx.xxx.xxx:9001”); //創(chuàng)建一個WebSocket實(shí)例

        ws.onpen=function(evt){ ws.send(); }; //為該實(shí)例綁定onopen事件

        ws.onerror = function(evt) { }; //為該實(shí)例綁定onerror事件

        ws.onmessage = function(evt) { }; //為該實(shí)例綁定onmessage事件,處理數(shù)據(jù)接收

        ws.onclose = function(evt) { }; //當(dāng)瀏覽器接收到服務(wù)器端發(fā)送的關(guān)閉連接請求時,觸發(fā)onclose事件

        4.3 服務(wù)器端應(yīng)用模塊

        服務(wù)器端應(yīng)用模塊是基于.NET4.5 Freamwork[11,12],并引用SuperWebSocket開源框架實(shí)現(xiàn)的,主要功能是接收WebSocket客戶端的連接,處理WebSocket客戶端之間的通信以及相關(guān)數(shù)據(jù)的存儲,用于建立WebSocket監(jiān)聽端口,以及客戶端連接、斷開、信息接收等觸發(fā)事件,具體實(shí)現(xiàn)如下:

        protected override void Onstart(string[]args)

        {

        var ip=ConfigurationManager.AppSettings[“APWebSocketIP”];

        var port=ConfigurationManager.AppSettings[“APWebSocketPort”];

        server=new WebSocket(); //創(chuàng)建WebSocket對象

        if(!server.SetUp(ip,int.Parse(port))) //設(shè)置監(jiān)聽端口,并啟動服務(wù)器應(yīng)用

        return;

        server.NewSessionConnected+=server_NewSessionConnected; //新的會話連接

        server.SessionClosed+=server_SessionClosed; //會話斷開

        server.NewMessageReceived+=server_NewMessageReceived; //接收到新信息

        }

        4.4 系統(tǒng)測試

        本系統(tǒng)測試主要是通過手機(jī)/Pad/PC瀏覽器查看溫室的實(shí)時運(yùn)行狀況,以及能否正常控制溫室設(shè)備并設(shè)置設(shè)備溫室運(yùn)行參數(shù)等。如圖5所示,通過手機(jī)瀏覽器登錄溫室Web管理系統(tǒng)進(jìn)行實(shí)時控制和查看。經(jīng)測試,本系統(tǒng)功能完備、運(yùn)行穩(wěn)定。

        5 結(jié)語

        本文通過分析傳統(tǒng)B/S和C/S應(yīng)用架構(gòu)的不足,并詳細(xì)研究了WebSocket協(xié)議的特性,設(shè)計了一套基于WebSocket協(xié)議的智能溫室測控系統(tǒng)。該系統(tǒng)將WebSocket協(xié)議應(yīng)用到嵌入式開發(fā)中,實(shí)現(xiàn)了嵌入式設(shè)備與服務(wù)器的實(shí)時通信。用戶只需利用App/PC/Pad等設(shè)備的Web瀏覽器即能實(shí)時查看溫室設(shè)備狀況、控制溫室設(shè)備運(yùn)行并設(shè)定運(yùn)行參數(shù)等,達(dá)到了很好的跨平臺運(yùn)行效果,具有較高的應(yīng)用參考價值。

        參考文獻(xiàn):

        [1]李代立,陳榕.WebSocket在Web實(shí)時通信領(lǐng)域的研究[J].電腦知識與技術(shù),2010(10):7923-7925,7935.

        [2]趙秀珍,王乃釗,毛文華.光照度、空氣溫/濕度傳感器的研究和實(shí)驗(yàn)[J].中國儀器儀表,2002(1):29-31,36.

        [3]廖澤鑫.溫度傳感器的設(shè)計與研究[D].上海:復(fù)旦大學(xué),2012.

        [4]舒凱.基于MODBUS-RTU協(xié)議的PLC多路數(shù)據(jù)采集系統(tǒng)[J].水電自動化與大壩監(jiān)測,2008(2):66-69.

        [5]常曉明,潘衛(wèi)華,王建東.CRC校驗(yàn)及其軟件實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,1995(6):14-23.

        [6]陳文武.分布式鎖技術(shù)研究[D].廣州:華南理工大學(xué),2013.

        [7]王朝霞.ZigBee無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)硬件與組網(wǎng)協(xié)議設(shè)計[D].呼和浩特:內(nèi)蒙古大學(xué),2011.

        [8]穆嘉松.基于節(jié)點(diǎn)移動性的ZigBee網(wǎng)絡(luò)自適應(yīng)路由策略研究[D].天津:天津大學(xué),2012.

        [9]鄭強(qiáng).Web服務(wù)器推送技術(shù)的設(shè)計與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2013.

        [10]楊小嬌.輕量級高并發(fā)Web服務(wù)器的研究與實(shí)現(xiàn)[D].南京:南京郵電大學(xué),2014.

        [11]史建江,李世銀,黃興,等.基于ASP.NET的信息管理系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].微計算機(jī)信息,2008(6):32-33,54.

        [12]余建華,蔡瑞英,方壽海.使用C#中線程同步、事件及異步委托機(jī)制實(shí)現(xiàn)定單模式[J].計算機(jī)應(yīng)用與軟件,2006(7):142-144.

        (責(zé)任編輯:黃 ?。?

        猜你喜歡
        物聯(lián)網(wǎng)嵌入式
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運(yùn)輸管理系統(tǒng)設(shè)計與應(yīng)用
        基于高職院校物聯(lián)網(wǎng)技術(shù)應(yīng)用人才培養(yǎng)的思考分析
        基于LABVIEW的溫室管理系統(tǒng)的研究與設(shè)計
        論智能油田的發(fā)展趨勢及必要性
        中國或成“物聯(lián)網(wǎng)”領(lǐng)軍者
        Altera加入嵌入式視覺聯(lián)盟
        少妇被躁爽到高潮无码文| 日本师生三片在线观看| 校园春色综合久久精品中文字幕| 日本熟妇hdsex视频| 亚洲av成本人无码网站| 亚洲黄片久久| 91久久精品一区二区| 人人做人人爽人人爱| 亚洲熟伦熟女新五十路熟妇| 日韩在线精品在线观看| 午夜一区二区三区福利视频| 婷婷四虎东京热无码群交双飞视频 | 国产亚洲精品aaaa片小说| 精品无码av不卡一区二区三区| 免费av在线视频播放| 在线观看一级黄片天堂| 国产av无码专区亚洲awww| 亚洲色成人网一二三区| 一本之道加勒比在线观看| 无套内谢孕妇毛片免费看| 日本japanese少妇高清| 日产精品一区二区三区| 久久精品视频日本免费| 国产熟妇与子伦hd| 久久久精品波多野结衣| 亚洲AV无码一区二区水蜜桃| 国内免费自拍9偷1拍| 又色又爽又高潮免费视频国产| 亚洲欧洲高潮| 久草久热这里只有精品| 日韩精品在线免费视频| 欧美大肥婆大肥bbbbb| 91精品91| 男女啪啪在线视频网站| 麻豆tv入口在线看| 亚洲日本三级| 亚洲av男人免费久久| 成人艳情一二三区| 少妇spa推油被扣高潮| 亚洲精品午夜精品国产| 日韩中文字幕在线观看一区|