• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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ù)并行接收方法探索
    尼木县| 如皋市| 白朗县| 浙江省| 兴安县| 措勤县| 军事| 曲松县| 温宿县| 金昌市| 屏东县| 时尚| 黔东| 石棉县| 广南县| 哈巴河县| 甘谷县| 云南省| 比如县| 惠东县| 鄢陵县| 灌南县| 大兴区| 栾城县| 阿勒泰市| 东明县| 武强县| 建平县| 瑞安市| 平和县| 大渡口区| 东莞市| 兴隆县| 运城市| 鄯善县| 长沙市| 晋中市| 喀喇| 新郑市| 福贡县| 和顺县|