物聯(lián)網(wǎng)實驗報告_第1頁
物聯(lián)網(wǎng)實驗報告_第2頁
物聯(lián)網(wǎng)實驗報告_第3頁
物聯(lián)網(wǎng)實驗報告_第4頁
物聯(lián)網(wǎng)實驗報告_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、20134636 中南林業(yè)科技大學(xué)課程設(shè)計實驗報告專業(yè)班級:20013級計算算機科學(xué)與技技術(shù)2班授課教師:張艷艷學(xué)生姓名:陸煥煥麗學(xué)生學(xué)號: 2201346636實驗一繼電器閃爍實驗?zāi)康模簩W(xué)會會使用修改程程序,使得繼繼電器按要求求閃爍。內(nèi)容:修改以下下程序,使得得繼電器的綠綠燈閃一下,紅紅燈閃五下#includde typedeff unsiigned int uintt ;typedeff unsiigned char ucharr;/定義控制燈燈的端口#definee RLEDD P1_00/定義LED11為P10口控制制#definee YLEDD P1_11/定義LED22為P11口控

2、制制/函數(shù)聲明void Deelay(uuint);/延時函數(shù)數(shù)void Innitiall(voidd);/初始化P0口/*/延時*/void Deelay(uuint nn) ucharr i; whilee(n-) forr(i=200;i0;ii-); /* 初始化化程序*/void Innitiall(voidd) P1DIRR |= 00 x03; /P100、P11定義為為輸出 RLED = 1; YLED = 1;/LEDD滅/*/主函數(shù)*/void maain(vooid) Inittial();/調(diào)用初始始化函數(shù)RLED = 0;/LEDD1YLED = 0;/LEDD2w

3、hile(1) RRLED = 0; YYLED = 1; DDelay(1000); RRLED = 1; YYLED = 0; DDelay(1000);實驗記錄:修改好的程序如如下: #incluude typedeff unsiigned int uintt ;typedeff unsiigned char ucharr;/定義控制燈燈的端口#definee RLEDD P1_00/定義LED11為P10口控制制#definee YLEDD P1_11/定義LED22為P11口控制制/函數(shù)聲明void Deelay(uuint);/延時函數(shù)數(shù)void Innitiall(voidd);

4、/初始化P0口/*/延時*/void Deelay(uuint nn) ucharr i; whilee(n-) forr(i=200;i0;ii-); /* 初始化化程序*/void Innitiall(voidd) P1DIRR |= 00 x03; /P100、P11定義為為輸出 RLED = 1; YLED = 1;/LEDD滅/*/主函數(shù)*/void maain(vooid)uint ii; Iniitial();/調(diào)用初始始化函數(shù)RLED = 0;/LEDD1YLED = 0;/LEDD2while(1) RRLED = 0; YYLED = 1; DDelay(1000); fo

5、or(i=0;ihdr.eventt ) caase AFF_INCOOMING_MSG_CCMD: GeenericcApp_MMessaggeMSGCCB( MSGppkt ); brreak; defaault: brreak; oosal_mmsg_deealloccate( (uintt8 *)MMSGpktt ); MMSGpktt = (affIncommingMSSGPackket_t *)osaal_msgg_receeive( GenerricAppp_TaskkID ); retuurn (eeventss SYYS_EVEENT_MSSG); returrn 0;sta

