• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      《無線傳感器網(wǎng)絡》項目式實驗教學改革與實踐

      2019-11-06 07:06:46趙翠芹馮太琴
      軟件導刊(教育技術) 2019年9期
      關鍵詞:無線傳感器網(wǎng)絡溫濕度串口

      趙翠芹,馮太琴

      (河池學院 計算機與信息工程學院,廣西 宜州 546300)

      0 引言

      《無線傳感器網(wǎng)絡》(Wireless Sensor Networks,WSN)是物聯(lián)網(wǎng)專業(yè)的核心課程,是一門理論豐富、實踐性很強的課程[1]。WSN的理論部分需要學生熟練掌握WSN的拓撲結構、MAC協(xié)議、差錯控制、網(wǎng)絡層路由協(xié)議、信源信道編解碼、網(wǎng)絡管理、同步與定位等技術[2]。實驗部分仿真軟件有OPNET、TOSSIM、OMNet++與NS等。隨著開源、半開源的WSN操作系統(tǒng)的出現(xiàn),硬件方面也出現(xiàn)了具有相應無線功能的模塊,比如TelosB、MicaZ與Imote等平臺[1]。有了這些硬件模塊之后,WSN就能利用各類硬件平臺完成感知數(shù)據(jù)的實時采集、檢測與傳輸。節(jié)點能以無線多跳路由、自組網(wǎng)的模式將數(shù)據(jù)傳送給終端用戶[3]。WSN越來越廣泛地應用在農業(yè)、醫(yī)學、家具與商業(yè)樓宇自動化等方面。因此,WSN是一門實踐性很強的課程[4-5]。

      河池學院物聯(lián)網(wǎng)專業(yè)尤其重視WSN實驗課程,不惜重金打造了WSN實驗室。該實驗室采購的CC2530試驗箱由廣州飛瑞敖、桂林華志與北京北科融創(chuàng)提供。除了CC2530,還有桂林華智的CC2420實驗床。兩種平臺的開發(fā)環(huán)境與所用語言不同,內容也特別繁雜。CC2530開發(fā)環(huán)境是在嵌入式IAR軟件下進行開發(fā),在ZStack-CC2530-2.5.1a協(xié)議棧上編寫C語言程序源碼。在CC2530平臺協(xié)議棧基礎上,學生需要掌握以下幾個實驗:簡單無線點燈實驗、點播通信實驗、廣播通信實驗、PC串口通信實驗、傳感器數(shù)據(jù)實驗、無線數(shù)據(jù)包抓取實驗等[3]。CC2420結合MSP430單片機進行開發(fā),開發(fā)環(huán)境是TinyOS微操作系統(tǒng),開發(fā)語言是nesC語言。在CC2420平臺中,需要掌握接口、組件、模塊、配件、程序運行模型等nesC語言編程基礎與相應的應用開發(fā)。

      該課程理論與實驗總學時只有64課時,為將所有設備充分利用,要求在WSN這門課中教授理論與這兩種平臺的驅動開發(fā),內容特別多且繁雜。為了讓學生能在有限的學時內把握這兩種平臺的學習內容,教學改革迫在眉睫。為深入應用WSN技術,提出以項目驅動教學方法將大部分課程理論知識與實踐教學串聯(lián)起來,以點帶面,提升學生的軟硬件操作能力。旨在讓學生深入利用WSN關鍵技術,夯實WSN應用系統(tǒng)基礎,提升學生的軟硬件操作能力。

      1 WSN課程存在問題

      物聯(lián)網(wǎng)工程專業(yè)是新工科專業(yè)。作為物聯(lián)網(wǎng)的主干課程,WSN知識包括了計算機網(wǎng)絡、通信與數(shù)據(jù)采集處理等技術。隨著WSN技術應用的發(fā)展,需要掌握的知識越來越多,這無疑對教師與學生都提出了更高的要求。河池學院從2014年開始招生,在該專業(yè)的教學過程中,前期基礎比較差,師資力量匱乏。該門課教師需要具備扎實的專業(yè)基礎知識與過硬的操作技能,需要長時間的積淀與不斷的充電。因二本與三本合并之后,學生的認知能力與接受能力大打折扣,整體素質有所下降。加上課程內容難度較高,即便在課堂上采用雨課堂、微助教、多媒體等方式結合教學,學生對課程內容也難以消化吸收[3],整體參與程度與積極性不高。

      為提升學生的自主能動性,豐富課程教學內容,提升課程教學質量,急需對WSN課程進行實驗教學改革,基于TinyOS-2.1.2系統(tǒng)平臺,巧妙設計了與實驗內容相呼應的項目。采用nesC語言在Telosb節(jié)點上進行開發(fā)。利用TinyOS系統(tǒng)提供的傳感器接口驅動、BaseStation與BlinkToRadio項目,開發(fā)了一個采集溫濕度傳感器與光敏傳感器數(shù)據(jù)的系統(tǒng),并將數(shù)據(jù)通過串口發(fā)送到PC機。在PC機端Visual Studio 2017軟件環(huán)境下,采用C#語言制作了一個展示采集數(shù)據(jù)的界面,用圖形化的方式展示給學生。將零散的知識點串聯(lián)起來,構造綜合性的項目式教學,升華WSN實驗課程的教學效果,激發(fā)學生的學習興趣,提升學生的專業(yè)能力與實際操作水平[6]。

      2 項目設計與教學案例

      下面重點介紹將項目式驅動教學法引入WSN實驗教學中,巧妙設計的光敏傳感器與溫濕度傳感器數(shù)據(jù)采集系統(tǒng)項目。

      2.1 硬件平臺

      實驗硬件平臺采用Telosb節(jié)點,軟件系統(tǒng)采用TinyOS-2.1.2系統(tǒng),開發(fā)語言采用nesC語言。Telosb節(jié)點硬件平臺主要是由JTAG接口、USB處理器、USB接口、USB發(fā)送指示燈、用戶按鈕、復位按鈕、光敏傳感器、數(shù)字溫濕度傳感器SMA天線接口、MSP430單片機與CC2420無線收發(fā)模塊組成。Telosb節(jié)點硬件實物如圖1所示。

      圖1 Telosb硬件節(jié)點

      2.2 驅動軟件

      TinyOS系統(tǒng)提供了很多項目實例,其中就包括比較常用的BaseStation項目與BlinkToRadio項目。該項目建立在BaseStation項目與BlinkToRadio項目之上。

      BlinkToRadio項目可以看作是一個終端節(jié)點,主要實現(xiàn)無線收發(fā)與傳感器數(shù)據(jù)獲取功能。BlinkToRadio有頭文件BlinkToRadio.h、配件文件BlinkToRadioAppC.nc、模塊文件BlinkToRadioC.nc與Makefile 4個文件;所用到的組件有MainC、LedsC、BlinkToRadioC、TimerMilliC()、ActiveMessageC與AMSenderC;所用到的接口有Boot、Leds、Timer〈TMilli〉、Packet、AMPacket、AMSend、Receive與SplitControl。BlinkToRadio.h頭文件中定義無線收發(fā)的消息結構體BlinkToRadioMsg。BlinkToRadio項目實現(xiàn)流程為:①在Boot接口下的booted()方法中開啟無線控制功能;②如果無線收發(fā)功能成功開啟,則啟動定時器功能,否則重新開啟無線控制功能;③如果信道空閑,則調用Packet接口的getPayload函數(shù)將結構體btrpkt指針指向數(shù)據(jù)包的有效數(shù)據(jù)區(qū),然后初始化結構體btrpkt,最后通過AMSend.send函數(shù)以廣播方式發(fā)送消息包;④發(fā)送完成后會觸發(fā)AMSend.sendDone事件;⑤節(jié)點收到無線消息時,會觸發(fā)Receive.receive事件,在該事件中會判斷消息長度是否為sizeof(BlinkToRadioMsg),如果是,直接用btrpkt指向有效載荷區(qū),通過btrpkt讀出消息中的內容。

      基站BaseStation實現(xiàn)了信號轉發(fā)功能,將接收信息通過串口發(fā)送給計算機,也可以將收到的信息由計算機通過串口發(fā)送給節(jié)點廣播給其它節(jié)點。在BaseStation項目中,圖1中的3個指示燈改變標識相應的功能,Led0閃爍表示節(jié)點收發(fā)無線消息;Led1閃爍表示節(jié)點發(fā)送消息到串口;Led2閃爍表示數(shù)據(jù)包丟包。

      TinyOS系統(tǒng)提供了光敏傳感器與溫濕度傳感器的驅動代碼與相應的接口程序。光傳感器的驅動組組建為HamamatsuS1087ParC.nc,溫濕度傳感器的驅動組件為SensirionSht11C.nc。研究相應的驅動代碼之后,可以利用tinyos-2.1.2提供的BlinkToRadioAppC項目實現(xiàn)光敏傳感器與溫濕度傳感器數(shù)據(jù)的采集、處理與傳輸工作,具體步驟如下:

      (1)在BlinkToRadioAppC頂層配件中添加溫濕度傳感器與光敏傳感器組件,并綁定相應的接口,代碼如下:

      components new SensirionSht11C();

      BlinkToRadioC.readTemp->SensirionSht11C.Temperature;

      BlinkToRadioC.readHumidity->SensirionSht11C.Humidity;

      components new HamamatsuS1087ParC();

      BlinkToRadioC.Read->HamamatsuS1087ParC;

      (2)在BlinkToRadio.h中的消息結構體BlinkToRadioMsg中添加類型為nx_uint16_t的3個data1,data2與data3變量,分別對應于光敏數(shù)據(jù)值、濕度與溫度值。

      (3)在BlinkToRadioC模塊中添加讀取傳感器數(shù)據(jù)的接口Read〈uint16_t〉;為了拿到數(shù)據(jù),在BlinkToRadioC.nc文件的implementation部分添加uint16_t類型的hum_data,temp_data與light 3個變量,這3個變量分別用于保存濕度、溫度與光敏值;為了把數(shù)據(jù)放到消息結構體中進行無線收發(fā),需要在定時器實現(xiàn)部分添加代碼:btrpkt->data1=light;btrpkt->data2=hum_data;btrpkt->data3=temp_data;這樣就可把獲取的傳感器數(shù)值與無線收發(fā)消息結構體結合起來;在AMSend.sendDone事件里添加接口:call readTemp.read();call readHumidity.read();call Read.read();并添加相應的readTemp.readDone、readHumidity.readDone與Read.readDone,以便讀取數(shù)據(jù)。

      為了能在Linux平臺下查看BlinkToRadio終端節(jié)點,項目中串口添加打印功能。在Makefile文件中添加打印路徑:PFLAGS+=-IMYM(TOSDIR)/lib/printf;在BlinkToRadioAppC頂層配件中添加printf.h頭文件、PrintfC與SerialStartC組件。在BlinkToRadioC中添加printf()與printfflush()打印函數(shù)。

      2.3 實驗結果

      為了在Basestation下查看終端節(jié)點傳輸過來的數(shù)據(jù),編寫一個perl腳本,腳本命名為test.pl,并保存在Basestation項目下。

      編譯下載程序:使用make telosb install,1 bsl,/dev/ttyUSB0命令把BlinkToRadio項目下載到節(jié)點1上,同樣的方法把Basestation項目下載到節(jié)點2上。

      在BlinkToRadio節(jié)點下,使用java net.tinyos.tools.PrintfClient-comm serial@/dev/ttyUSB1:telosb命令打印該節(jié)點采集到的數(shù)據(jù)值,將該節(jié)點采集到的數(shù)據(jù)實時打印到控制臺。結果如圖2所示。在Basestation節(jié)點下,使用java net.tinyos.tools.Listen-comm serial@/dev/ttyUSB1:telosb與java net.tinyos.tools.Listen-comm serial@/dev/ttyUSB1:telosb|perl test.pl指令偵聽節(jié)點信息,結果如圖3所示。可以查看到由BlinkToRadio傳輸過來的光照、溫度與濕度值。

      圖2 在BlinkToRadio節(jié)點下打印的數(shù)據(jù)

      圖3 Basestation節(jié)點收到的數(shù)據(jù)

      在Windows系統(tǒng)上安裝USB轉串口軟件ft232_all,就可以將Basestation節(jié)點收到的數(shù)據(jù)通過串口轉發(fā)到PC機。在PC端,可以采用C#語言制作一個展示采集數(shù)據(jù)的界面,通過曲線的方式展示獲取到的數(shù)據(jù),如圖4所示。形象直觀的波形展示,喚起了學生的好奇心,從而提高了學習的積極性。

      圖4 PC端展示曲線

      3 結語

      本課程教學采用以點帶面方式,將零散的知識串聯(lián)起來,構成了一個包括數(shù)據(jù)采集、傳輸、打印以及上位機數(shù)據(jù)顯示項目。學生在理解“傳感器網(wǎng)絡”基礎上,參與了整個項目及傳感器驅動開發(fā)流程,提高了綜合開發(fā)能力。

      猜你喜歡
      無線傳感器網(wǎng)絡溫濕度串口
      溫濕度控制器在回收砂冷卻系統(tǒng)中的應用
      淺談AB PLC串口跟RFID傳感器的通訊應用
      基于DSP的多路溫濕度監(jiān)測系統(tǒng)
      基于溫濕度控制的天氣預測裝置
      電子制作(2018年11期)2018-08-04 03:26:02
      蒸發(fā)冷卻溫濕度獨立控制空調系統(tǒng)的應用
      一種改進的基于RSSI最小二乘法和擬牛頓法的WSN節(jié)點定位算法
      無線傳感器網(wǎng)絡定位技術可靠性分析
      軟件導刊(2016年9期)2016-11-07 17:46:50
      對無線傳感器網(wǎng)絡MAC層協(xié)議優(yōu)化的研究與設計
      科技視界(2016年22期)2016-10-18 15:25:08
      無線傳感器網(wǎng)絡技術綜述
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      扬中市| 毕节市| 福鼎市| 全南县| 申扎县| 陆河县| 晋中市| 甘南县| 响水县| 临沧市| 广灵县| 老河口市| 贵港市| 沙洋县| 孝义市| 林芝县| 东乌珠穆沁旗| 甘德县| 芦山县| 洮南市| 台中县| 广州市| 隆尧县| 盐城市| 诸暨市| 苏尼特右旗| 体育| 玉环县| 康平县| 阿拉尔市| 报价| 富阳市| 大邑县| 和平县| 尼勒克县| 惠东县| 南岸区| 于都县| 会宁县| 湘西| 长宁区|