物联网实验报告_第1页
物联网实验报告_第2页
物联网实验报告_第3页
物联网实验报告_第4页
物联网实验报告_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、20134636 中南林业科技大学课程设计实验报告专业班级:20013级计算算机科学与技技术2班授课教师:张艳艳学生姓名:陆焕焕丽学生学号: 2201346636实验一继电器闪烁实验目的:学会会使用修改程程序,使得继继电器按要求求闪烁。内容:修改以下下程序,使得得继电器的绿绿灯闪一下,红红灯闪五下#includde typedeff unsiigned int uintt ;typedeff unsiigned char ucharr;/定义控制灯灯的端口#definee RLEDD P1_00/定义LED11为P10口控制制#definee YLEDD P1_11/定义LED22为P11口控

2、制制/函数声明void Deelay(uuint);/延时函数数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灭/*/主函数*/void maain(vooid) Inittial();/调用初始始化函数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口控制制/函数声明void Deelay(uuint);/延时函数数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灭/*/主函数*/void maain(vooid)uint ii; Iniitial();/调用初始始化函数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; 上述代码实现的的基本功能如如下:第79行,将收收到的数据拷拷贝到缓冲区区buf中。第80行,判断断接收到的数数据是不是“ChinaSofti”,这里是选择性判断了4个字符。如果是则执行第82行,使LED红灯闪烁2次。注意:上述代码码使用到了ZZigBeee协议栈提供供的函数HaalLedBBlink(功功能:使某个个LED闪烁),直直接使用即可可。这里需要要提醒读者,使使用协议栈进进行应用程序序开发时,如如果协议栈已已经提供了相相应的函数,则则只需要尽快快掌握该函数数的功能及使使用方法即可可,不需要另另外实现该函函数。由于我我们的开发板板硬件和TII的原厂开发发板硬件有所所不同

8、,所以以这里需要对对相关的LEED硬件初始始化做一些调调整。具体可可分为以下两两步:1.打开ZMaain文件夹夹下的ZMaain.c文文件,找到整整个协议栈的的主函数maain()函函数,在855行(通过Toools-Optioons选项的的Editoor栏中设置置show line numbeers即可显显示行号):HAL_BBOARD_INIT();鼠标双双击这个函数数选定然后右右击,选择跳跳转到函数定定义处,具体体如图4.77所示:2.还是在haal_boaard_cffg.h这个个文件中,我我们将1166行和123行的ACTIIVE_HIIGH改为ACTIIVE_LOOW,这是因因为我

9、们的LLED灯是IO口低电平平触发亮。通过以上两步,相相关的LEDD函数就可以以正常使用了了。到此为止,协调调器的编程已已经基本结束束,下面回忆忆一下上述代代码所做的基基本工作。(1)删除了协协议栈中的GGeneriicApp.c文件,然然后添加了两两个文件: Coorddinatoor.c和Enddeevice.c。(2)给出了CCoordiinatorr.c的代码码,并给出了了部分注释,其其中 Coorddinatoor.c文件件中很多代码码格式是固定定的,读者只只需要熟悉这这些代码格式式即可。在Worksppace下面面的下拉列表表框中选择CCoordiinatorrEB,然后后右键单击

10、EEnddevvice.cc,在弹出的的下拉菜单中中选择Opttions,如如图4.8所示。图4.8 OOptionns选项设置置在弹出的对话框框中,选择EExcludde froom buiild,如图图4.9所示。图4.9 EExcludde froom buiild此时,Endddevicee.c文件会会呈灰白显示示状态。同时时可以打开TTools文文件夹可以看看到f8wEEndevcfg和f8wRoouter.cfg文件件也是呈灰白白显示状态,文文件呈灰白显显示状态说明明该文件不参参与编译,ZZigBeee协议栈正是是使用这种方方式实现对源源文件编译的的控制。f8w25300.xcl,

11、f8wCoonfig.cfg,f8wCooord.ccfg三个文文件包含了节节点的配置信信息,具体功功能如下:(1)f8w22530.xxcl包含了CC22530单片片机的链接控控制指令(如如定义堆栈大大小、内存分分配等),一一般不需要改改动。(2)f8wCConfigg.cfg包含含了信道选择择,网络号等等有关的链接接命令。例如如:下列代码码定义了建立立网络的信道道默认为111,即从11信道上建建立ZigBBee无线网网络,第599行定义了ZiigBee无无线网络的网网络号。因此如果想从其其他信道上建建立zigbbee网络和和修改网络号号,就可以在在此修改。(3)f8wCCoord.cfg定