6、tic void GenerricAppp_MesssageMSSGCB( afInccominggMSGPaacket_t *pkt ) unsiggned cchar bbuf100; switcch ( ppkt-clussterIdd ) casse GENNERICAAPP_CLLUSTERRID: oosal_mmemcpyy(buf,ppkt-ccmd.Daata,100); iif( (bbuf100=CC)|(buf1=h)|(bbuf5=S)|(bbuf9=i) HalLLedBliink(HAAL_LEDD_1,2,40,7000); bbreak; defauult:

7、breeak; 上述代碼實現(xiàn)的的基本功能如如下:第79行,將收收到的數(shù)據(jù)拷拷貝到緩沖區(qū)區(qū)buf中。第80行,判斷斷接收到的數(shù)數(shù)據(jù)是不是“ChinaSofti”,這里是選擇性判斷了4個字符。如果是則執(zhí)行第82行,使LED紅燈閃爍2次。注意:上述代碼碼使用到了ZZigBeee協(xié)議棧提供供的函數(shù)HaalLedBBlink(功功能:使某個個LED閃爍),直直接使用即可可。這里需要要提醒讀者,使使用協(xié)議棧進進行應(yīng)用程序序開發(fā)時,如如果協(xié)議棧已已經(jīng)提供了相相應(yīng)的函數(shù),則則只需要盡快快掌握該函數(shù)數(shù)的功能及使使用方法即可可,不需要另另外實現(xiàn)該函函數(shù)。由于我我們的開發(fā)板板硬件和TII的原廠開發(fā)發(fā)板硬件有所所不同

8、,所以以這里需要對對相關(guān)的LEED硬件初始始化做一些調(diào)調(diào)整。具體可可分為以下兩兩步:1.打開ZMaain文件夾夾下的ZMaain.c文文件,找到整整個協(xié)議棧的的主函數(shù)maain()函函數(shù),在855行(通過Toools-Optioons選項的的Editoor欄中設(shè)置置show line numbeers即可顯顯示行號):HAL_BBOARD_INIT();鼠標(biāo)雙雙擊這個函數(shù)數(shù)選定然后右右擊,選擇跳跳轉(zhuǎn)到函數(shù)定定義處,具體體如圖4.77所示:2.還是在haal_boaard_cffg.h這個個文件中,我我們將1166行和123行的ACTIIVE_HIIGH改為ACTIIVE_LOOW,這是因因為我

9、們的LLED燈是IO口低電平平觸發(fā)亮。通過以上兩步,相相關(guān)的LEDD函數(shù)就可以以正常使用了了。到此為止,協(xié)調(diào)調(diào)器的編程已已經(jīng)基本結(jié)束束,下面回憶憶一下上述代代碼所做的基基本工作。(1)刪除了協(xié)協(xié)議棧中的GGeneriicApp.c文件,然然后添加了兩兩個文件: Coorddinatoor.c和Enddeevice.c。(2)給出了CCoordiinatorr.c的代碼碼,并給出了了部分注釋,其其中 Coorddinatoor.c文件件中很多代碼碼格式是固定定的,讀者只只需要熟悉這這些代碼格式式即可。在Worksppace下面面的下拉列表表框中選擇CCoordiinatorrEB,然后后右鍵單擊

10、EEnddevvice.cc,在彈出的的下拉菜單中中選擇Opttions,如如圖4.8所示。圖4.8 OOptionns選項設(shè)置置在彈出的對話框框中,選擇EExcludde froom buiild,如圖圖4.9所示。圖4.9 EExcludde froom buiild此時,Endddevicee.c文件會會呈灰白顯示示狀態(tài)。同時時可以打開TTools文文件夾可以看看到f8wEEndevcfg和f8wRoouter.cfg文件件也是呈灰白白顯示狀態(tài),文文件呈灰白顯顯示狀態(tài)說明明該文件不參參與編譯,ZZigBeee協(xié)議棧正是是使用這種方方式實現(xiàn)對源源文件編譯的的控制。f8w25300.xcl,

11、f8wCoonfig.cfg,f8wCooord.ccfg三個文文件包含了節(jié)節(jié)點的配置信信息,具體功功能如下:(1)f8w22530.xxcl包含了CC22530單片片機的鏈接控控制指令(如如定義堆棧大大小、內(nèi)存分分配等),一一般不需要改改動。(2)f8wCConfigg.cfg包含含了信道選擇擇,網(wǎng)絡(luò)號等等有關(guān)的鏈接接命令。例如如:下列代碼碼定義了建立立網(wǎng)絡(luò)的信道道默認(rèn)為111,即從11信道上建建立ZigBBee無線網(wǎng)網(wǎng)絡(luò),第599行定義了ZiigBee無無線網(wǎng)絡(luò)的網(wǎng)網(wǎng)絡(luò)號。因此如果想從其其他信道上建建立zigbbee網(wǎng)絡(luò)和和修改網(wǎng)絡(luò)號號,就可以在在此修改。(3)f8wCCoord.cfg定

12、義了了設(shè)備類型前文講到ziggbee無線線網(wǎng)絡(luò)中的設(shè)設(shè)備類型有協(xié)協(xié)調(diào)器,路由由器和終端節(jié)節(jié)點。下述代代碼就定義了了該設(shè)備具有有協(xié)調(diào)器和路路由器的功能能。下面講解一下下zigbeee協(xié)議棧的的編譯以及下下載。點擊工具欄上的的Make按鈕鈕或者點擊PProjecct下的Makee,即可實現(xiàn)現(xiàn)zigbeee協(xié)議棧的的編譯。編譯完成后,在在窗口下方會會自動彈出MMessagge窗口,顯顯示編譯過程程中的警告和和出錯信息。Message窗口如圖4.10所示。圖4.10 Messaage窗口最后,用CC22530仿真真器將開發(fā)板板和電腦連接接起來,復(fù)位位一下仿真器器,然后選擇擇工具欄上的的Debugg按鈕

13、或者點點擊Projject下的的Downlload aand Deebug,即即可實現(xiàn)程序序的下載。(2) 終端節(jié)節(jié)點程序下面介紹一下終終端節(jié)點的程程序設(shè)計步驟驟。首先,在在Worksspace下下面的下拉列列表框中選擇擇EndDeeviceEEB,然后右右鍵單擊Cooordinnator.c文件,在在彈出的下拉拉菜單中選擇擇Optioons,在彈彈出的對話框框中,選擇EExcludde froom buiild,此時時,Coorrdinattor.c文文件會呈灰白白顯示狀態(tài)。在Enddevvice.cc文件中輸入入以下代碼: #includde OSSAL.h#includde AFF.h#

14、includde ZDDApp.hh#includde ZDDObjecct.h#includde ZDDProfiile.h#includde GeenericcApp.hh#includde DeebugTrrace.hh#if !deefinedd( WINN32 ) #incllude OnBoaard.h#endif#includde haal_ledd.h#includde haal_keyy.h#includde haal_uarrt.hconst ccId_t GenerricAppp_ClussterLiistGEENERICCAPP_MMAX_CLLUSTERRS = GE

15、NERRICAPPP_CLUSSTERIDD;const SSimpleeDescrriptioonFormmat_t GenerricAppp_SimppleDessc = GENERRICAPPP_ENDPPOINT, / innt Enddpointt; GENERRICAPPP_PROFFID, / uiint16 AppPrrofId2; GENERRICAPPP_DEVIICEID, / uiint16 AppDeeviceIId2; GENERRICAPPP_DEVIICE_VEERSIONN, / innt AAppDevvVer:44; GENERRICAPPP_FLAGGS

16、, / innt AAppFlaags:4; GENERRICAPPP_MAX_CLUSTTERS, / byyte AAppNummInCluusterss; (cId_t *)GennericAApp_CllusterrList, / bytee *pApppInCllusterrList; GENERRICAPPP_MAX_CLUSTTERS, / byyte AAppNummInCluusterss; (cId_t *)GennericAApp_CllusterrList / bytee *pApppInCllusterrList;endPoinntDescc_t GenerricAp

17、pp_epDeesc;byte GeenericcApp_TTaskIDD; devStattes_t GenerricAppp_NwkSState;byte GeenericcApp_TTransIID;afAddrTType_tt GenerricAppp_DstAAddr;static void GenerricAppp_SenddTheMeessagee( voiid );void GeenericcApp_IInit( uint88 taskk_id ) GenerricAppp_TaskkID = task_id; GenerricAppp_NwkSState = DEVV_INI

18、TT; GenerricAppp_TrannsID = 0; GenerricAppp_DstAAddr.aaddrMoode = (afAdddrModde_t)AddrNNotPreesent; GenerricAppp_DstAAddr.eendPoiint = 0; GenerricAppp_DstAAddr.aaddr.sshortAAddr = 0 x00000; GenerricAppp_epDeesc.enndPoinnt = GGENERIICAPP_ENDPOOINT; GenerricAppp_epDeesc.taask_idd = &GeenericcApp_TTask

19、IDD; GenerricAppp_epDeesc.siimpleDDesc = (SiimpleDDescriiptionnFormaat_t *)&GennericAApp_SiimpleDDesc; GenerricAppp_epDeesc.laatencyyReq = noLaatencyyReqs; afReggisterr( &GennericAApp_eppDesc );uint16 GenerricAppp_ProccessEvvent( uint88 taskk_id, uint116 eveents ) afInccominggMSGPaacket_t *MSGppkt;

20、if ( eventts & SSYS_EVVENT_MMSG ) MSGGpkt = (afIIncomiingMSGGPackeet_t *)osall_msg_receiive( GeneericAppp_TasskID ); whiile ( MSGpkkt ) sswitchh ( MSSGpkt-hdr.eventt ) casee ZDO_STATEE_CHANNGE: GeenericcApp_NNwkStaate = (devSStatess_t)(MSGppkt-hdr.statuus); iff (GeenericcApp_NNwkStaate = DEV_ZB_COOO

21、RD) osal_startt_timeerEx( GenerricAppp_TaskkID, GENERRICAPPP_SENDD_MSG_EVT, GENERRICAPPP_SENDD_MSG_TIMEOOUT ); brreak; defaault: brreak; oosal_mmsg_deealloccate( (uintt8 *)MMSGpktt ); MMSGpktt = (affIncommingMSSGPackket_t *)osaal_msgg_receeive( GenerricAppp_TaskkID ); retturn (eventts SSYS_EVVENT_MM

22、SG); if ( eventts & GGENERIICAPP_SEND_MSG_EEVT ) GennericAApp_SeendTheeMessaage(); osaal_staart_tiimerExx( GeneericAppp_TasskID, GENNERICAAPP_SEEND_MSSG_EVTT, GENNERICAAPP_SEEND_MSSG_TIMMEOUT ); retturn (eventts GGENERIICAPP_SEND_MSG_EEVT); returrn 0;static void GenerricAppp_SenddTheMeessagee( voiid

23、 ) char theMeessageeData = Helloo Worlld; if ( AF_DaataReqquest( &GennericAApp_DsstAddrr, &GennericAApp_eppDesc, GENEERICAPPP_CLUUSTERIID, (bytte)osaal_strrlen( theMeessageeData ) + 11, (bytte *)&theMeessageeData, &GennericAApp_TrransIDD, AF_DDISCV_ROUTEE, AF_DEFAUULT_RAADIUS ) = afStaatus_SSUCCESSS

24、 ) HalLLedBliink(HAAL_LEDD_2,2,40,7000); 4 點對點數(shù)據(jù)據(jù)傳輸實驗解解析前面實驗實現(xiàn)了了ZigBeee無線網(wǎng)絡(luò)絡(luò)中點對點的的數(shù)據(jù)傳輸,但但是具體流程程并沒有講解解,主要是想想盡快讓讀者者感受一下在在ZigBeee無線網(wǎng)絡(luò)絡(luò)里面的數(shù)據(jù)據(jù)傳輸過程,對對傳輸過程有有個感性的認(rèn)認(rèn)識,然后進進而展開講解解。本節(jié)這是對上述述實驗進行原原理上的討論論,具體的函函數(shù)代碼并沒沒有過多的討討論,目的是是為了使讀者者明白實驗思思路,具體的的代碼只要用用多了自然就就熟悉了。(1) 實驗原原理及流程圖圖 協(xié)調(diào)器流流程圖如圖44.11所示示。 協(xié)調(diào)器上上電后,會按按照編譯時給給定的

25、參數(shù),選選擇合適的信信道、合適的的網(wǎng)絡(luò)號,建建立ZigBBee無線網(wǎng)網(wǎng)絡(luò),這部分分內(nèi)容讀者不不需要寫代碼碼實現(xiàn),ZiigBee協(xié)協(xié)議棧已經(jīng)實實現(xiàn)了。圖4.11 協(xié)協(xié)調(diào)器流程圖圖終端節(jié)點則是加加入網(wǎng)絡(luò)后定定期發(fā)送數(shù)據(jù)據(jù)。流程圖與與協(xié)調(diào)器類似似。 終端節(jié)點點上電后,會會進行硬件電電路的初始化化,然后搜索索是否有ZiigBee無無線網(wǎng)絡(luò),如如果有ZiggBee無線線網(wǎng)絡(luò)再自動動加入(這是是最簡單的情情況,當(dāng)然可可以控制節(jié)點點加入網(wǎng)絡(luò)時時要符合編譯譯時確定的網(wǎng)網(wǎng)絡(luò)號等),然然后發(fā)送數(shù)據(jù)據(jù)到協(xié)調(diào)器,最最后使LEDD閃爍。(2) 數(shù)據(jù)發(fā)發(fā)送 在ziigbee協(xié)協(xié)議棧中進行行數(shù)據(jù)發(fā)送可可以調(diào)用AFF_Dat

26、aaquestt函數(shù)實現(xiàn),該該函數(shù)會調(diào)用用協(xié)議棧里面面與硬件相關(guān)關(guān)的函數(shù)最終終將數(shù)據(jù)通過過天線發(fā)送出出去,這里面面涉及對射頻頻模塊的操作作,例如:打打開發(fā)射機,調(diào)調(diào)整發(fā)射機的的發(fā)送功率等等內(nèi)容,這些些部分協(xié)議棧棧已經(jīng)實現(xiàn)了了,用戶不需需自己寫代碼碼去實現(xiàn),只只需要掌握AAF_DattaRequuest函數(shù)數(shù)的使用方法法即可。 下面簡簡要講解一下下AF_DaataReqquest數(shù)數(shù)據(jù)發(fā)送函數(shù)數(shù)中各個參數(shù)數(shù)的具體含義義。afStatuus_t AF_DaataReqquest(afAdddrTypee_t * dstAAddr, endPoinntDescc_t * srcEEP, uinnt1

27、6 cID, uint16 len, uint8 * buf, uint8 * trannsID,uint8 optioons, uint8 radiuus )afAddrrType_t *dstAAddr該參數(shù)數(shù)包含了目的的節(jié)點的網(wǎng)絡(luò)絡(luò)地址以及發(fā)發(fā)送數(shù)據(jù)的格格式,如廣播播、單播或多多播等。endPoiintDessc_t *srcEPP在ZigBeee無線網(wǎng)絡(luò)絡(luò)中,通過網(wǎng)網(wǎng)絡(luò)地址可以以找到某個具具體的節(jié)點,如如協(xié)調(diào)器的網(wǎng)網(wǎng)絡(luò)地址是00 x00000,但是具體體到某一個節(jié)節(jié)點,還有不不同的端口( endppoint),每個節(jié)點點上最多支持持240個端口口(endppoint)。 節(jié)點與與端口的

28、關(guān)系系如圖4.112所示,每每個節(jié)點上最最多有2400個端口,端端口0是默認(rèn)的ZDDO( ZiigBee Devicce Objject),端端口1-2440用戶可以以自己定義,引引入端口主要要是由于TII實現(xiàn)的ZiggBee協(xié)議議棧中加入了了一個小的操操作系統(tǒng),這這樣,每個節(jié)節(jié)點上的所有有端口共用一一個發(fā)射接接收天線,不不同節(jié)點上的的端口之間可可以進行通信信,如節(jié)點11的端口1可以給節(jié)點點2的端口1發(fā)送控制命命令來點亮LLED,節(jié)點點1的端口1也可以給節(jié)節(jié)點2的端口2發(fā)送命令進進行數(shù)據(jù)采集集操作,但是是節(jié)點2上端口1和端口2的網(wǎng)絡(luò)地址址是相同的,所所以僅僅通過過網(wǎng)絡(luò)地址無無法區(qū)分,所所以,在

29、發(fā)送送數(shù)據(jù)時不但但要指定網(wǎng)絡(luò)絡(luò)地址,還要要指定端口號號。圖4.12 節(jié)節(jié)點與端口應(yīng)此,通過使用用端口號來區(qū)區(qū)分同一節(jié)點點上的不同端端口。uint166 cID這個參數(shù)數(shù)描述的是命命令號,在ZZigBeee協(xié)議里的命命令主要用來來標(biāo)識不同的的控制操作,不不問的命令號號代表了不同同的控制命令令,如節(jié)點11的端口1可以給節(jié)點點2的端口1發(fā)送控制命命令,當(dāng)該命命令的ID為1時表示點亮亮LED,為0時表示熄滅滅LED。因此此,該參數(shù)主主要是為了區(qū)區(qū)別不同的命命令。如終端節(jié)點在發(fā)發(fā)送數(shù)據(jù)時使使用的命令I(lǐng)ID是GENERRICAPPP_CLUSSTERIDD,它的值為為1。uint166 len該參數(shù)標(biāo)標(biāo)志

30、了發(fā)送數(shù)數(shù)據(jù)的長度。uint8 *buf該參數(shù)是是指向發(fā)送數(shù)數(shù)據(jù)緩沖區(qū)的的指針。發(fā)送送數(shù)據(jù)函數(shù)會會從該指針指指向的地址按按照指定的長長度取得發(fā)送送數(shù)據(jù)進行發(fā)發(fā)送。uint8 *trannsID該參數(shù)數(shù)是一個指向向發(fā)送序號的的指針,每次次發(fā)送數(shù)據(jù)時時,發(fā)送序號號會自動加11(協(xié)議棧里里面實現(xiàn)的該該功能),在在接收端可以以通過發(fā)送序序號來判斷是是否丟包,同同時可以計算算出丟包率。 uint8 optioons和uint88 radiius這兩個參參數(shù)取默認(rèn)值值即可。、實驗?zāi)康模?了解解Zigbeee協(xié)議和掌握Ziggbee無線線傳感網(wǎng)開發(fā)發(fā)入門,了解解點對點數(shù)據(jù)據(jù)連接。三、實例測試及及結(jié)果 打開協(xié)

