版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
可編輯物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告精品文檔,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載物聯(lián)網(wǎng)實(shí)驗(yàn)實(shí)驗(yàn)一基礎(chǔ)實(shí)驗(yàn)1.1串口調(diào)試組件實(shí)驗(yàn)1.1.1實(shí)驗(yàn)?zāi)康脑诔绦蜷_(kāi)發(fā)過(guò)程中,往往需要對(duì)編寫的代碼進(jìn)行調(diào)試,前面介紹了通過(guò)LED進(jìn)行調(diào)試的方法,該實(shí)驗(yàn)主要是介紹串口調(diào)試的方式。本實(shí)驗(yàn)通過(guò)一個(gè)簡(jiǎn)單的例子讓讀者學(xué)會(huì)串口調(diào)試編寫的代碼。1.1.2實(shí)驗(yàn)原理串口調(diào)試的語(yǔ)句格式為,ADBG(x,args…),其中x為調(diào)試級(jí)別。我們?cè)贛akefile中定義一個(gè)默認(rèn)級(jí)別,在寫代碼的時(shí)候只有x不小于Makefile中定義的默認(rèn)級(jí)別時(shí),該語(yǔ)句才能被輸出到串口,args…為打印的內(nèi)容,具體的格式和c語(yǔ)言中printf相同。ADBG(….)語(yǔ)句實(shí)際上是通過(guò)CC2430的串口Uart0輸出打印語(yǔ)句的。1.1.3實(shí)驗(yàn)步驟1.將基站同電腦用燒錄線連接好,打開(kāi)基站的開(kāi)關(guān),同時(shí)將基站的燒錄開(kāi)關(guān)撥上去2.用串口線將基站和PC機(jī)器連接起來(lái)3.打開(kāi)串口助手(串口助手在光盤中的目錄為$(光盤目錄)\輔助工具\(yùn)串口助手),波特率設(shè)置為9600,其中串口號(hào)要根據(jù)自己的情況選擇,點(diǎn)擊【打開(kāi)串口】。4.打開(kāi)Cygwin開(kāi)發(fā)環(huán)境5.在Cygwin界面中執(zhí)行cdapps/Demos/Basic/SerialDebug,進(jìn)入到串口調(diào)試實(shí)驗(yàn)?zāi)夸浵隆?.在串口調(diào)試代碼目錄下執(zhí)行makeantc3install,進(jìn)行編譯和燒錄。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第1頁(yè)。7.燒錄成功后,實(shí)驗(yàn)現(xiàn)象為串口有內(nèi)容輸出,輸出內(nèi)容如下圖。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第1頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載1.1.4繼續(xù)實(shí)驗(yàn)通過(guò)級(jí)別控制,使得某些調(diào)試語(yǔ)句沒(méi)有被輸出到串口修改方案:如實(shí)驗(yàn)原理說(shuō)講ADBG(x,args…),x是調(diào)試級(jí)別,當(dāng)x小于makefile文件定義的默認(rèn)級(jí)別時(shí),此ADBG語(yǔ)句將不被執(zhí)行。所以可以做如下修改:…………#defineDBG_LEV 3000#defineRPG_LEV2000…………ADBG(DBG_LEV,"\r\n\r\nDEMOofSerialDebug\r\n",'x');ADBG(DBG_LEV,"1.Thisisastring,andthisischar'%c'\r\n",'x');ADBG(DBG_LEV,"2.NUM1:HEX=0x%x,DEC=%d\r\n",(int)(num1),(int)(num1));ADBG(RPG_LEV,"2.NUM2:HEX=0x%lx,DEC=%ld\r\n",(uint32_t)(num2),(uint32_t)(num2));ADBG(RPG_LEV,"3.FLOAT:%f\r\n",float1);…………物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第2頁(yè)。這樣,第4句和第5句就不會(huì)輸出。輸出內(nèi)容如下圖所示:物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第2頁(yè)。可編輯精品文檔,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載1.1.5碰到的問(wèn)題 第一次將基站同電腦用燒錄線連接起來(lái)時(shí),電腦會(huì)無(wú)法識(shí)別此USB設(shè)備。這樣就不能把程序燒錄到基站和節(jié)點(diǎn)當(dāng)中。需要先在PC機(jī)上安裝此USB設(shè)備的驅(qū)動(dòng)程序。具體操作是在設(shè)備管理器當(dāng)中,雙擊圖標(biāo)有感嘆號(hào)的設(shè)備,點(diǎn)擊更新驅(qū)動(dòng)程序,路徑為:F:\實(shí)驗(yàn)室軟件\物聯(lián)網(wǎng)\驅(qū)動(dòng)程序。1.1.6心得體會(huì) 本實(shí)驗(yàn)屬于驗(yàn)證性實(shí)驗(yàn),比較簡(jiǎn)單,代碼也淺顯易懂。主要通過(guò)此實(shí)驗(yàn)學(xué)習(xí)了如何通過(guò)串口對(duì)程序進(jìn)行調(diào)試,這個(gè)調(diào)試功能是分級(jí)別調(diào)試的,只有調(diào)用處的調(diào)試級(jí)別不小于makefile中定義的調(diào)試級(jí)別的時(shí)候才會(huì)被輸出到串口。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第3頁(yè)。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第3頁(yè)。可編輯精品文檔,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載1.2串口組件通信實(shí)驗(yàn)1.2.1實(shí)驗(yàn)?zāi)康哪軌蛘莆誄C2530中的串口的通訊功能,包括串口的發(fā)送功能和接受功能以及串口波特率設(shè)置功能。為今后的綜合實(shí)驗(yàn)打下基礎(chǔ)。1.2.2實(shí)驗(yàn)原理平臺(tái)提供了串口通信模塊組件PlatformSerialC,該組件提供了三個(gè)接口:StdControl、UartStream以及CC2530UartControl,其中,StdControl用于控制串口通信模塊的開(kāi)關(guān),UartStream提供了串口收發(fā)功能;CC2530UartControl接口用于設(shè)置串口通信得到波特率。其中UartStream的實(shí)現(xiàn),實(shí)際上是在串口層做了一個(gè)緩沖,每次將發(fā)送緩沖器的數(shù)據(jù)一個(gè)字節(jié)一個(gè)字節(jié)地往串口發(fā)送,最終達(dá)到串口的連續(xù)傳輸。1.2.3實(shí)驗(yàn)步驟1.將基站同電腦用燒錄線連接好,打開(kāi)基站的開(kāi)關(guān)2.用串口線將基站和PC機(jī)器連接起來(lái)3.打開(kāi)串口助手(串口助手在光盤中的目錄為$(光盤目錄)\輔助工具\(yùn)串口助手),波特率設(shè)置為9600,其中串口號(hào)要根據(jù)自己的情況選擇,點(diǎn)擊【打開(kāi)串口】。4.打開(kāi)Cygwin開(kāi)發(fā)環(huán)境5.在Cygwin界面中執(zhí)行cdapps/Demos/Basic/SerialIO,進(jìn)入到串口通訊實(shí)驗(yàn)?zāi)夸浵隆?.在串口通訊代碼目錄下執(zhí)行makeantc3install,進(jìn)行編譯和燒錄。7.燒錄成功后,實(shí)驗(yàn)現(xiàn)象為串口有內(nèi)容輸出。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第4頁(yè)。8.根據(jù)串口輸出的提示進(jìn)行操作,串口提示為按下鍵盤【1】,基站的藍(lán)燈會(huì)閃爍一下,按下鍵盤【2】,基站的黃燈會(huì)閃爍一下。如果是其它按鍵,串口會(huì)提示“Errorkey”,如下圖。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第4頁(yè)。可編輯精品文檔,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載1.2.4繼續(xù)實(shí)驗(yàn)實(shí)現(xiàn)一個(gè)串口實(shí)驗(yàn),在串口助手中實(shí)現(xiàn)回顯的功能。修改方案:在taskvoidlightLED()函數(shù)當(dāng)中,當(dāng)m_echo_buf==’1’和m_echo_buf==’2’時(shí)其各自的ADBG語(yǔ)句后面都多加一句postshowMenuTask();taskvoidlightLED() { if(m_echo_buf=='1') { LED_BLUE_TOGGLE;/*切換藍(lán)色LED燈*/ ADBG(DBG_LEV,"YouchoosetotoggleBLUELED\r\n"); postshowMenuTask(); } elseif(m_echo_buf=='2') { LED_YELLOW_TOGGLE;/*切換黃色LED燈*/ ADBG(DBG_LEV,"YouchoosetotoggleYELLOWLED\r\n"); postshowMenuTask(); } else物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第5頁(yè)。 {物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第5頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載 ADBG(DBG_LEV,"ErrorKey%c\r\n",m_echo_buf); postshowMenuTask(); } } 調(diào)試結(jié)果:1.2.5碰到的問(wèn)題 此實(shí)驗(yàn)相對(duì)比較容易,基本無(wú)碰上什么問(wèn)題。1.2.6心得體會(huì) 此實(shí)驗(yàn)的代碼看起來(lái)是挺容易讀懂的,但是在編程實(shí)現(xiàn)上缺沒(méi)有那么容易。TinyOS系統(tǒng)事先已經(jīng)將串口的發(fā)送和接受功能封裝成接口來(lái)讓我們調(diào)用,為我們使用串口的功能提供的極大的便利。這是nesC的一大優(yōu)勢(shì)。提供各式各樣的內(nèi)部組件也為我們做物聯(lián)網(wǎng)的開(kāi)發(fā)應(yīng)用節(jié)省了許多編程上的時(shí)間。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第6頁(yè)。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第6頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載1.3Flash組件讀寫實(shí)驗(yàn)1.3.1實(shí)驗(yàn)?zāi)康恼莆誄C2530芯片F(xiàn)lash的讀寫操作,同時(shí)為后面的綜合實(shí)驗(yàn)做準(zhǔn)備。1.3.2實(shí)驗(yàn)原理Flash存儲(chǔ)器具有非易失的特點(diǎn),即其存儲(chǔ)的數(shù)據(jù)掉電后不會(huì)丟失。因此常用來(lái)存儲(chǔ)一些設(shè)備參數(shù)等。Flash存儲(chǔ)器的組織結(jié)構(gòu)為:每頁(yè)2KB,共64頁(yè)(CC2530-F128)。Flash存儲(chǔ)器的寫入有別于RAM、EEPROM等其他存儲(chǔ)介質(zhì),寫Flash時(shí),每bit可以由1變?yōu)?而不能由0變?yōu)?,必須分頁(yè)擦除后才能恢復(fù)全“1”。因此,需要修改某頁(yè)中的部分字節(jié)時(shí),需要將本頁(yè)中用到的所有數(shù)據(jù)讀出到RAM空間中修改,然后擦除本頁(yè),再將RAMCC2530中使用Flash控制器來(lái)處理Flash讀寫和擦除。使用DMA傳輸和CPU直接訪問(wèn)SFR都可以配合Flash控制器完成寫Flash等操作。DMA寫Flash:需要寫入的數(shù)據(jù)應(yīng)存于XDATA空間,其首地址作為DMA的源地址,目的地址固定為FWDATA,觸發(fā)事件為FLASH。當(dāng)FCTL.WRITE置“1”時(shí)觸發(fā)DMA,傳輸長(zhǎng)度應(yīng)為41.3.3實(shí)驗(yàn)步驟1.將基站同電腦用燒錄線連接好,打開(kāi)基站的開(kāi)關(guān)2.用串口線將基站和PC機(jī)器連接起來(lái)3.打開(kāi)串口助手4.打開(kāi)Cygwin開(kāi)發(fā)環(huán)境5.在Cygwin開(kāi)發(fā)環(huán)境中執(zhí)行cdapps/Demos/Basic/Flash6.在Flash目錄下執(zhí)行makeantc3install,進(jìn)行軟件的編譯和燒錄物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第7頁(yè)。7.燒錄成功后,串口有內(nèi)容輸出,具體如下圖物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第7頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載1.3.4繼續(xù)實(shí)驗(yàn)自己定義一個(gè)結(jié)構(gòu)體,并且將結(jié)構(gòu)體的內(nèi)容寫入到0x1fff8,并且在寫完后將結(jié)構(gòu)體的數(shù)據(jù)讀取出來(lái)通原始數(shù)據(jù)進(jìn)行比較。修改方案:將數(shù)組ieee2改為結(jié)構(gòu)體,在結(jié)構(gòu)體里面定義一個(gè)數(shù)組。structSuper{ uint8_tnum[8]; }; uint8_tieee[8]={0}; uint8_tieee1[8]={7,2,4,11,21,3,92,1}; taskvoidinitTask() { uint8_ti; structSupersuper; for(i=0;i<8;i++) { super.num[i]=ieee1[i]; } ADBG(DBG_LEV,"readnow\n"); callHalFlash.erase((uint8_t*)0x1fff8); for(i=0;i<8;i+=4) { callHalFlash.write((uint8_t*)(0x1FFF8+i),(&super.num+i),4);物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第8頁(yè)。 } 物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第8頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載 callHalFlash.read(ieee,(uint8_t*)0x1FFF8,8); ADBG(DBG_LEV,"readok.\n"); for(i=0;i<sizeof(ieee);++i) { ADBG(DBG_LEV,"super.num[%d]=%d\n",(int)i,(int)ieee[i]); } }調(diào)試結(jié)果:1.3.5碰到的問(wèn)題 在做繼續(xù)實(shí)驗(yàn)的時(shí)候,原本想,像對(duì)數(shù)組初始化那樣直接給結(jié)構(gòu)體里面的數(shù)組賦初值,但是如果這樣做了,在編譯的時(shí)候就會(huì)出現(xiàn)錯(cuò)誤。在定義結(jié)構(gòu)體類型的時(shí)候不能給結(jié)構(gòu)體內(nèi)定義的數(shù)組賦初值,在定義好結(jié)構(gòu)體變量后,也不能直接給該結(jié)構(gòu)體變量的數(shù)組變量賦初值。最保險(xiǎn)的方法就是對(duì)機(jī)構(gòu)體變量的數(shù)組變量挨個(gè)賦值。1.3.6心得體會(huì)物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第9頁(yè)。 這次實(shí)驗(yàn)學(xué)習(xí)了Flash存儲(chǔ)器讀寫的基本原理,并通過(guò)了實(shí)驗(yàn)來(lái)驗(yàn)證對(duì)Flash存儲(chǔ)器的基本操作實(shí)現(xiàn)。這次實(shí)驗(yàn)相對(duì)比較容易,就是在做繼續(xù)實(shí)驗(yàn)的時(shí)候?qū)esC的結(jié)構(gòu)體的基礎(chǔ)知識(shí)了解不夠深而卡了一小會(huì)兒。這些基礎(chǔ)實(shí)驗(yàn)雖然比較簡(jiǎn)單,但是在之后的綜合實(shí)驗(yàn)上會(huì)經(jīng)常使用到,為后面的綜合實(shí)驗(yàn)做準(zhǔn)備。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第9頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載實(shí)驗(yàn)二點(diǎn)對(duì)點(diǎn)通信實(shí)驗(yàn)2.1實(shí)驗(yàn)?zāi)康?.了解節(jié)點(diǎn)對(duì)點(diǎn)通信過(guò)程2.學(xué)會(huì)ATOS平臺(tái)通訊模塊(ActiveMessage)的使用2.2實(shí)驗(yàn)原理本實(shí)驗(yàn)使用TinyOS中的活動(dòng)消息(ActiveMessage)模型實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信,活動(dòng)模型組件ActiveMessageC包含了網(wǎng)絡(luò)協(xié)議中路由層以下的部分。在ATOS平臺(tái)下,ActiveMessageC包含的主要功能有:CSMA/CA、鏈路層重發(fā)、重復(fù)包判斷等機(jī)制。其中,CSMA/CA機(jī)制使節(jié)點(diǎn)在發(fā)送數(shù)據(jù)之前,首先去偵聽(tīng)信道狀況,只有在信道空閑的情況下才發(fā)送數(shù)據(jù),從而避免了數(shù)據(jù)碰撞,保證了節(jié)點(diǎn)間數(shù)據(jù)穩(wěn)定傳輸;鏈路層重發(fā)機(jī)制是當(dāng)節(jié)點(diǎn)數(shù)據(jù)發(fā)送失敗時(shí),鏈路層會(huì)重發(fā),直到發(fā)送成功或重發(fā)次數(shù)到達(dá)設(shè)定的閾值為止,提高了數(shù)據(jù)成功到達(dá)率;重復(fù)包判斷機(jī)制是節(jié)點(diǎn)根據(jù)發(fā)送數(shù)據(jù)包的源節(jié)點(diǎn)地址及數(shù)據(jù)包中的dsn域判斷該包是不是重復(fù)包,如果是重復(fù)包,則不處理,防止節(jié)點(diǎn)收到同一個(gè)數(shù)據(jù)包的多個(gè)拷貝。ActiveMessageC向上層提供的接口有AMSend、Receive、AMPacket、Packet、Snoop等。AMSend接口實(shí)現(xiàn)數(shù)據(jù)的發(fā)送,Receive接口實(shí)現(xiàn)數(shù)據(jù)的接收,Snoop是接收發(fā)往其它節(jié)點(diǎn)的數(shù)據(jù),AMPacket接口用于設(shè)置和提取數(shù)據(jù)包的源節(jié)點(diǎn)地址、目的地址等信息,Packet接口主要是得到數(shù)據(jù)包的有效數(shù)據(jù)長(zhǎng)度(payloadlength)、最大有數(shù)據(jù)長(zhǎng)度、有效數(shù)據(jù)的起始地址等。AMSend、Receive、Snoop都是參數(shù)化接口,參數(shù)為一個(gè)8位的id號(hào),類似于TCP/IP協(xié)議中的端口號(hào)。兩個(gè)節(jié)點(diǎn)通信時(shí),發(fā)送節(jié)點(diǎn)使用的AMSend接口的參數(shù)id必須與接收節(jié)點(diǎn)的Receive接口的參數(shù)id一致。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第10頁(yè)。在TinyOS操作系統(tǒng)下,所有的數(shù)據(jù)包都封裝到一個(gè)叫message_t的結(jié)構(gòu)體中。message_t結(jié)構(gòu)體包含四個(gè)部分:header、data、footer、metadata四個(gè)部分。其中header中包含了數(shù)據(jù)包長(zhǎng)度、fcf、dsn、源地址、目的地址等信息;metadata包含了rssi等信息,詳見(jiàn)cc2420.h、Message.h、platform_message.h。其中,metadata部分不需要通過(guò)射頻發(fā)送出去,只是在發(fā)送前和接收后提取或?qū)懭胂鄳?yīng)的域。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第10頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載2.3實(shí)驗(yàn)步驟1.將基站同電腦用燒錄線連接好,打開(kāi)基站的開(kāi)關(guān),將基站的燒錄開(kāi)關(guān)撥上去2.用串口線將基站和PC機(jī)器連接起來(lái)3.打開(kāi)串口助手4.打開(kāi)Cygwin開(kāi)發(fā)環(huán)境5.在Cygwin開(kāi)發(fā)環(huán)境中執(zhí)行/opt/atos/apps/Demos/RFDemos/1_P2P6.在點(diǎn)對(duì)點(diǎn)通訊目錄下執(zhí)行makeantc3installGRP=01NID=01,進(jìn)行軟件的編譯和燒錄,(GRP=01NID=01的意思是將當(dāng)前的點(diǎn)燒錄為第一組,第一號(hào))7.燒錄成功后,將基站的燒錄開(kāi)關(guān)撥下去,將節(jié)點(diǎn)對(duì)應(yīng)的燒錄開(kāi)關(guān)撥上去,然后打開(kāi)節(jié)點(diǎn)的開(kāi)關(guān)8.執(zhí)行makeantc3reinstallGRP=01NID=029.重啟基站10.打開(kāi)剛剛燒錄的節(jié)點(diǎn)的開(kāi)關(guān)11.在串口助手中根據(jù)提示輸入對(duì)應(yīng)的操作內(nèi)容12.當(dāng)節(jié)點(diǎn)和基站通訊成功的情況如下圖物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第11頁(yè)。13.當(dāng)節(jié)點(diǎn)和基站通訊失敗的情況如下圖物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第11頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載2.4繼續(xù)實(shí)驗(yàn)完成一個(gè)點(diǎn)對(duì)點(diǎn)的傳輸,讓基站給單獨(dú)節(jié)點(diǎn)發(fā)送一個(gè)命令,節(jié)點(diǎn)在接收到命令后將自己的藍(lán)燈狀態(tài)改變。 修改方案: 在Receive.receive(message_t*msg,void*payload.unit8_tlen)函數(shù)中做修改。基站從串口接收到的數(shù)據(jù)存放在payload變量當(dāng)中,所以只需要判斷payload的長(zhǎng)度和內(nèi)容跟命令是否一樣,如果一樣就改變藍(lán)燈的狀態(tài)。這里假設(shè)該命令為”BLUE”。 修改代碼: eventmessage_t*Receive.receive(message_t*msg,void*payload,uint8_tlen) { uint8_ti; ADBG_APP("\r\n*Receive,len=[%d],DATA:\r\n",ADBG_N(len)); for(i=0;i<len;i++) { ADBG_APP("%c",((uint8_t*)payload)[i]); }物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第12頁(yè)。/*繼續(xù)實(shí)驗(yàn)修改部分開(kāi)始*/物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第12頁(yè)。可編輯精品文檔,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載 if(len==4) { if(((uint8_t*)payload)[0]=='B'&&((uint8_t*)payload)[1]=='L'&&((uint8_t*)payload)[2]=='U'&&((uint8_t*)payload)[3]=='E') { LED_BLUE_TOGGLE; } } /*繼續(xù)實(shí)驗(yàn)修改部分結(jié)束*/ ADBG_APP("\r\n"); LED_YELLOW_TOGGLE; m_input_type=INPUT_ADDRESS; postshowMenu(); }2.5碰到的問(wèn)題 1.在給節(jié)點(diǎn)燒錄程序的時(shí)候,容易出現(xiàn)no-chip-systemwasdetected。這個(gè)時(shí)候要將下載器的reset按鈕按下去復(fù)位,才能使得節(jié)點(diǎn)順利燒錄程序。 2.按照實(shí)驗(yàn)步驟一步步做下來(lái)以后,基站給節(jié)點(diǎn)發(fā)送消息時(shí),串口調(diào)試助手大多時(shí)間會(huì)顯示SentFAIL!。這個(gè)問(wèn)題一直得不到解決,所以只好做繼續(xù)實(shí)驗(yàn)。做繼續(xù)實(shí)驗(yàn)的時(shí)候發(fā)現(xiàn),雖然串口調(diào)試助手顯示的是SentFAIL,但是基站還是能夠通過(guò)發(fā)送命令控制藍(lán)燈的亮滅。這說(shuō)明基站跟節(jié)點(diǎn)的通訊是成功的。串口調(diào)試助手上顯示的是有誤的。至于為什么會(huì)出現(xiàn)這個(gè)問(wèn)題,我們也沒(méi)有討論出結(jié)果來(lái)。2.6心得體會(huì)物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第13頁(yè)。 該實(shí)驗(yàn)完成了基本的節(jié)點(diǎn)之間的通訊,該實(shí)驗(yàn)是基于穩(wěn)定的MAC點(diǎn)對(duì)點(diǎn)傳輸。所以熟練掌握這個(gè)實(shí)驗(yàn)是接下來(lái)研究路由協(xié)議的基礎(chǔ)。這個(gè)實(shí)驗(yàn)依然是驗(yàn)證性實(shí)驗(yàn),但是出現(xiàn)的問(wèn)題比前幾個(gè)實(shí)驗(yàn)多了。節(jié)點(diǎn)燒錄不進(jìn)去、基站與節(jié)點(diǎn)能夠進(jìn)行通信,但是串口調(diào)試助手顯示失敗。在這兩個(gè)地方糾結(jié)的很久,最后還是跟同學(xué)交流,才知道這些問(wèn)題大家都有出現(xiàn)。所以猜測(cè)可能是接口程序有問(wèn)題。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第13頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載實(shí)驗(yàn)三發(fā)射功率設(shè)置實(shí)驗(yàn)3.1實(shí)驗(yàn)?zāi)康牧私釩C2530芯片的8個(gè)輸出功率等級(jí),掌握節(jié)點(diǎn)輸出功率的設(shè)置方法。3.2實(shí)驗(yàn)原理CC2530芯片支持8個(gè)等級(jí)的發(fā)射功率,不同功率等級(jí)發(fā)射的最遠(yuǎn)距離不一樣,但是不是線性變化的。該實(shí)驗(yàn)就是改變CC2530芯片的發(fā)射功率寄存器的數(shù)值來(lái)改變發(fā)射功率。3.3實(shí)驗(yàn)步驟1.將基站同電腦用燒錄線連接好,打開(kāi)基站的開(kāi)關(guān)2.用串口線將基站和PC機(jī)器連接起來(lái)3.打開(kāi)串口助手4.打開(kāi)Cygwin開(kāi)發(fā)環(huán)境5.在Cygwin開(kāi)發(fā)環(huán)境中執(zhí)行cd/opt/atos/apps/Demos/RFDemos/3_SetTransmitPower/6.在功率設(shè)置實(shí)驗(yàn)?zāi)夸浵聢?zhí)行makeantc3installGRP=01NID=02,進(jìn)行軟件的編譯和燒錄7.燒錄成功后,將基站的燒錄開(kāi)關(guān)撥下去,將節(jié)點(diǎn)對(duì)應(yīng)的燒錄開(kāi)關(guān)撥上去,然后打開(kāi)節(jié)點(diǎn)的開(kāi)關(guān)8.執(zhí)行makeantc3reinstallGRP=01NID=019.重啟基站10.打開(kāi)節(jié)點(diǎn)的開(kāi)關(guān),按照上面的提示進(jìn)行操作。在上面的界面中,按“Y”后物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第14頁(yè)。會(huì)顯示功率列表提供選擇,根據(jù)自己的選擇進(jìn)行功率設(shè)置,在設(shè)置完成后程序會(huì)自動(dòng)給節(jié)點(diǎn)號(hào)為1的節(jié)點(diǎn)發(fā)送射頻數(shù)據(jù),如下圖。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第14頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載11.通過(guò)改變距離和改變發(fā)射功率級(jí)別,可以觀察到發(fā)送功率對(duì)發(fā)送的有效距離的影響。3.4繼續(xù)實(shí)驗(yàn) 在該實(shí)驗(yàn)的基礎(chǔ)上測(cè)試,在最大和最小發(fā)射功率下兩個(gè)點(diǎn)之間通訊距離的差距。3.5碰到的問(wèn)題 與“點(diǎn)對(duì)點(diǎn)通信實(shí)驗(yàn)”一樣,基站與節(jié)點(diǎn)通訊成功以后,串口調(diào)試助手依舊顯示SentFAIL,但是我們可以通過(guò)查看代碼知道射頻接收數(shù)據(jù)的函數(shù)Receive.receive()函數(shù)里面有一條語(yǔ)句:LED_YELLOW_TOGGLE;說(shuō)明當(dāng)節(jié)點(diǎn)接收到數(shù)據(jù)以后,節(jié)點(diǎn)的黃燈就會(huì)改變燈的狀態(tài)。我們就以此作為判斷節(jié)點(diǎn)是否成功接收到基站發(fā)出的數(shù)據(jù)的依據(jù)。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第15頁(yè)。 在設(shè)置發(fā)射功率的時(shí)候,想把功率設(shè)置成14,卻怎么也設(shè)置不了。查看代碼才知道16的發(fā)射功率等級(jí)對(duì)應(yīng)的是十六進(jìn)制的‘0’—‘F’,如果要設(shè)置發(fā)射功率為14,則應(yīng)該輸入‘C’。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第15頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載3.6心得體會(huì) 本實(shí)驗(yàn)是在點(diǎn)對(duì)點(diǎn)通信實(shí)驗(yàn)的基礎(chǔ)上完成的。通過(guò)本實(shí)驗(yàn),讓我們了解了CC2530芯片中功率級(jí)別的概念,以及如何設(shè)置發(fā)射功率的寄存器的值。為了解決這個(gè)實(shí)驗(yàn)中出現(xiàn)的問(wèn)題,仔細(xì)閱讀了所給的SetTransmitPowerM.nc文件的代碼。通過(guò)閱讀、分析代碼,對(duì)在TinyOS系統(tǒng)上進(jìn)行nesC編程有了進(jìn)一步地了解,也對(duì)nesC程序整體的框架有了一定的了解。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第16頁(yè)。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第16頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載實(shí)驗(yàn)四星狀網(wǎng)絡(luò)通訊實(shí)驗(yàn)4.1實(shí)驗(yàn)?zāi)康牧私庑切尉W(wǎng)絡(luò)的特點(diǎn),掌握星形網(wǎng)絡(luò)的實(shí)現(xiàn)方法。4.2實(shí)驗(yàn)原理該實(shí)驗(yàn)主要是完成星形網(wǎng)絡(luò)通訊實(shí)驗(yàn)。在這個(gè)實(shí)驗(yàn)中所有的基本節(jié)點(diǎn)都是直接將數(shù)據(jù)發(fā)送給基站,這樣就會(huì)形成一個(gè)星形。在節(jié)點(diǎn)端,每個(gè)節(jié)點(diǎn)都會(huì)啟動(dòng)一個(gè)定時(shí)器,在定時(shí)器超時(shí)的時(shí)候,節(jié)點(diǎn)就會(huì)開(kāi)始采集傳感器數(shù)據(jù),在完成傳感器數(shù)據(jù)采集后,節(jié)點(diǎn)就會(huì)將采集的數(shù)據(jù)發(fā)送給基站;在基站端,接收到節(jié)點(diǎn)的數(shù)據(jù)后,按照基站和上位機(jī)通訊的協(xié)議將數(shù)據(jù)上報(bào)給上位機(jī)軟件。4.3實(shí)驗(yàn)步驟1.將基站同電腦用燒錄線連接好,打開(kāi)基站的開(kāi)關(guān)2.用串口線將基站和PC機(jī)器連接起來(lái)3.打開(kāi)Cygwin開(kāi)發(fā)環(huán)境4.在Cygwin開(kāi)發(fā)環(huán)境中執(zhí)行cd/opt/atos/apps/Atosenet/ANTStartnet/Base5.在功率設(shè)置實(shí)驗(yàn)?zāi)夸浵聢?zhí)行makeantc3installGRP=01NID=01,進(jìn)行軟件的編譯和燒錄6.燒錄成功后,將基站的燒錄開(kāi)關(guān)撥下去,將節(jié)點(diǎn)對(duì)應(yīng)的燒錄開(kāi)關(guān)撥上去,然后打開(kāi)節(jié)點(diǎn)的開(kāi)關(guān)7.執(zhí)行cd/opt/atos/apps/Atosenet/ANTStartnet/Node,進(jìn)入到星形實(shí)驗(yàn)的節(jié)點(diǎn)目錄。8.在該目錄下面執(zhí)行makeantc3installASO=LIGHTTYPE3GRP=01NID=02,對(duì)節(jié)點(diǎn)進(jìn)行燒錄。9.依次燒錄剩下的節(jié)點(diǎn),確保每個(gè)節(jié)點(diǎn)的NID是不一樣的10.將節(jié)點(diǎn)和基站的天線都插好,并且將節(jié)點(diǎn)的開(kāi)關(guān)都打開(kāi)。11.運(yùn)行光監(jiān)控軟件,如果沒(méi)有安裝,請(qǐng)先安裝該軟件,這個(gè)軟件的安裝包在【實(shí)驗(yàn)光盤\演示中心\LightField.msi】。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第17頁(yè)。12.選擇正確的串口號(hào),點(diǎn)擊運(yùn)行標(biāo)志,運(yùn)行之后的界面如下。物聯(lián)網(wǎng)實(shí)驗(yàn)報(bào)告全文共19頁(yè),當(dāng)前為第17頁(yè)??删庉嬀肺臋n,歡迎下載精品文檔,歡迎下載可編輯精品文檔,歡迎下載13.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)計(jì)學(xué)堂考試試題及答案
- 快速適應(yīng)新環(huán)境能力測(cè)試題及答案
- 2025年國(guó)家公務(wù)員政治理論知識(shí)考試練習(xí)題(含答案)
- 2025年《醫(yī)療器械經(jīng)營(yíng)監(jiān)督管理辦法》試題及答案
- 營(yíng)救人質(zhì)考試題及答案
- LG(中國(guó))校招面試題及答案
- 大學(xué)思修試題題庫(kù)及答案
- 未來(lái)五年自動(dòng)化測(cè)試設(shè)備企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 中煤第三建設(shè)集團(tuán)(貴州)有限責(zé)任公司項(xiàng)目部管技人員招聘參考題庫(kù)附答案
- 興業(yè)銀行2026春季校園招聘?jìng)淇碱}庫(kù)附答案
- 2026新疆阿合奇縣公益性崗位(鄉(xiāng)村振興專干)招聘44人考試參考題庫(kù)及答案解析
- 耳鼻喉科2025年工作總結(jié)及2026年工作規(guī)劃
- 廢舊材料回收合同范本
- 2025年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握校ㄓ?jì)算機(jī))測(cè)試備考題庫(kù)附答案
- 鐵路治安管理大講堂課件
- 2026屆山東省高考質(zhì)量測(cè)評(píng)聯(lián)盟大聯(lián)考高三上學(xué)期12月聯(lián)考?xì)v史試題(含答案)
- 2025年鐵嶺衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試模擬測(cè)試卷附答案
- 試模報(bào)告模板
- 《我們?yōu)槭裁匆獙W(xué)習(xí)》的主題班會(huì)
- 海岸動(dòng)力學(xué)課后習(xí)題答案詳解
- 健康養(yǎng)老產(chǎn)業(yè)項(xiàng)目可行性分析
評(píng)論
0/150
提交評(píng)論