12、义了了设备类型前文讲到ziggbee无线线网络中的设设备类型有协协调器,路由由器和终端节节点。下述代代码就定义了了该设备具有有协调器和路路由器的功能能。下面讲解一下下zigbeee协议栈的的编译以及下下载。点击工具栏上的的Make按钮钮或者点击PProjecct下的Makee,即可实现现zigbeee协议栈的的编译。编译完成后,在在窗口下方会会自动弹出MMessagge窗口,显显示编译过程程中的警告和和出错信息。Message窗口如图4.10所示。图4.10 Messaage窗口最后,用CC22530仿真真器将开发板板和电脑连接接起来,复位位一下仿真器器,然后选择择工具栏上的的Debugg按钮

13、或者点点击Projject下的的Downlload aand Deebug,即即可实现程序序的下载。(2) 终端节节点程序下面介绍一下终终端节点的程程序设计步骤骤。首先,在在Worksspace下下面的下拉列列表框中选择择EndDeeviceEEB,然后右右键单击Cooordinnator.c文件,在在弹出的下拉拉菜单中选择择Optioons,在弹弹出的对话框框中,选择EExcludde froom buiild,此时时,Coorrdinattor.c文文件会呈灰白白显示状态。在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 点对点数据据传输实验解解析前面实验实现了了ZigBeee无线网络络中点对点的的数据传输,但但是具体流程程并没有讲解解,主要是想想尽快让读者者感受一下在在ZigBeee无线网络络里面的数据据传输过程,对对传输过程有有个感性的认认识,然后进进而展开讲解解。本节这是对上述述实验进行原原理上的讨论论,具体的函函数代码并没没有过多的讨讨论,目的是是为了使读者者明白实验思思路,具体的的代码只要用用多了自然就就熟悉了。(1) 实验原原理及流程图图 协调器流流程图如图44.11所示示。 协调器上上电后,会按按照编译时给给定的

25、参数,选选择合适的信信道、合适的的网络号,建建立ZigBBee无线网网络,这部分分内容读者不不需要写代码码实现,ZiigBee协协议栈已经实实现了。图4.11 协协调器流程图图终端节点则是加加入网络后定定期发送数据据。流程图与与协调器类似似。 终端节点点上电后,会会进行硬件电电路的初始化化,然后搜索索是否有ZiigBee无无线网络,如如果有ZiggBee无线线网络再自动动加入(这是是最简单的情情况,当然可可以控制节点点加入网络时时要符合编译译时确定的网网络号等),然然后发送数据据到协调器,最最后使LEDD闪烁。(2) 数据发发送 在ziigbee协协议栈中进行行数据发送可可以调用AFF_Dat

26、aaquestt函数实现,该该函数会调用用协议栈里面面与硬件相关关的函数最终终将数据通过过天线发送出出去,这里面面涉及对射频频模块的操作作,例如:打打开发射机,调调整发射机的的发送功率等等内容,这些些部分协议栈栈已经实现了了,用户不需需自己写代码码去实现,只只需要掌握AAF_DattaRequuest函数数的使用方法法即可。 下面简简要讲解一下下AF_DaataReqquest数数据发送函数数中各个参数数的具体含义义。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该参数数包含了目的的节点的网络络地址以及发发送数据的格格式,如广播播、单播或多多播等。endPoiintDessc_t *srcEPP在ZigBeee无线网络络中,通过网网络地址可以以找到某个具具体的节点,如如协调器的网网络地址是00 x00000,但是具体体到某一个节节点,还有不不同的端口( endppoint),每个节点点上最多支持持240个端口口(endppoint)。 节点与与端口的

28、关系系如图4.112所示,每每个节点上最最多有2400个端口,端端口0是默认的ZDDO( ZiigBee Devicce Objject),端端口1-2440用户可以以自己定义,引引入端口主要要是由于TII实现的ZiggBee协议议栈中加入了了一个小的操操作系统,这这样,每个节节点上的所有有端口共用一一个发射接接收天线,不不同节点上的的端口之间可可以进行通信信,如节点11的端口1可以给节点点2的端口1发送控制命命令来点亮LLED,节点点1的端口1也可以给节节点2的端口2发送命令进进行数据采集集操作,但是是节点2上端口1和端口2的网络地址址是相同的,所所以仅仅通过过网络地址无无法区分,所所以,在