31、協(xié)調(diào)器電源開開關(guān),然后打打開終端節(jié)點點電源開關(guān),等等終端節(jié)點連連接上網(wǎng)絡(luò)后后,每隔5ss,會發(fā)現(xiàn)協(xié)協(xié)調(diào)器的LEED紅燈閃爍爍兩下,這說說明協(xié)調(diào)器已已經(jīng)成功收到到了終端節(jié)點點發(fā)送的“CChinaSSofti”數(shù)數(shù)據(jù)。以上就是點對點點的無線數(shù)據(jù)據(jù)傳輸,讀者者可以自行修修改數(shù)據(jù)發(fā)送送緩沖區(qū)thheMesssageDaata中的數(shù)數(shù)據(jù)來實現(xiàn)類類似功能。實驗截圖:四、實驗心得: 在在整個過程中中,通過軟件件將不同的程程序分別下載載到不同的實實驗器材中,通通過中端節(jié)點點發(fā)送無線信信號給協(xié)調(diào)器器使得協(xié)調(diào)器器中接收到信信號后在顯示示界面中顯示示chinaasoft字字符串,學(xué)習(xí)習(xí)了如何使兩兩個發(fā)送器之之間傳輸

32、無線線信息,當(dāng)中中端節(jié)點關(guān)閉閉后,協(xié)調(diào)器器中如果接收收不到信號就就不顯示字符符。 實驗三可燃性氣體傳感感器實驗1.【實驗?zāi)康牡摹?、了解MQ-2系列氣體體傳感器的使使用方法;2、掌握在Z-STACKK協(xié)議中添加加氣體傳感器器采集數(shù)據(jù)的的方法。3、掌握在Z-STACKK任務(wù)中添加加事件的方式式;4、掌握周期性性事件的處理理方法。 2.【實驗設(shè)備備】1、裝有IARR8.10軟軟件的PC機一臺;2、CC25330仿真器一一臺;3、物聯(lián)網(wǎng)教學(xué)學(xué)實驗平臺試試驗箱一臺。3.【實驗要求求】1、編程要求:按照實驗步步驟實現(xiàn)應(yīng)用用程序2、實現(xiàn)功能:傳感器檢測測到可燃?xì)怏w體后能夠?qū)髨缶⑸蟼鱾鞯骄W(wǎng)關(guān),報報警狀

