版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、20134636 中南林業(yè)科技大學(xué)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告專業(yè)班級(jí):20013級(jí)計(jì)算算機(jī)科學(xué)與技技術(shù)2班授課教師:張艷艷學(xué)生姓名:陸煥煥麗學(xué)生學(xué)號(hào): 2201346636實(shí)驗(yàn)一繼電器閃爍實(shí)驗(yàn)?zāi)康模簩W(xué)會(huì)會(huì)使用修改程程序,使得繼繼電器按要求求閃爍。內(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ù)數(shù)void Innitiall(voidd);/初始化P0口/*/延時(shí)*/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);實(shí)驗(yàn)記錄:修改好的程序如如下: #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ù)數(shù)void Innitiall(voidd);
4、/初始化P0口/*/延時(shí)*/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; 上述代碼實(shí)現(xiàn)的的基本功能如如下:第79行,將收收到的數(shù)據(jù)拷拷貝到緩沖區(qū)區(qū)buf中。第80行,判斷斷接收到的數(shù)數(shù)據(jù)是不是“ChinaSofti”,這里是選擇性判斷了4個(gè)字符。如果是則執(zhí)行第82行,使LED紅燈閃爍2次。注意:上述代碼碼使用到了ZZigBeee協(xié)議棧提供供的函數(shù)HaalLedBBlink(功功能:使某個(gè)個(gè)LED閃爍),直直接使用即可可。這里需要要提醒讀者,使使用協(xié)議棧進(jìn)進(jìn)行應(yīng)用程序序開(kāi)發(fā)時(shí),如如果協(xié)議棧已已經(jīng)提供了相相應(yīng)的函數(shù),則則只需要盡快快掌握該函數(shù)數(shù)的功能及使使用方法即可可,不需要另另外實(shí)現(xiàn)該函函數(shù)。由于我我們的開(kāi)發(fā)板板硬件和TII的原廠開(kāi)發(fā)發(fā)板硬件有所所不同
8、,所以以這里需要對(duì)對(duì)相關(guān)的LEED硬件初始始化做一些調(diào)調(diào)整。具體可可分為以下兩兩步:1.打開(kāi)ZMaain文件夾夾下的ZMaain.c文文件,找到整整個(gè)協(xié)議棧的的主函數(shù)maain()函函數(shù),在855行(通過(guò)Toools-Optioons選項(xiàng)的的Editoor欄中設(shè)置置show line numbeers即可顯顯示行號(hào)):HAL_BBOARD_INIT();鼠標(biāo)雙雙擊這個(gè)函數(shù)數(shù)選定然后右右擊,選擇跳跳轉(zhuǎn)到函數(shù)定定義處,具體體如圖4.77所示:2.還是在haal_boaard_cffg.h這個(gè)個(gè)文件中,我我們將1166行和123行的ACTIIVE_HIIGH改為ACTIIVE_LOOW,這是因因?yàn)槲?/p>
9、們的LLED燈是IO口低電平平觸發(fā)亮。通過(guò)以上兩步,相相關(guān)的LEDD函數(shù)就可以以正常使用了了。到此為止,協(xié)調(diào)調(diào)器的編程已已經(jīng)基本結(jié)束束,下面回憶憶一下上述代代碼所做的基基本工作。(1)刪除了協(xié)協(xié)議棧中的GGeneriicApp.c文件,然然后添加了兩兩個(gè)文件: Coorddinatoor.c和Enddeevice.c。(2)給出了CCoordiinatorr.c的代碼碼,并給出了了部分注釋,其其中 Coorddinatoor.c文件件中很多代碼碼格式是固定定的,讀者只只需要熟悉這這些代碼格式式即可。在Worksppace下面面的下拉列表表框中選擇CCoordiinatorrEB,然后后右鍵單擊
10、EEnddevvice.cc,在彈出的的下拉菜單中中選擇Opttions,如如圖4.8所示。圖4.8 OOptionns選項(xiàng)設(shè)置置在彈出的對(duì)話框框中,選擇EExcludde froom buiild,如圖圖4.9所示。圖4.9 EExcludde froom buiild此時(shí),Endddevicee.c文件會(huì)會(huì)呈灰白顯示示狀態(tài)。同時(shí)時(shí)可以打開(kāi)TTools文文件夾可以看看到f8wEEndevcfg和f8wRoouter.cfg文件件也是呈灰白白顯示狀態(tài),文文件呈灰白顯顯示狀態(tài)說(shuō)明明該文件不參參與編譯,ZZigBeee協(xié)議棧正是是使用這種方方式實(shí)現(xiàn)對(duì)源源文件編譯的的控制。f8w25300.xcl,
11、f8wCoonfig.cfg,f8wCooord.ccfg三個(gè)文文件包含了節(jié)節(jié)點(diǎn)的配置信信息,具體功功能如下:(1)f8w22530.xxcl包含了CC22530單片片機(jī)的鏈接控控制指令(如如定義堆棧大大小、內(nèi)存分分配等),一一般不需要改改動(dòng)。(2)f8wCConfigg.cfg包含含了信道選擇擇,網(wǎng)絡(luò)號(hào)等等有關(guān)的鏈接接命令。例如如:下列代碼碼定義了建立立網(wǎng)絡(luò)的信道道默認(rèn)為111,即從11信道上建建立ZigBBee無(wú)線網(wǎng)網(wǎng)絡(luò),第599行定義了ZiigBee無(wú)無(wú)線網(wǎng)絡(luò)的網(wǎng)網(wǎng)絡(luò)號(hào)。因此如果想從其其他信道上建建立zigbbee網(wǎng)絡(luò)和和修改網(wǎng)絡(luò)號(hào)號(hào),就可以在在此修改。(3)f8wCCoord.cfg定
12、義了了設(shè)備類型前文講到ziggbee無(wú)線線網(wǎng)絡(luò)中的設(shè)設(shè)備類型有協(xié)協(xié)調(diào)器,路由由器和終端節(jié)節(jié)點(diǎn)。下述代代碼就定義了了該設(shè)備具有有協(xié)調(diào)器和路路由器的功能能。下面講解一下下zigbeee協(xié)議棧的的編譯以及下下載。點(diǎn)擊工具欄上的的Make按鈕鈕或者點(diǎn)擊PProjecct下的Makee,即可實(shí)現(xiàn)現(xiàn)zigbeee協(xié)議棧的的編譯。編譯完成后,在在窗口下方會(huì)會(huì)自動(dòng)彈出MMessagge窗口,顯顯示編譯過(guò)程程中的警告和和出錯(cuò)信息。Message窗口如圖4.10所示。圖4.10 Messaage窗口最后,用CC22530仿真真器將開(kāi)發(fā)板板和電腦連接接起來(lái),復(fù)位位一下仿真器器,然后選擇擇工具欄上的的Debugg按鈕
13、或者點(diǎn)點(diǎn)擊Projject下的的Downlload aand Deebug,即即可實(shí)現(xiàn)程序序的下載。(2) 終端節(jié)節(jié)點(diǎn)程序下面介紹一下終終端節(jié)點(diǎn)的程程序設(shè)計(jì)步驟驟。首先,在在Worksspace下下面的下拉列列表框中選擇擇EndDeeviceEEB,然后右右鍵單擊Cooordinnator.c文件,在在彈出的下拉拉菜單中選擇擇Optioons,在彈彈出的對(duì)話框框中,選擇EExcludde froom buiild,此時(shí)時(shí),Coorrdinattor.c文文件會(huì)呈灰白白顯示狀態(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 點(diǎn)對(duì)點(diǎn)數(shù)據(jù)據(jù)傳輸實(shí)驗(yàn)解解析前面實(shí)驗(yàn)實(shí)現(xiàn)了了ZigBeee無(wú)線網(wǎng)絡(luò)絡(luò)中點(diǎn)對(duì)點(diǎn)的的數(shù)據(jù)傳輸,但但是具體流程程并沒(méi)有講解解,主要是想想盡快讓讀者者感受一下在在ZigBeee無(wú)線網(wǎng)絡(luò)絡(luò)里面的數(shù)據(jù)據(jù)傳輸過(guò)程,對(duì)對(duì)傳輸過(guò)程有有個(gè)感性的認(rèn)認(rèn)識(shí),然后進(jìn)進(jìn)而展開(kāi)講解解。本節(jié)這是對(duì)上述述實(shí)驗(yàn)進(jìn)行原原理上的討論論,具體的函函數(shù)代碼并沒(méi)沒(méi)有過(guò)多的討討論,目的是是為了使讀者者明白實(shí)驗(yàn)思思路,具體的的代碼只要用用多了自然就就熟悉了。(1) 實(shí)驗(yàn)原原理及流程圖圖 協(xié)調(diào)器流流程圖如圖44.11所示示。 協(xié)調(diào)器上上電后,會(huì)按按照編譯時(shí)給給定的
25、參數(shù),選選擇合適的信信道、合適的的網(wǎng)絡(luò)號(hào),建建立ZigBBee無(wú)線網(wǎng)網(wǎng)絡(luò),這部分分內(nèi)容讀者不不需要寫(xiě)代碼碼實(shí)現(xiàn),ZiigBee協(xié)協(xié)議棧已經(jīng)實(shí)實(shí)現(xiàn)了。圖4.11 協(xié)協(xié)調(diào)器流程圖圖終端節(jié)點(diǎn)則是加加入網(wǎng)絡(luò)后定定期發(fā)送數(shù)據(jù)據(jù)。流程圖與與協(xié)調(diào)器類似似。 終端節(jié)點(diǎn)點(diǎn)上電后,會(huì)會(huì)進(jìn)行硬件電電路的初始化化,然后搜索索是否有ZiigBee無(wú)無(wú)線網(wǎng)絡(luò),如如果有ZiggBee無(wú)線線網(wǎng)絡(luò)再自動(dòng)動(dòng)加入(這是是最簡(jiǎn)單的情情況,當(dāng)然可可以控制節(jié)點(diǎn)點(diǎn)加入網(wǎng)絡(luò)時(shí)時(shí)要符合編譯譯時(shí)確定的網(wǎng)網(wǎng)絡(luò)號(hào)等),然然后發(fā)送數(shù)據(jù)據(jù)到協(xié)調(diào)器,最最后使LEDD閃爍。(2) 數(shù)據(jù)發(fā)發(fā)送 在ziigbee協(xié)協(xié)議棧中進(jìn)行行數(shù)據(jù)發(fā)送可可以調(diào)用AFF_Dat
26、aaquestt函數(shù)實(shí)現(xiàn),該該函數(shù)會(huì)調(diào)用用協(xié)議棧里面面與硬件相關(guān)關(guān)的函數(shù)最終終將數(shù)據(jù)通過(guò)過(guò)天線發(fā)送出出去,這里面面涉及對(duì)射頻頻模塊的操作作,例如:打打開(kāi)發(fā)射機(jī),調(diào)調(diào)整發(fā)射機(jī)的的發(fā)送功率等等內(nèi)容,這些些部分協(xié)議棧棧已經(jīng)實(shí)現(xiàn)了了,用戶不需需自己寫(xiě)代碼碼去實(shí)現(xiàn),只只需要掌握AAF_DattaRequuest函數(shù)數(shù)的使用方法法即可。 下面簡(jiǎn)簡(jiǎn)要講解一下下AF_DaataReqquest數(shù)數(shù)據(jù)發(fā)送函數(shù)數(shù)中各個(gè)參數(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é)點(diǎn)的網(wǎng)絡(luò)絡(luò)地址以及發(fā)發(fā)送數(shù)據(jù)的格格式,如廣播播、單播或多多播等。endPoiintDessc_t *srcEPP在ZigBeee無(wú)線網(wǎng)絡(luò)絡(luò)中,通過(guò)網(wǎng)網(wǎng)絡(luò)地址可以以找到某個(gè)具具體的節(jié)點(diǎn),如如協(xié)調(diào)器的網(wǎng)網(wǎng)絡(luò)地址是00 x00000,但是具體體到某一個(gè)節(jié)節(jié)點(diǎn),還有不不同的端口( endppoint),每個(gè)節(jié)點(diǎn)點(diǎn)上最多支持持240個(gè)端口口(endppoint)。 節(jié)點(diǎn)與與端口的
28、關(guān)系系如圖4.112所示,每每個(gè)節(jié)點(diǎn)上最最多有2400個(gè)端口,端端口0是默認(rèn)的ZDDO( ZiigBee Devicce Objject),端端口1-2440用戶可以以自己定義,引引入端口主要要是由于TII實(shí)現(xiàn)的ZiggBee協(xié)議議棧中加入了了一個(gè)小的操操作系統(tǒng),這這樣,每個(gè)節(jié)節(jié)點(diǎn)上的所有有端口共用一一個(gè)發(fā)射接接收天線,不不同節(jié)點(diǎn)上的的端口之間可可以進(jìn)行通信信,如節(jié)點(diǎn)11的端口1可以給節(jié)點(diǎn)點(diǎn)2的端口1發(fā)送控制命命令來(lái)點(diǎn)亮LLED,節(jié)點(diǎn)點(diǎn)1的端口1也可以給節(jié)節(jié)點(diǎn)2的端口2發(fā)送命令進(jìn)進(jìn)行數(shù)據(jù)采集集操作,但是是節(jié)點(diǎn)2上端口1和端口2的網(wǎng)絡(luò)地址址是相同的,所所以僅僅通過(guò)過(guò)網(wǎng)絡(luò)地址無(wú)無(wú)法區(qū)分,所所以,在
29、發(fā)送送數(shù)據(jù)時(shí)不但但要指定網(wǎng)絡(luò)絡(luò)地址,還要要指定端口號(hào)號(hào)。圖4.12 節(jié)節(jié)點(diǎn)與端口應(yīng)此,通過(guò)使用用端口號(hào)來(lái)區(qū)區(qū)分同一節(jié)點(diǎn)點(diǎn)上的不同端端口。uint166 cID這個(gè)參數(shù)數(shù)描述的是命命令號(hào),在ZZigBeee協(xié)議里的命命令主要用來(lái)來(lái)標(biāo)識(shí)不同的的控制操作,不不問(wèn)的命令號(hào)號(hào)代表了不同同的控制命令令,如節(jié)點(diǎn)11的端口1可以給節(jié)點(diǎn)點(diǎn)2的端口1發(fā)送控制命命令,當(dāng)該命命令的ID為1時(shí)表示點(diǎn)亮亮LED,為0時(shí)表示熄滅滅LED。因此此,該參數(shù)主主要是為了區(qū)區(qū)別不同的命命令。如終端節(jié)點(diǎn)在發(fā)發(fā)送數(shù)據(jù)時(shí)使使用的命令I(lǐng)ID是GENERRICAPPP_CLUSSTERIDD,它的值為為1。uint166 len該參數(shù)標(biāo)標(biāo)志
30、了發(fā)送數(shù)數(shù)據(jù)的長(zhǎng)度。uint8 *buf該參數(shù)是是指向發(fā)送數(shù)數(shù)據(jù)緩沖區(qū)的的指針。發(fā)送送數(shù)據(jù)函數(shù)會(huì)會(huì)從該指針指指向的地址按按照指定的長(zhǎng)長(zhǎng)度取得發(fā)送送數(shù)據(jù)進(jìn)行發(fā)發(fā)送。uint8 *trannsID該參數(shù)數(shù)是一個(gè)指向向發(fā)送序號(hào)的的指針,每次次發(fā)送數(shù)據(jù)時(shí)時(shí),發(fā)送序號(hào)號(hào)會(huì)自動(dòng)加11(協(xié)議棧里里面實(shí)現(xiàn)的該該功能),在在接收端可以以通過(guò)發(fā)送序序號(hào)來(lái)判斷是是否丟包,同同時(shí)可以計(jì)算算出丟包率。 uint8 optioons和uint88 radiius這兩個(gè)參參數(shù)取默認(rèn)值值即可。、實(shí)驗(yàn)?zāi)康模?了解解Zigbeee協(xié)議和掌握Z(yǔ)iggbee無(wú)線線傳感網(wǎng)開(kāi)發(fā)發(fā)入門(mén),了解解點(diǎn)對(duì)點(diǎn)數(shù)據(jù)據(jù)連接。三、實(shí)例測(cè)試及及結(jié)果 打開(kāi)協(xié)
31、協(xié)調(diào)器電源開(kāi)開(kāi)關(guān),然后打打開(kāi)終端節(jié)點(diǎn)點(diǎn)電源開(kāi)關(guān),等等終端節(jié)點(diǎn)連連接上網(wǎng)絡(luò)后后,每隔5ss,會(huì)發(fā)現(xiàn)協(xié)協(xié)調(diào)器的LEED紅燈閃爍爍兩下,這說(shuō)說(shuō)明協(xié)調(diào)器已已經(jīng)成功收到到了終端節(jié)點(diǎn)點(diǎn)發(fā)送的“CChinaSSofti”數(shù)數(shù)據(jù)。以上就是點(diǎn)對(duì)點(diǎn)點(diǎn)的無(wú)線數(shù)據(jù)據(jù)傳輸,讀者者可以自行修修改數(shù)據(jù)發(fā)送送緩沖區(qū)thheMesssageDaata中的數(shù)數(shù)據(jù)來(lái)實(shí)現(xiàn)類類似功能。實(shí)驗(yàn)截圖:四、實(shí)驗(yàn)心得: 在在整個(gè)過(guò)程中中,通過(guò)軟件件將不同的程程序分別下載載到不同的實(shí)實(shí)驗(yàn)器材中,通通過(guò)中端節(jié)點(diǎn)點(diǎn)發(fā)送無(wú)線信信號(hào)給協(xié)調(diào)器器使得協(xié)調(diào)器器中接收到信信號(hào)后在顯示示界面中顯示示chinaasoft字字符串,學(xué)習(xí)習(xí)了如何使兩兩個(gè)發(fā)送器之之間傳輸
32、無(wú)線線信息,當(dāng)中中端節(jié)點(diǎn)關(guān)閉閉后,協(xié)調(diào)器器中如果接收收不到信號(hào)就就不顯示字符符。 實(shí)驗(yàn)三可燃性氣體傳感感器實(shí)驗(yàn)1.【實(shí)驗(yàn)?zāi)康牡摹?、了解MQ-2系列氣體體傳感器的使使用方法;2、掌握在Z-STACKK協(xié)議中添加加氣體傳感器器采集數(shù)據(jù)的的方法。3、掌握在Z-STACKK任務(wù)中添加加事件的方式式;4、掌握周期性性事件的處理理方法。 2.【實(shí)驗(yàn)設(shè)備備】1、裝有IARR8.10軟軟件的PC機(jī)一臺(tái);2、CC25330仿真器一一臺(tái);3、物聯(lián)網(wǎng)教學(xué)學(xué)實(shí)驗(yàn)平臺(tái)試試驗(yàn)箱一臺(tái)。3.【實(shí)驗(yàn)要求求】1、編程要求:按照實(shí)驗(yàn)步步驟實(shí)現(xiàn)應(yīng)用用程序2、實(shí)現(xiàn)功能:傳感器檢測(cè)測(cè)到可燃?xì)怏w體后能夠?qū)?bào)報(bào)警消息上傳傳到網(wǎng)關(guān),報(bào)報(bào)警狀
33、態(tài)解除除后,也能將將狀態(tài)上傳到到網(wǎng)關(guān)。4.【實(shí)驗(yàn)原理理】MQ-2氣體傳傳感器所使用用的氣敏材料料是在清潔空空氣中電導(dǎo)率率較低的二氧氧化錫(SnnO2)。當(dāng)當(dāng)傳感器所處處環(huán)境中存在在可燃?xì)怏w時(shí)時(shí),傳感器的的電導(dǎo)率隨空空氣中可燃?xì)鈿怏w濃度的增增加而增大簡(jiǎn)簡(jiǎn)單的電路即即可將電導(dǎo)率率的變化轉(zhuǎn)換換為與該氣體體濃度相對(duì)應(yīng)應(yīng)的輸出信號(hào)號(hào)。MQ-22氣體傳感器器對(duì)液化氣、丙丙烷、氫氣的的靈敏度高,對(duì)對(duì)天然氣和其其它可燃蒸汽汽的檢測(cè)也很很理想。這種種傳感器可檢檢測(cè)多種可燃燃性氣體,是是一款適合多多種應(yīng)用的低低成本傳感器器。傳感器如如下圖所示:1、MQ-2氣氣體傳感器主主要特點(diǎn)如下下:在較寬的濃度度范圍內(nèi)對(duì)可可燃
34、氣體有良良好的靈敏度度; 對(duì)液化氣、丙丙烷、氫氣的的靈敏度較高高; 長(zhǎng)壽命、低成成本; 簡(jiǎn)單的驅(qū)動(dòng)電電路即可。 2、MQ-2和和CC25330連接原理理圖如果檢測(cè)到煙霧霧報(bào)警,P00_0處檢測(cè)測(cè)到高電平,否否則,保持低低電平。5.【實(shí)驗(yàn)步驟驟】1、編寫(xiě)基于ZZ-STACCK的MQ-2驅(qū)動(dòng)動(dòng);2、在煙霧傳感感器節(jié)點(diǎn)代碼碼中添加傳感感器采集數(shù)據(jù)據(jù)的事件;3、在協(xié)調(diào)器代代碼中處理接接收到的氣體體傳感器報(bào)警警消息;4、分別燒寫(xiě)網(wǎng)網(wǎng)關(guān)和傳感器器對(duì)應(yīng)的代碼碼;5、通過(guò)串口助助手觀察煙霧霧報(bào)警數(shù)據(jù)。細(xì)步驟:1.先先安裝以下軟軟件:2.安裝好后,在電腦上插插上繼電器和和仿真器,然然后右擊計(jì)算算機(jī),點(diǎn)擊管管理,
35、查看設(shè)設(shè)備管理器3將仿真器復(fù)復(fù)位。改一下下代碼再運(yùn)行行程序:在559行改,-DZZDAPP_CONFIIG_PANN_ID=00 x122a,再運(yùn)行coorrdinattorEB里里的coorrdinattor.c這這個(gè)程序4.拔掉繼電器器,插上煙霧霧彈器,然后后在smokke里運(yùn)行smooke.c程程序:5.拔掉原先的的設(shè)備,分別別將繼電器和和紅外線插上上電腦,打開(kāi)開(kāi)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ù):無(wú);返回值:無(wú)。2、#defiine SMOKEE_READD_EVT 0 xx0004上面的宏定義了了煙霧報(bào)警采采檢測(cè)事件,下下面的代碼段段用來(lái)處理報(bào)報(bào)警事件。 if ( eventts & SSMOKE_READ_EVT ) /查看光光敏電阻狀態(tài)態(tài) SmookeStaatusOlld =
37、 SmookeStaatusNoow; /保存當(dāng)前前狀態(tài) if(SMOKEE_GPIOO = HHIGH) /高電電平,檢測(cè)到到報(bào)警 SSmokeSStatussNow = SMOKKE_YESS; /更新?tīng)顮顟B(tài) elsse if(SMOKEE_GPIOO = LLOW) /低電電平,報(bào)警消消除 SSmokeSStatussNow = SMOKKE_NO; /更新?tīng)顟B(tài)態(tài) /如如果當(dāng)前狀態(tài)態(tài)和上一個(gè)狀狀態(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ā)一一次檢測(cè) osaal_staa
39、rt_tiimerExx(SeriaalApp_TaskIID, SMMOKE_RREAD_EEVT, 2200); retturn ( evennts SMOKEE_READD_EVT ); 上面的代碼通過(guò)過(guò)輪詢的方式式,每隔200mms檢測(cè)一次次煙霧傳感器器的狀態(tài),如如果狀態(tài)發(fā)生生了變化,將將當(dāng)前的狀態(tài)態(tài)發(fā)送出去;如果沒(méi)有變變化,繼續(xù)檢檢測(cè)。7.實(shí)驗(yàn)心得:這個(gè)實(shí)驗(yàn)實(shí)現(xiàn)了了有害氣體檢檢測(cè)報(bào)警功能能,所涉及的的知識(shí)點(diǎn)有:CC25330的GPIO功能能配置;煙霧霧傳感器輸出出信號(hào)的調(diào)理理;周期消息息的設(shè)置;串串口收發(fā)函數(shù)數(shù)的使用;事事件的設(shè)置。 實(shí)驗(yàn)四紅外熱釋電傳感感器實(shí)驗(yàn)1.【實(shí)驗(yàn)?zāi)康牡摹?、
40、了解紅外熱熱釋電傳感器器的原理和使使用方法;2、掌握在Z-STACKK協(xié)議中添紅外外熱釋電傳感感器檢測(cè)人體體活動(dòng)的方法法。3、掌握在Z-STACKK任務(wù)中添加加事件的方式式; 4、掌握周期性性事件的處理理方法。 2【實(shí)驗(yàn)設(shè)備備】1、裝有IARR8.10軟軟件的PC機(jī)一臺(tái);2、CC25330仿真器一一臺(tái);3、物聯(lián)網(wǎng)教學(xué)學(xué)實(shí)驗(yàn)平臺(tái)試試驗(yàn)箱一臺(tái)。3【實(shí)驗(yàn)要求求】1、編程要求:按照實(shí)驗(yàn)步步驟實(shí)現(xiàn)應(yīng)用用程序; 2、實(shí)現(xiàn)功能:傳感器檢測(cè)測(cè)到人體活動(dòng)動(dòng)后,能都將將狀態(tài)發(fā)送給給網(wǎng)關(guān),靜止止后,也能將將狀態(tài)發(fā)送給給網(wǎng)關(guān)。4.【實(shí)驗(yàn)原理理】在自然界,任何何高于絕對(duì)溫溫度(-2773度)時(shí)物物體都將產(chǎn)生生紅外光譜,
41、不不同溫度的物物體,其釋放放的紅外能量量的波長(zhǎng)是不不一樣的,因因此紅外波長(zhǎng)長(zhǎng)與溫度的高高低是相關(guān)的的。在紅外探測(cè)器中中有兩個(gè)關(guān)鍵鍵性的元件,一一個(gè)是熱釋電電紅外傳感器器(PIR),它能將波波長(zhǎng)為8一12um之間間的紅外信號(hào)號(hào)變化轉(zhuǎn)變?yōu)闉殡娦盘?hào),并并能對(duì)自然界界中的白光信信號(hào)具有抑制制作用,因此此在被動(dòng)紅外外探測(cè)器的警警戒區(qū)內(nèi),當(dāng)當(dāng)無(wú)人體移動(dòng)動(dòng)時(shí),熱釋電電紅外感應(yīng)器器感應(yīng)到的只只是背景溫度度,當(dāng)人體進(jìn)進(jìn)人警戒區(qū),通通過(guò)菲涅爾透透鏡,熱釋電電紅外感應(yīng)器器感應(yīng)到的是是人體溫度與與背景溫度的的差異信號(hào),因因此,紅外探探測(cè)器的紅外外探測(cè)的基本本概念就是感感應(yīng)移動(dòng)物體體與背景物體體的溫度的差差異。另外一一
42、個(gè)器件就是是菲涅爾透鏡鏡,菲涅爾透透鏡有兩種形形式,即折射射式和反射式式。菲涅爾透透鏡作用有兩兩個(gè):一是聚焦作作用,即將熱熱釋的紅外信信號(hào)折射(反反射)在PIIR上,第二二個(gè)作用是將將警戒區(qū)內(nèi)分分為若干個(gè)明明區(qū)和暗區(qū),使使進(jìn)入警戒區(qū)區(qū)的移動(dòng)物體體能以溫度變變化的形式在在PIR上產(chǎn)生生變化熱釋紅紅外信號(hào),這這樣PIR就能產(chǎn)產(chǎn)生變化的電電信號(hào)。人體體都有恒定的的體溫,一般般在37度,所以以會(huì)發(fā)出特定定波長(zhǎng)10微米左右右的紅外線,被被動(dòng)式紅外探探頭就是靠探探測(cè)人體發(fā)射射的10微米左右右的紅外線而而進(jìn)行工作的的。人體發(fā)射射的10微米左右右的紅外線通通過(guò)菲泥爾濾濾光片增強(qiáng)后后聚集到紅外外感應(yīng)源上。紅紅外
43、感應(yīng)源通通常采用熱釋釋電元件,這這種元件在接接收到人體紅紅外輻射溫度度發(fā)生變化時(shí)時(shí)就會(huì)失去電電荷平衡,向向外釋放電荷荷,后續(xù)電路路經(jīng)檢測(cè)處理理后就能產(chǎn)生生報(bào)警信號(hào)。 被動(dòng)式熱釋電紅紅外探頭的優(yōu)優(yōu)缺點(diǎn): 優(yōu)點(diǎn):本身不發(fā)發(fā)任何類型的的輻射,器件件功耗很小,隱隱蔽性好。價(jià)價(jià)格低廉。缺點(diǎn)是:容易易受各種熱源源、光源干擾擾 被動(dòng)紅外穿穿透力差,人人體的紅外輻輻射容易被遮遮擋,不易被被探頭接收。 易受射頻輻射的干擾。 環(huán)境溫度和人體溫度接近時(shí),探測(cè)和靈敏度明顯下降,有時(shí)造成短時(shí)失靈。 紅外線熱釋電人人體傳感器只只能安裝在室室內(nèi),其誤報(bào)報(bào)率與安裝位位置和方式有有極大的關(guān)系系.。正確的安安裝應(yīng)滿足下下列條件:
44、紅外線熱釋電電傳感器應(yīng)離離地面22.2米,向向下傾斜155度角。紅外線熱釋釋電傳感器遠(yuǎn)遠(yuǎn)離空調(diào), 冰箱,火爐爐等空氣溫度度變化敏感的的地方。紅外線熱釋釋電傳感器和和被探測(cè)的人人體之間不得得間隔家具、大大型盆景、玻玻璃、窗簾等等其他物 體體。 正常工作時(shí)時(shí)探測(cè)器盡量量使用靈敏度度低檔,降低低誤報(bào)。紅外線熱釋釋電傳感器不不能直對(duì)門(mén)窗窗及有陽(yáng)光直直射的地方,否否則窗外的熱熱氣流擾動(dòng)和和人員走 動(dòng)動(dòng)會(huì)引起誤報(bào)報(bào),有條件的的最好把窗簾簾拉上。紅外外線熱釋電傳傳感器也不要要安裝在有強(qiáng)強(qiáng)氣流活動(dòng)的的地方。安裝探測(cè)器器的天花板或或墻要堅(jiān)固,不不能有晃動(dòng)或或震動(dòng)。1、紅外線熱釋釋電傳感器對(duì)對(duì)人體的敏感感程度還和
45、人人的運(yùn)動(dòng)方向向關(guān)系很大。紅紅外線熱釋電電傳感器對(duì)于于徑向移動(dòng)反反應(yīng)最不敏感感, 而對(duì)于橫橫切方向 (即與半徑垂垂直的方向)移動(dòng)則最為為敏感,如下下圖所示: 2、紅外熱釋電電傳感器模塊塊和CC25530連接方方式如下圖所所示。5.【實(shí)驗(yàn)步驟驟】1、在紅外熱釋釋電傳感器節(jié)節(jié)點(diǎn)代碼中添添加傳感器采采集數(shù)據(jù)的事事件;2、在協(xié)調(diào)器代代碼中處理接接收到的紅外外熱釋電傳感感器狀態(tài)消息息;3、分別燒寫(xiě)網(wǎng)網(wǎng)關(guān)和傳感器器對(duì)應(yīng)的代碼碼;4、通過(guò)串口助助手觀察人體體活動(dòng)狀態(tài)數(shù)數(shù)據(jù)。詳細(xì)步驟:1.先安裝以下下軟件:2.安裝好后,在電腦上插插上繼電器和和仿真器,然然后右擊計(jì)算算機(jī),點(diǎn)擊管管理,查看設(shè)設(shè)備管理器3將仿真器
46、復(fù)復(fù)位。改一下下代碼再運(yùn)行行程序:在559行改,-DZZDAPP_CONFIIG_PANN_ID=00 x188aa,實(shí)物圖:再運(yùn)行coorrdinattorEB里里的coorrdinattor.c這這個(gè)程序4.拔掉繼電器器,插上紅外外線,然后在在touchh里運(yùn)行touuch.c程程序:5.拔掉原先的的設(shè)備,分別別將繼電器和和紅外線插上上電腦,打開(kāi)開(kāi)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ù):無(wú);返回值:無(wú)。2、#defiine DOPPLLER _RREAD_EEVT 0 x00004 上面的宏定義了了紅外熱釋電電傳感器檢測(cè)測(cè)人體活動(dòng)的的事件,下面面的代碼段用用來(lái)在協(xié)議棧棧中處理狀態(tài)態(tài)檢測(cè)流程。 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)和上一個(gè)個(gè)狀態(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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年統(tǒng)編版九年級(jí)生物下冊(cè)月考試卷
- 2025年度無(wú)人機(jī)駕駛員派遣及培訓(xùn)合同4篇
- 二零二五年度城市綜合體幕墻設(shè)計(jì)施工合同4篇
- 二零二五年度排水溝施工環(huán)保評(píng)估與執(zhí)行合同4篇
- 2025年綠色環(huán)保材料出口貿(mào)易合同模板2篇
- 2025版北京住宅二次抵押貸款合同操作指南4篇
- 2025年度城市商業(yè)圈門(mén)面房租賃及商業(yè)運(yùn)營(yíng)合同4篇
- 2025年度離婚后子女贍養(yǎng)費(fèi)調(diào)整起訴合同
- 二零二五年度充電樁充電站安全教育與培訓(xùn)合同2篇
- 二零二五年度農(nóng)產(chǎn)品電商平臺(tái)技術(shù)開(kāi)發(fā)合同11篇
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語(yǔ)期末試卷(含答案無(wú)聽(tīng)力原文無(wú)音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛(ài)指南
- 腰椎間盤(pán)的診斷證明書(shū)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)七 裂變傳播
- 單級(jí)倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論