29、发送送数据时不但但要指定网络络地址,还要要指定端口号号。图4.12 节节点与端口应此,通过使用用端口号来区区分同一节点点上的不同端端口。uint166 cID这个参数数描述的是命命令号,在ZZigBeee协议里的命命令主要用来来标识不同的的控制操作,不不问的命令号号代表了不同同的控制命令令,如节点11的端口1可以给节点点2的端口1发送控制命命令,当该命命令的ID为1时表示点亮亮LED,为0时表示熄灭灭LED。因此此,该参数主主要是为了区区别不同的命命令。如终端节点在发发送数据时使使用的命令IID是GENERRICAPPP_CLUSSTERIDD,它的值为为1。uint166 len该参数标标志

30、了发送数数据的长度。uint8 *buf该参数是是指向发送数数据缓冲区的的指针。发送送数据函数会会从该指针指指向的地址按按照指定的长长度取得发送送数据进行发发送。uint8 *trannsID该参数数是一个指向向发送序号的的指针,每次次发送数据时时,发送序号号会自动加11(协议栈里里面实现的该该功能),在在接收端可以以通过发送序序号来判断是是否丢包,同同时可以计算算出丢包率。 uint8 optioons和uint88 radiius这两个参参数取默认值值即可。、实验目的: 了解解Zigbeee协议和掌握Ziggbee无线线传感网开发发入门,了解解点对点数据据连接。三、实例测试及及结果 打开协

31、协调器电源开开关,然后打打开终端节点点电源开关,等等终端节点连连接上网络后后,每隔5ss,会发现协协调器的LEED红灯闪烁烁两下,这说说明协调器已已经成功收到到了终端节点点发送的“CChinaSSofti”数数据。以上就是点对点点的无线数据据传输,读者者可以自行修修改数据发送送缓冲区thheMesssageDaata中的数数据来实现类类似功能。实验截图:四、实验心得: 在在整个过程中中,通过软件件将不同的程程序分别下载载到不同的实实验器材中,通通过中端节点点发送无线信信号给协调器器使得协调器器中接收到信信号后在显示示界面中显示示chinaasoft字字符串,学习习了如何使两两个发送器之之间传输

32、无线线信息,当中中端节点关闭闭后,协调器器中如果接收收不到信号就就不显示字符符。 实验三可燃性气体传感感器实验1.【实验目的的】1、了解MQ-2系列气体体传感器的使使用方法;2、掌握在Z-STACKK协议中添加加气体传感器器采集数据的的方法。3、掌握在Z-STACKK任务中添加加事件的方式式;4、掌握周期性性事件的处理理方法。 2.【实验设备备】1、装有IARR8.10软软件的PC机一台;2、CC25330仿真器一一台;3、物联网教学学实验平台试试验箱一台。3.【实验要求求】1、编程要求:按照实验步步骤实现应用用程序2、实现功能:传感器检测测到可燃气体体后能够将报报警消息上传传到网关,报报警状

33、态解除除后,也能将将状态上传到到网关。4.【实验原理理】MQ-2气体传传感器所使用用的气敏材料料是在清洁空空气中电导率率较低的二氧氧化锡(SnnO2)。当当传感器所处处环境中存在在可燃气体时时,传感器的的电导率随空空气中可燃气气体浓度的增增加而增大简简单的电路即即可将电导率率的变化转换换为与该气体体浓度相对应应的输出信号号。MQ-22气体传感器器对液化气、丙丙烷、氢气的的灵敏度高,对对天然气和其其它可燃蒸汽汽的检测也很很理想。这种种传感器可检检测多种可燃燃性气体,是是一款适合多多种应用的低低成本传感器器。传感器如如下图所示:1、MQ-2气气体传感器主主要特点如下下:在较宽的浓度度范围内对可可燃

34、气体有良良好的灵敏度度; 对液化气、丙丙烷、氢气的的灵敏度较高高; 长寿命、低成成本; 简单的驱动电电路即可。 2、MQ-2和和CC25330连接原理理图如果检测到烟雾雾报警,P00_0处检测测到高电平,否否则,保持低低电平。5.【实验步骤骤】1、编写基于ZZ-STACCK的MQ-2驱动动;2、在烟雾传感感器节点代码码中添加传感感器采集数据据的事件;3、在协调器代代码中处理接接收到的气体体传感器报警警消息;4、分别烧写网网关和传感器器对应的代码码;5、通过串口助助手观察烟雾雾报警数据。细步骤:1.先先安装以下软软件:2.安装好后,在电脑上插插上继电器和和仿真器,然然后右击计算算机,点击管管理,