33、態(tài)解除除后,也能將將狀態(tài)上傳到到網(wǎng)關(guān)。4.【實驗原理理】MQ-2氣體傳傳感器所使用用的氣敏材料料是在清潔空空氣中電導(dǎo)率率較低的二氧氧化錫(SnnO2)。當(dāng)當(dāng)傳感器所處處環(huán)境中存在在可燃?xì)怏w時時,傳感器的的電導(dǎo)率隨空空氣中可燃?xì)鈿怏w濃度的增增加而增大簡簡單的電路即即可將電導(dǎo)率率的變化轉(zhuǎn)換換為與該氣體體濃度相對應(yīng)應(yīng)的輸出信號號。MQ-22氣體傳感器器對液化氣、丙丙烷、氫氣的的靈敏度高,對對天然氣和其其它可燃蒸汽汽的檢測也很很理想。這種種傳感器可檢檢測多種可燃燃性氣體,是是一款適合多多種應(yīng)用的低低成本傳感器器。傳感器如如下圖所示:1、MQ-2氣氣體傳感器主主要特點如下下:在較寬的濃度度范圍內(nèi)對可可燃

34、氣體有良良好的靈敏度度; 對液化氣、丙丙烷、氫氣的的靈敏度較高高; 長壽命、低成成本; 簡單的驅(qū)動電電路即可。 2、MQ-2和和CC25330連接原理理圖如果檢測到煙霧霧報警,P00_0處檢測測到高電平,否否則,保持低低電平。5.【實驗步驟驟】1、編寫基于ZZ-STACCK的MQ-2驅(qū)動動;2、在煙霧傳感感器節(jié)點代碼碼中添加傳感感器采集數(shù)據(jù)據(jù)的事件;3、在協(xié)調(diào)器代代碼中處理接接收到的氣體體傳感器報警警消息;4、分別燒寫網(wǎng)網(wǎng)關(guān)和傳感器器對應(yīng)的代碼碼;5、通過串口助助手觀察煙霧霧報警數(shù)據(jù)。細(xì)步驟:1.先先安裝以下軟軟件:2.安裝好后,在電腦上插插上繼電器和和仿真器,然然后右擊計算算機,點擊管管理,

