中南大學劉偉榮物聯(lián)網-《無線傳感器網絡》實驗報告_第1頁
中南大學劉偉榮物聯(lián)網-《無線傳感器網絡》實驗報告_第2頁
中南大學劉偉榮物聯(lián)網-《無線傳感器網絡》實驗報告_第3頁
中南大學劉偉榮物聯(lián)網-《無線傳感器網絡》實驗報告_第4頁
中南大學劉偉榮物聯(lián)網-《無線傳感器網絡》實驗報告_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

中南大學信息科學與工程學院物聯(lián)網無線傳感器網絡 實驗報告 班 級: 物聯(lián)網 學 號: 姓 名: 指導老師: 劉偉榮 實驗時間: 2014年4月11日 目錄實驗一 基礎實驗(LED實驗)- 2 -1.1實驗目的- 2 -1.2實驗設備及工具- 2 -1.3實驗原理- 2 -1.4 實驗步驟及結果- 5 -實驗二 射頻實驗- 6 -2.1 實驗目的- 6 -2.2 實驗內容- 6 -2.3 實驗設備及工具- 7 -2.4 實驗原理- 7 -2.5 實驗步驟- 8 -2.6 實驗數(shù)據(jù)分析及結論- 9 -實驗三 Zstack組網實驗- 10 -3.1 實驗目的- 10 -3.2 實驗內容- 10 -3.3 預備知識- 11 -3.4 實驗設備及工具- 11 -3.5 實驗原理- 11 -3.6 實驗步驟- 16 -3.7 實驗數(shù)據(jù)分析及結論- 17 -實驗四 綜合實驗(傳感器網絡)- 17 -4.1 智能網關程序設計- 18 -4.2 Android 用戶控制程序設計- 19 -4.3 Zigbee 節(jié)點控制程序設計- 30 -4.4 平臺控制操作- 34 -實驗一 基礎實驗(LED實驗)1.1實驗目的u 通過 I/O控制小燈閃爍的過程。 u 在 ZX2530A 型 CC2530 節(jié)點板上運行自己的程序。1.2實驗設備及工具u 硬件:ZX2530A 型底板及CC2530 節(jié)點板一塊,USB 接口仿真器,PC 機 u 軟件:PC 機操作系統(tǒng) WinXP,IAR 集成開發(fā)環(huán)境。 1.3實驗原理通過 CC2530 的 I/O 引腳,輸出高低電平來控制 LED 的亮與滅。 本實驗選擇 P2_0 I/O 引腳,將P2_0 置成高電平即點亮 LED。 如圖 為 LED 小燈驅 動電路,DS1 為 LED 小燈,P2_0引腳使用 CC2430/1 的內置電源驅動LED 小燈。 CC2530的 I/O 控制口一共有21個,分成3組,分別是P0、P1和P2;由上面的對照表可以看出 LED1所對應的I/O 口為P1_0,LED2所對應的I/O口為P1_2。 下面我們來看一下本次實驗所用到的控制寄存器中每一位的取值所對應的意義: P1DIR(P1 方向寄存器,P0DIR 同理) :P1SEL(P1 功能選擇寄存器,P0SEL 同理) :寄存器的設置: 將控制寄存器的某一位置 1: 例:P1DIR |= 0X02; 解釋:”|=“表示按位或運算,0X02 為十六進制數(shù),轉換成二進制數(shù)為 0000 0010,若 P1DIR 原來的值為 0011 0000,或運算后 P1DIR的值為 0011 0010。根據(jù)上面給出的取值表可知,按位與運算后 P1_1 的方向改為輸出,其他 I/O 口方向保持不變。 將控制寄存器某一位清 0:例:P1DIR &= 0X02; 解釋:”&=“表示按位與運算,”“運算符表示取反, 0X02為0000 0010, 即0X02 為1111 1101。若 P1DIR 原來的值為 0011 0010,與運算后 P1DIR 的值為0011 0000。程序源碼 /引入頭文件 #include /引入 CC2530所對應的頭文件(包含各 SFR 的定義) /定義LED引腳 #define led1 P1_0 /定義 LED1 為P1_0 口控制 #define led2 P1_2 /定義 LED2 為P1_1 口控制 void Delay(unsigned char n) unsigned char i; unsigned int j; for(i = 0; i n; i+) for(j = 1; j8), (byte) 0, /addr 0x00, 0x01, / cmd 0x00,0x01, 0x00,0x02, 0x00,0x05, 0x00,0x14, 0x00,0x15 ); 當 syncRequestSYS_APP_MSG 返回后,如果 ninfo!=null,則 ninfo 中保存獲取到的協(xié)調器信息,否則獲取協(xié)調器信息失敗,zigbee 網絡搜索結束。獲取到協(xié)調器信息后通過以下代碼 Top.DrawTop(mTree); Message msg = Message.obtain(); msg.what = MSG_NEW_NETWORK; msg.arg1 = 1; mMainHandler.sendMessage(msg); 生成協(xié)調器節(jié)點并通知主線程在屏幕上顯示出來。 當找到協(xié)調器后,程序通過查找與協(xié)調器直接連接的相關節(jié)點,然后遞歸搜索,最終搜索完整個網絡并繪制出 Zigbee 網絡的 TOP結構。 具體實現(xiàn)代碼如下private void buildNetWork(Node pa, int cli) for (int i=0; i8), (byte) clii, /addr 0x00, 0x01, / cmd 0x00,0x01, 0x00,0x02, 0x00,0x05, 0x00,0x14, 0x00,0x15 ); if (ninfo=null | ninfo.length29) Log.d(TAG, * get node +clii+ info fail.); continue; int tmp, off=0; tmp = Tool.builduInt(ninfooff, ninfooff+1); / addr if (tmp != clii) Log.d(TAG, net add is not equl.); continue; off += 2; tmp = Tool.builduInt(ninfooff, ninfooff+1); /cmd if (tmp != 0x8001) Log.d(TAG, response cmd not euql.); continue; off += 2; if (ninfooff != 0) /read status Log.d(TAG, read status is not 0); continue; off += 1; Node nd = new Node(clii, Node.ZB_NODE_TYPE_ENDDEVICE); int childs = ; while (off ninfo.length) tmp = Tool.builduInt(ninfooff, ninfooff+1); off += 2; switch (tmp) case 0x0001: / hard vernd.mHardVer = Tool.builduInt(ninfooff, ninfooff+1); off += 2; break; case 0x0002: nd.mSoftVer = Tool.builduInt(ninfooff, ninfooff+1); off += 2; break; case 0x0005: nd.mDevType = ninfooff; off += 1; break; case 0x0014: for (int j=0; j8; j+) nd.mIEEEAddrj = ninfooff+j; off += 8; break; case 0x0015: int assocCnt = ninfooff;off += 1; break; case 0x0014: for (int j=0; j8; j+) nd.mIEEEAddrj = ninfooff+j; off += 8; break; case 0x0015: int assocCnt = ninfooff; off += 1; if (assocCnt != 0) nd.mNodeType = Node.ZB_NODE_TYPE_ROUTER; int nli = new intassocCnt; for (int j=0; j New - Android Project”出現(xiàn)如下對話框其中紅線標示出來是要填充的:Location:指定 Android 用戶控制程序源代碼的存放位置。填寫好后點擊“Finish”按鈕。建立工程后工程結構如下圖:3) 選擇菜單“Project”確保Build Automaticall 被選中,如下圖:4) 選擇菜單“Project - Clean”出現(xiàn)如下對話框點擊“Ok”按鈕5) 點擊 eclipse 上的運行按鈕就可以在模擬器上運行程序了,第一次運行程序會出現(xiàn)如下對話框,請選擇 Android Application。然后點擊“OK”按鈕。6)如果在執(zhí)行第 5 步時,將物聯(lián)網網關實驗箱與 pc 用 usb 連接起來了,那么程序將會自動下載到實驗箱上。就可以在實驗箱上運行程序了4.3 Zigbee 節(jié)點控制程序設計Zigbee 節(jié)點控制程序運行在每個傳感器節(jié)點上,根據(jù)不同的傳感器類型,設計不同的傳感器控制程序。所有節(jié)點控制程序都是基于 Zstack 協(xié)議棧的,并且都是在 SampleApp 的基礎上修改而來。 下面對各個傳感器工程進行介紹:先將“物聯(lián)網光盤綜合實驗Zigbee 節(jié)點控制程序”復制到本地磁盤。 打開工程文件“ProjectszstackSamplesSimpleAppCC2530DB SimpleApp.eww”1) 協(xié)調器節(jié)點工程 SimpleCoordinator即協(xié)調器工程,如下圖協(xié)調器的應用功能代碼實現(xiàn)文件是 SimpleCoordinator.c 在工程文件夾 App 目錄下具體實現(xiàn)可參考源碼。按下鍵盤上的 F7 即個編譯協(xié)調器工程,編譯好之后可將代碼下載到協(xié)調器節(jié)點板。 2) 繼電器節(jié)點工程 SimpleLight即繼電器節(jié)點工程,如下圖 程序中實現(xiàn)了一個繼電器的控制, 具體實現(xiàn)代碼可參考源文件工程目錄 App 下 SimpleLight.C 3) 氣體傳感器工程 SimpleCo2Sensor即氣體傳感器節(jié)點工程,如下圖氣體傳感器的控制代碼請參考工程 App 目錄下 SimpleCo2Sensor.c4)溫度傳感器工程 SimpleTempSensor即溫度傳感器工程如下圖 溫度傳感器節(jié)點用用控制代碼可參考工程目錄 App 下 SimpleTempSensor.c 文件 5)人體紅外傳感器節(jié)點工程 SimpleInfrared 即人體紅外傳感器工程,如下圖 人體紅外傳感器節(jié)點應用控制代碼可參考工程目錄 App 下SimpleInfrared.c 6)超聲波距離傳感器節(jié)點工程 SimpleDistanceSensor 即超聲波距離傳感器工程,如下圖超聲波距離傳感器節(jié)點實現(xiàn)代碼可參考工程目錄 App 下 SimpleDistanceSensor.c。超聲波測距驅動代碼請參考 ys-srf05.c 文件。7)濕度傳感器節(jié)點工程 SimpleHumiditySensor 即濕度傳感器節(jié)點工程,如下圖 濕度傳感器應用控制代碼可參考工程目錄 App 下 SimpleHumiditySensor.c 文件,其濕度的測量驅動可參考溫濕度傳感器驅動 dht11.c 文件 8)開關傳感器節(jié)點工程 SimpleSwitch 即開關傳感器工程,如下圖開關傳感器應用控制實現(xiàn)代碼可參考工程目錄 App 下 SimpleSwitch.c 文件。4.4 平臺控制操作4.4.1 啟動程序 1)安裝好程序后,打開 android 應用程序面板,找到圖標,點擊進入程序。 2)直接點擊登錄按鈕,進入到系統(tǒng)主界面。第一次進入是系統(tǒng)會自動連接到 zigbee 網關然后去搜索 zigbee 網絡,默認的 zigbee網關地址為本機 IP 地址,即 127.0.0.1。 3)如果你的zigbee 網關地址不是本機,則需要修改默認網關地址。通過按下系統(tǒng)菜單按鍵,會出現(xiàn)如下菜單選擇設置菜單,可以設置默認的 zigbee 網關。如下圖:4)設置好網關后,下次啟動程序就不用再次設置了。4.4.2 搜索網絡如果 zigbee網關設置好,通過菜單選擇搜索網絡就可以搜索 zigbee 網絡了,正常情況下至少會有一個協(xié)調器節(jié)點,如果程序提示搜索不到網絡,請檢查你的網絡連接和協(xié)調器是否正確

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論