35、查看设设备管理器3将仿真器复复位。改一下下代码再运行行程序:在559行改,-DZZDAPP_CONFIIG_PANN_ID=00 x122a,再运行coorrdinattorEB里里的coorrdinattor.c这这个程序4.拔掉继电器器,插上烟雾雾弹器,然后后在smokke里运行smooke.c程程序:5.拔掉原先的的设备,分别别将继电器和和红外线插上上电脑,打开开sscomm32,改三三处,显示、cm3、115200,再关闭串口,出现以下结果:6【关键代.码码分析】1、 stattic vooid GPPIOIniit(voiid) P0SELL &= 0 x01; /P00_0设置为通

36、通用IO P0DIRR &= 0 x01; /将P0_0设置置为输入模式式 if(SMMOKE_GGPIO = HIGGH) SmookeStaatusNoow = SSMOKE_YES; else SmookeStaatusNoow = SSMOKE_NO;功能:初始化PP0_0口为为输入模式;入口参数:无;返回值:无。2、#defiine SMOKEE_READD_EVT 0 xx0004上面的宏定义了了烟雾报警采采检测事件,下下面的代码段段用来处理报报警事件。 if ( eventts & SSMOKE_READ_EVT ) /查看光光敏电阻状态态 SmookeStaatusOlld =

37、 SmookeStaatusNoow; /保存当前前状态 if(SMOKEE_GPIOO = HHIGH) /高电电平,检测到到报警 SSmokeSStatussNow = SMOKKE_YESS; /更新状状态 elsse if(SMOKEE_GPIOO = LLOW) /低电电平,报警消消除 SSmokeSStatussNow = SMOKKE_NO; /更新状态态 /如如果当前状态态和上一个状状态不一样,发送送消息给网关关 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); /发送RF消息 /每隔2000ms触发一一次检测 osaal_staa

39、rt_tiimerExx(SeriaalApp_TaskIID, SMMOKE_RREAD_EEVT, 2200); retturn ( evennts SMOKEE_READD_EVT ); 上面的代码通过过轮询的方式式,每隔200mms检测一次次烟雾传感器器的状态,如如果状态发生生了变化,将将当前的状态态发送出去;如果没有变变化,继续检检测。7.实验心得:这个实验实现了了有害气体检检测报警功能能,所涉及的的知识点有:CC25330的GPIO功能能配置;烟雾雾传感器输出出信号的调理理;周期消息息的设置;串串口收发函数数的使用;事事件的设置。 实验四红外热释电传感感器实验1.【实验目的的】1、

40、了解红外热热释电传感器器的原理和使使用方法;2、掌握在Z-STACKK协议中添红外外热释电传感感器检测人体体活动的方法法。3、掌握在Z-STACKK任务中添加加事件的方式式; 4、掌握周期性性事件的处理理方法。 2【实验设备备】1、装有IARR8.10软软件的PC机一台;2、CC25330仿真器一一台;3、物联网教学学实验平台试试验箱一台。3【实验要求求】1、编程要求:按照实验步步骤实现应用用程序; 2、实现功能:传感器检测测到人体活动动后,能都将将状态发送给给网关,静止止后,也能将将状态发送给给网关。4.【实验原理理】在自然界,任何何高于绝对温温度(-2773度)时物物体都将产生生红外光谱,

41、不不同温度的物物体,其释放放的红外能量量的波长是不不一样的,因因此红外波长长与温度的高高低是相关的的。在红外探测器中中有两个关键键性的元件,一一个是热释电电红外传感器器(PIR),它能将波波长为8一12um之间间的红外信号号变化转变为为电信号,并并能对自然界界中的白光信信号具有抑制制作用,因此此在被动红外外探测器的警警戒区内,当当无人体移动动时,热释电电红外感应器器感应到的只只是背景温度度,当人体进进人警戒区,通通过菲涅尔透透镜,热释电电红外感应器器感应到的是是人体温度与与背景温度的的差异信号,因因此,红外探探测器的红外外探测的基本本概念就是感感应移动物体体与背景物体体的温度的差差异。另外一一