35、查看設(shè)設(shè)備管理器3將仿真器復(fù)復(fù)位。改一下下代碼再運行行程序:在559行改,-DZZDAPP_CONFIIG_PANN_ID=00 x122a,再運行coorrdinattorEB里里的coorrdinattor.c這這個程序4.拔掉繼電器器,插上煙霧霧彈器,然后后在smokke里運行smooke.c程程序:5.拔掉原先的的設(shè)備,分別別將繼電器和和紅外線插上上電腦,打開開sscomm32,改三三處,顯示、cm3、115200,再關(guān)閉串口,出現(xiàn)以下結(jié)果:6【關(guān)鍵代.碼碼分析】1、 stattic vooid GPPIOIniit(voiid) P0SELL &= 0 x01; /P00_0設(shè)置為通

36、通用IO P0DIRR &= 0 x01; /將P0_0設(shè)置置為輸入模式式 if(SMMOKE_GGPIO = HIGGH) SmookeStaatusNoow = SSMOKE_YES; else SmookeStaatusNoow = SSMOKE_NO;功能:初始化PP0_0口為為輸入模式;入口參數(shù):無;返回值:無。2、#defiine SMOKEE_READD_EVT 0 xx0004上面的宏定義了了煙霧報警采采檢測事件,下下面的代碼段段用來處理報報警事件。 if ( eventts & SSMOKE_READ_EVT ) /查看光光敏電阻狀態(tài)態(tài) SmookeStaatusOlld =

