




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、無線與傳感器網(wǎng)絡(luò)實驗實驗報告題 目基于TinyOS光感傳感器的圖書館座位管理系統(tǒng)學 院計算機學院專 業(yè)物聯(lián)網(wǎng)工程班 級學 號姓 名指導教師完成日期 一、項目背景及應用前景TinyOS具有微型化、支持輕量級并發(fā)操作、靈活、低功耗等優(yōu)點,已經(jīng)被成千上萬的研發(fā)人員采用,應用于范圍廣闊的無線傳感器網(wǎng)絡(luò)中。每個TinyOS程序至少應該具有一個用戶組件,該用戶組件通過接口調(diào)用下層組件提供的服務(wù),實現(xiàn)程序的功能,如數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)收發(fā)等。用戶組件的開發(fā)為TinyOS程序設(shè)計的重點。TinyOS提供一些常用組件,如執(zhí)行組件、傳感器組件、通信組件。執(zhí)行組件用于控制LED指示燈、繼電器、步進電機等硬件模塊
2、;傳感器組件用于采集環(huán)境數(shù)據(jù),如溫度、亮度等;通信組件則實現(xiàn)與其它節(jié)點通信。TinyOS提供兩種通信組件:通過無線電收發(fā)器通信的組件和通過UART口通信的組件,后者則應用于槽節(jié)點中。硬件抽象層對上層組件屏蔽了底層硬件的特性,從而實現(xiàn)上層組件的硬件無關(guān)性,以方便程序移植。2、 功能描述本組選題為基于TinyOS光感傳感器的圖書館座位管理系統(tǒng)程序啟動后,節(jié)點終端有規(guī)律的在一段時間內(nèi)接收光感信號,如果處于接收時段收到一個遮掩信號,則向中轉(zhuǎn)節(jié)點發(fā)送一個代表有人的信息包,否則發(fā)送一個代表無人的信息包,然后通過串口與PC連接,使用監(jiān)聽工具對應的在PC上表示出有人或者無人的信息三、結(jié)構(gòu)描述通信結(jié)構(gòu)從通信的結(jié)
3、構(gòu)來說,系統(tǒng)共分為3個部分:終端節(jié)點收發(fā)數(shù)據(jù),根據(jù)收到的數(shù)據(jù)讓某個燈亮;中轉(zhuǎn)節(jié)點中轉(zhuǎn)計算機端和終端節(jié)點收發(fā)的數(shù)據(jù);計算機端接收到中轉(zhuǎn)節(jié)點發(fā)來的數(shù)據(jù)并進行處理。系統(tǒng)結(jié)構(gòu)概念如圖3-1所示。 圖3-1 系統(tǒng)結(jié)構(gòu)概念圖四、系統(tǒng)的設(shè)計與實現(xiàn)本系統(tǒng)由三個部分組成:計算機端、1個中轉(zhuǎn)節(jié)點和4個終端節(jié)點。系統(tǒng)具體設(shè)計為:計算機端從程序一開始的時候,通過中轉(zhuǎn)節(jié)點分別向四個節(jié)點發(fā)送reset信息,終端節(jié)點接收到數(shù)據(jù)后把所有座位置為空,終端節(jié)點定期檢測光強變化,并判斷是否有人占據(jù)座位,相應的改變亮燈位置,向中轉(zhuǎn)節(jié)點發(fā)送數(shù)據(jù),計算機端通過端口監(jiān)聽得到數(shù)據(jù)并進行處理,并在屏幕上顯示。4.1 終端節(jié)點終端節(jié)點是我們進行
4、效果演示的部分。它負責發(fā)數(shù)據(jù),感應外界對它進行的操作(光感強度的變化)。實現(xiàn)這個部分的功能代碼如下:void sendToHost(uint16_t operate) if (!busy) Msg* btrpkt = (Msg*)(call Packet.getPayload(&pkt,sizeof(Msg); if (btrpkt = NULL) return; btrpkt->nodeid = TOS_NODE_ID; btrpkt->operate = operate; if (call AMSend.send(AM_BROADCAST_ADDR, &pkt,
5、 sizeof(Msg) = SUCCESS) busy = TRUE; void succeed() call Leds.led1On(); sendToHost(2); void failed() call Leds.led1Off(); sendToHost(1); 表4-1 DeskC.nc部分代碼4.2中轉(zhuǎn)節(jié)點對于中轉(zhuǎn)節(jié)點的代碼主要是基于BlinkToRadio實現(xiàn)的,部分代碼如表4-2所示。typedef nx_struct Msg nx_uint16_t nodeid; nx_uint16_t reset; nx_uint16_t operate; Msg;void resetR
6、ats() scoreAll=0; score=0; if (!busy) Msg* btrpkt = (Msg*)(call Packet.getPayload(&pkt,sizeof(Msg); if (btrpkt = NULL) return; btrpkt->nodeid =TOS_NODE_ID; btrpkt->operate =0; btrpkt->reset = 1; if (call AMSend.send(AM_BROADCAST_ADDR, &pkt, sizeof(Msg) = SUCCESS) busy = TRUE; printf
7、("Time out! Clear all information!n"); printfflush(); 表4-2 Control.nc部分代碼3)將1)對應id號燒入4個節(jié)點終端,將2)燒入中轉(zhuǎn)節(jié)點,終端節(jié)點只需在準備通信前裝上電池。4.3計算機端計算機端是系統(tǒng)數(shù)據(jù)處理的主要部分。首先由它向中轉(zhuǎn)節(jié)點發(fā)送reset信息,再由中轉(zhuǎn)節(jié)點轉(zhuǎn)發(fā)給終端節(jié)點。終端節(jié)點收到數(shù)據(jù)后將處理后的數(shù)據(jù)發(fā)給中轉(zhuǎn)節(jié)點,計算機端通過端口監(jiān)聽得到數(shù)據(jù)并進行處理,顯示當前的各個“座位”信息在屏幕上。為了實現(xiàn)這個功能我們需要調(diào)用在/opt/tinyos-2.1.0/support/sdk/java/net
8、/tinyos/tools文件夾中的Printfclient.java文件,讓用戶看到具體的信息。4.4 系統(tǒng)使用完成程序燒錄之后,確保所有終端節(jié)點裝有電池以及中轉(zhuǎn)節(jié)點與計算機端成功相連,接下來的步驟如下:1、編譯并運行Printfclient.java。向命令行輸入javac Printfclient.java編譯成功后,再向命令行輸入java net.tinyos.tools.Printfclient運行java文件,可以看到目前各座位的信息。2、運行中轉(zhuǎn)節(jié)點的reset信號,使“座位”信息清空。3、用手遮掩使光強變化觀察節(jié)點變化和屏幕上顯示的信息。五、測試在測試過程中,我們發(fā)現(xiàn)當傳回的是
9、無人的信號時并不會立刻就在屏幕上顯示出來,而是經(jīng)過一段時間之后才在屏幕上顯示多個座位無人的信息。我們猜測是中轉(zhuǎn)節(jié)點代碼不完善導致信息擁堵。測試數(shù)據(jù)如圖所示:六、總結(jié)與收獲6.1 遇到的問題和解決方法1)如何判斷光強在編寫代碼時我們首先考慮找到發(fā)送信息的光強字段,然后通過判斷光強進行下面一系列的操作,但是沒找到,參考了BlinkToRadio例子后我們發(fā)現(xiàn)這個信息在event void Read.readDone(error_t result, uint16_t data)中的data中,經(jīng)過考慮,我們把閾值定為25,以判斷此時有人無人。2)檢測時間的確定之前確定檢測時間定為20秒,發(fā)現(xiàn)時間過長不利于觀察,我們又把數(shù)值定在了5秒6.2 總結(jié)本次課程中我們對TinyOS有了初步的接觸,學習了節(jié)點與系統(tǒng)之間的通信方式,節(jié)點的各項基本功能,并根據(jù)所學內(nèi)容編寫了一個小樣例程序。在編寫的過程中我們發(fā)現(xiàn)了一些問題并一一解決,其中最主要的技術(shù)問題已經(jīng)羅列在上文中。同時,我們還遇到了一些別的問題。例如在計算機端數(shù)據(jù)接受的過程中,中轉(zhuǎn)節(jié)點的消息堵塞造成不能立刻返回信息,數(shù)據(jù)不及時。在課程中,我們學習了TinyOS的理論知識,通過查
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 仙人開業(yè)活動策劃方案
- 仟味米粉公司年會策劃方案
- 代理公司策劃方案
- 代表視察活動方案
- 以案釋法宣傳活動方案
- 價格宣傳活動方案
- 任職儀式活動方案
- 企業(yè)喬遷開業(yè)及公司年會策劃方案
- 企業(yè)健身培訓活動方案
- 企業(yè)公司競賽策劃方案
- 外周血管介入器械行業(yè)深度報告:集采正推進國內(nèi)品牌大有可為
- 《執(zhí)業(yè)醫(yī)師法培訓》課件
- 江蘇省南通機場集團有限公司關(guān)于“空港英才計劃”招聘高頻重點提升(共500題)附帶答案詳解
- 普通話考試30個經(jīng)典命題說話題目及范文
- 【MOOC】《儀器分析》(北京化工大學) 期末中國大學慕課答案
- 第2部分 蟲害調(diào)查技術(shù)規(guī)范
- 部編版語文中考考前指導與考試經(jīng)驗方法技巧
- 國開電大《建筑構(gòu)造》形考任務(wù)1-4
- 我的家鄉(xiāng)陜西榆林
- 醫(yī)院全面預算管理培訓
- DB52T 1696-2022 口腔綜合治療臺用水衛(wèi)生管理規(guī)范
評論
0/150
提交評論