42、个器件就是是菲涅尔透镜镜,菲涅尔透透镜有两种形形式,即折射射式和反射式式。菲涅尔透透镜作用有两两个:一是聚焦作作用,即将热热释的红外信信号折射(反反射)在PIIR上,第二二个作用是将将警戒区内分分为若干个明明区和暗区,使使进入警戒区区的移动物体体能以温度变变化的形式在在PIR上产生生变化热释红红外信号,这这样PIR就能产产生变化的电电信号。人体体都有恒定的的体温,一般般在37度,所以以会发出特定定波长10微米左右右的红外线,被被动式红外探探头就是靠探探测人体发射射的10微米左右右的红外线而而进行工作的的。人体发射射的10微米左右右的红外线通通过菲泥尔滤滤光片增强后后聚集到红外外感应源上。红红外

43、感应源通通常采用热释释电元件,这这种元件在接接收到人体红红外辐射温度度发生变化时时就会失去电电荷平衡,向向外释放电荷荷,后续电路路经检测处理理后就能产生生报警信号。 被动式热释电红红外探头的优优缺点: 优点:本身不发发任何类型的的辐射,器件件功耗很小,隐隐蔽性好。价价格低廉。缺点是:容易易受各种热源源、光源干扰扰 被动红外穿穿透力差,人人体的红外辐辐射容易被遮遮挡,不易被被探头接收。 易受射频辐射的干扰。 环境温度和人体温度接近时,探测和灵敏度明显下降,有时造成短时失灵。 红外线热释电人人体传感器只只能安装在室室内,其误报报率与安装位位置和方式有有极大的关系系.。正确的安安装应满足下下列条件:

44、红外线热释电电传感器应离离地面22.2米,向向下倾斜155度角。红外线热释释电传感器远远离空调, 冰箱,火炉炉等空气温度度变化敏感的的地方。红外线热释释电传感器和和被探测的人人体之间不得得间隔家具、大大型盆景、玻玻璃、窗帘等等其他物 体体。 正常工作时时探测器尽量量使用灵敏度度低档,降低低误报。红外线热释释电传感器不不能直对门窗窗及有阳光直直射的地方,否否则窗外的热热气流扰动和和人员走 动动会引起误报报,有条件的的最好把窗帘帘拉上。红外外线热释电传传感器也不要要安装在有强强气流活动的的地方。安装探测器器的天花板或或墙要坚固,不不能有晃动或或震动。1、红外线热释释电传感器对对人体的敏感感程度还和

45、人人的运动方向向关系很大。红红外线热释电电传感器对于于径向移动反反应最不敏感感, 而对于横横切方向 (即与半径垂垂直的方向)移动则最为为敏感,如下下图所示: 2、红外热释电电传感器模块块和CC25530连接方方式如下图所所示。5.【实验步骤骤】1、在红外热释释电传感器节节点代码中添添加传感器采采集数据的事事件;2、在协调器代代码中处理接接收到的红外外热释电传感感器状态消息息;3、分别烧写网网关和传感器器对应的代码码;4、通过串口助助手观察人体体活动状态数数据。详细步骤:1.先安装以下下软件:2.安装好后,在电脑上插插上继电器和和仿真器,然然后右击计算算机,点击管管理,查看设设备管理器3将仿真器

46、复复位。改一下下代码再运行行程序:在559行改,-DZZDAPP_CONFIIG_PANN_ID=00 x188aa,实物图:再运行coorrdinattorEB里里的coorrdinattor.c这这个程序4.拔掉继电器器,插上红外外线,然后在在touchh里运行touuch.c程程序:5.拔掉原先的的设备,分别别将继电器和和红外线插上上电脑,打开开sscomm32,改三三处,显示、cm3、152000,再关闭串口,出现以下结果:6.【关键代码码分析】1、 stattic vooid GPPIOIniit(voiid) P0SELL &= 0 x01; /PP0_0设置置为通用IOO P0D

47、IRR &= 0 x01; /将P0_0设置置为输入模式式 功能:初始化SSHT10接接口;入口参数:无;返回值:无。2、#defiine DOPPLLER _RREAD_EEVT 0 x00004 上面的宏定义了了红外热释电电传感器检测测人体活动的的事件,下面面的代码段用用来在协议栈栈中处理状态态检测流程。 if ( eventts & DDOPPLEER_REAAD_EVTT ) /查看光敏敏电阻状态 DoppplerSStatussOld = DoppplerSttatusNNow; /保存当前前状态 if(DOPPLLER_GPPIO = HIGHH) DDoppleerStattusNoww = DOOPPLERR_YES; elsse if(DOPPLLER_GPPIO = LOW) DDoppleerStattusNoww = DOOPPLERR_NO; /如果当前状状态和上一个个状态发生变变化,发送消消息给网关 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论