37、 SmookeStaatusNoow; /保存當(dāng)前前狀態(tài) if(SMOKEE_GPIOO = HHIGH) /高電電平,檢測到到報警 SSmokeSStatussNow = SMOKKE_YESS; /更新狀狀態(tài) elsse if(SMOKEE_GPIOO = LLOW) /低電電平,報警消消除 SSmokeSStatussNow = SMOKKE_NO; /更新狀態(tài)態(tài) /如如果當(dāng)前狀態(tài)態(tài)和上一個狀狀態(tài)不一樣,發(fā)送送消息給網(wǎng)關(guān)關(guān) if(SmokeeStatuusNow != SmmokeSttatusOOld) UUART0_Formaat.Commmand = 0 x001; iif(Smo

38、okeStaatusNoow = SMOKEE_YES) UARTT0_Forrmat.DData00 = 00 x01; UARTT0_Forrmat.DData11 = 00 x00; eelse iif(SmookeStaatusNoow = SMOKEE_NO) UARTT0_Forrmat.DData00 = 00 x00; UARTT0_Forrmat.DData11 = 00 x00; oosal_sset_evvent(SeriaalApp_TaskIID, SEERIALAAPP_SEEND_EVVT); /發(fā)送RF消息 /每隔2000ms觸發(fā)一一次檢測 osaal_staa

39、rt_tiimerExx(SeriaalApp_TaskIID, SMMOKE_RREAD_EEVT, 2200); retturn ( evennts SMOKEE_READD_EVT ); 上面的代碼通過過輪詢的方式式,每隔200mms檢測一次次煙霧傳感器器的狀態(tài),如如果狀態(tài)發(fā)生生了變化,將將當(dāng)前的狀態(tài)態(tài)發(fā)送出去;如果沒有變變化,繼續(xù)檢檢測。7.實驗心得:這個實驗實現(xiàn)了了有害氣體檢檢測報警功能能,所涉及的的知識點有:CC25330的GPIO功能能配置;煙霧霧傳感器輸出出信號的調(diào)理理;周期消息息的設(shè)置;串串口收發(fā)函數(shù)數(shù)的使用;事事件的設(shè)置。 實驗四紅外熱釋電傳感感器實驗1.【實驗?zāi)康牡摹?、

40、了解紅外熱熱釋電傳感器器的原理和使使用方法;2、掌握在Z-STACKK協(xié)議中添紅外外熱釋電傳感感器檢測人體體活動的方法法。3、掌握在Z-STACKK任務(wù)中添加加事件的方式式; 4、掌握周期性性事件的處理理方法。 2【實驗設(shè)備備】1、裝有IARR8.10軟軟件的PC機一臺;2、CC25330仿真器一一臺;3、物聯(lián)網(wǎng)教學(xué)學(xué)實驗平臺試試驗箱一臺。3【實驗要求求】1、編程要求:按照實驗步步驟實現(xiàn)應(yīng)用用程序; 2、實現(xiàn)功能:傳感器檢測測到人體活動動后,能都將將狀態(tài)發(fā)送給給網(wǎng)關(guān),靜止止后,也能將將狀態(tài)發(fā)送給給網(wǎng)關(guān)。4.【實驗原理理】在自然界,任何何高于絕對溫溫度(-2773度)時物物體都將產(chǎn)生生紅外光譜,

41、不不同溫度的物物體,其釋放放的紅外能量量的波長是不不一樣的,因因此紅外波長長與溫度的高高低是相關(guān)的的。在紅外探測器中中有兩個關(guān)鍵鍵性的元件,一一個是熱釋電電紅外傳感器器(PIR),它能將波波長為8一12um之間間的紅外信號號變化轉(zhuǎn)變?yōu)闉殡娦盘?,并并能對自然界界中的白光信信號具有抑制制作用,因此此在被動紅外外探測器的警警戒區(qū)內(nèi),當(dāng)當(dāng)無人體移動動時,熱釋電電紅外感應(yīng)器器感應(yīng)到的只只是背景溫度度,當(dāng)人體進進人警戒區(qū),通通過菲涅爾透透鏡,熱釋電電紅外感應(yīng)器器感應(yīng)到的是是人體溫度與與背景溫度的的差異信號,因因此,紅外探探測器的紅外外探測的基本本概念就是感感應(yīng)移動物體體與背景物體體的溫度的差差異。另外一一

42、個器件就是是菲涅爾透鏡鏡,菲涅爾透透鏡有兩種形形式,即折射射式和反射式式。菲涅爾透透鏡作用有兩兩個:一是聚焦作作用,即將熱熱釋的紅外信信號折射(反反射)在PIIR上,第二二個作用是將將警戒區(qū)內(nèi)分分為若干個明明區(qū)和暗區(qū),使使進入警戒區(qū)區(qū)的移動物體體能以溫度變變化的形式在在PIR上產(chǎn)生生變化熱釋紅紅外信號,這這樣PIR就能產(chǎn)產(chǎn)生變化的電電信號。人體體都有恒定的的體溫,一般般在37度,所以以會發(fā)出特定定波長10微米左右右的紅外線,被被動式紅外探探頭就是靠探探測人體發(fā)射射的10微米左右右的紅外線而而進行工作的的。人體發(fā)射射的10微米左右右的紅外線通通過菲泥爾濾濾光片增強后后聚集到紅外外感應(yīng)源上。紅紅外

43、感應(yīng)源通通常采用熱釋釋電元件,這這種元件在接接收到人體紅紅外輻射溫度度發(fā)生變化時時就會失去電電荷平衡,向向外釋放電荷荷,后續(xù)電路路經(jīng)檢測處理理后就能產(chǎn)生生報警信號。 被動式熱釋電紅紅外探頭的優(yōu)優(yōu)缺點: 優(yōu)點:本身不發(fā)發(fā)任何類型的的輻射,器件件功耗很小,隱隱蔽性好。價價格低廉。缺點是:容易易受各種熱源源、光源干擾擾 被動紅外穿穿透力差,人人體的紅外輻輻射容易被遮遮擋,不易被被探頭接收。 易受射頻輻射的干擾。 環(huán)境溫度和人體溫度接近時,探測和靈敏度明顯下降,有時造成短時失靈。 紅外線熱釋電人人體傳感器只只能安裝在室室內(nèi),其誤報報率與安裝位位置和方式有有極大的關(guān)系系.。正確的安安裝應(yīng)滿足下下列條件:

44、紅外線熱釋電電傳感器應(yīng)離離地面22.2米,向向下傾斜155度角。紅外線熱釋釋電傳感器遠遠離空調(diào), 冰箱,火爐爐等空氣溫度度變化敏感的的地方。紅外線熱釋釋電傳感器和和被探測的人人體之間不得得間隔家具、大大型盆景、玻玻璃、窗簾等等其他物 體體。 正常工作時時探測器盡量量使用靈敏度度低檔,降低低誤報。紅外線熱釋釋電傳感器不不能直對門窗窗及有陽光直直射的地方,否否則窗外的熱熱氣流擾動和和人員走 動動會引起誤報報,有條件的的最好把窗簾簾拉上。紅外外線熱釋電傳傳感器也不要要安裝在有強強氣流活動的的地方。安裝探測器器的天花板或或墻要堅固,不不能有晃動或或震動。1、紅外線熱釋釋電傳感器對對人體的敏感感程度還和

45、人人的運動方向向關(guān)系很大。紅紅外線熱釋電電傳感器對于于徑向移動反反應(yīng)最不敏感感, 而對于橫橫切方向 (即與半徑垂垂直的方向)移動則最為為敏感,如下下圖所示: 2、紅外熱釋電電傳感器模塊塊和CC25530連接方方式如下圖所所示。5.【實驗步驟驟】1、在紅外熱釋釋電傳感器節(jié)節(jié)點代碼中添添加傳感器采采集數(shù)據(jù)的事事件;2、在協(xié)調(diào)器代代碼中處理接接收到的紅外外熱釋電傳感感器狀態(tài)消息息;3、分別燒寫網(wǎng)網(wǎng)關(guān)和傳感器器對應(yīng)的代碼碼;4、通過串口助助手觀察人體體活動狀態(tài)數(shù)數(shù)據(jù)。詳細(xì)步驟:1.先安裝以下下軟件:2.安裝好后,在電腦上插插上繼電器和和仿真器,然然后右擊計算算機,點擊管管理,查看設(shè)設(shè)備管理器3將仿真器

46、復(fù)復(fù)位。改一下下代碼再運行行程序:在559行改,-DZZDAPP_CONFIIG_PANN_ID=00 x188aa,實物圖:再運行coorrdinattorEB里里的coorrdinattor.c這這個程序4.拔掉繼電器器,插上紅外外線,然后在在touchh里運行touuch.c程程序:5.拔掉原先的的設(shè)備,分別別將繼電器和和紅外線插上上電腦,打開開sscomm32,改三三處,顯示、cm3、152000,再關(guān)閉串口,出現(xiàn)以下結(jié)果:6.【關(guān)鍵代碼碼分析】1、 stattic vooid GPPIOIniit(voiid) P0SELL &= 0 x01; /PP0_0設(shè)置置為通用IOO P0D

47、IRR &= 0 x01; /將P0_0設(shè)置置為輸入模式式 功能:初始化SSHT10接接口;入口參數(shù):無;返回值:無。2、#defiine DOPPLLER _RREAD_EEVT 0 x00004 上面的宏定義了了紅外熱釋電電傳感器檢測測人體活動的的事件,下面面的代碼段用用來在協(xié)議棧棧中處理狀態(tài)態(tài)檢測流程。 if ( eventts & DDOPPLEER_REAAD_EVTT ) /查看光敏敏電阻狀態(tài) DoppplerSStatussOld = DoppplerSttatusNNow; /保存當(dāng)前前狀態(tài) if(DOPPLLER_GPPIO = HIGHH) DDoppleerStattusNoww = DOOPPLERR_YES; elsse if(DOPPLLER_GPPIO = LOW) DDoppleerStattusNoww = DOOPPLERR_NO; /如果當(dāng)前狀狀態(tài)和上一個個狀態(tài)發(fā)生變變化,發(fā)送消消息給網(wǎng)關(guān) if(DoppllerStaatusNoow != DoppllerStaatusOlld) UUART0_Formaat.Commmand = 0 x001; iif(DoppplerSStatussNow = DOPPPLER_YES) UARTT0_Forrmat.DData00 = 00 x01; UARTT0_Forrmat.DD

溫馨提示

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

評論

0/150

提交評論