物联网课程设计.docx
- 文档编号:8599283
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:946.41KB
物联网课程设计.docx
《物联网课程设计.docx》由会员分享,可在线阅读,更多相关《物联网课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
物联网课程设计
物联网导论课程设计报告
设计题目:
基于物联网的远程入侵报警装置设计
班级:
计科四班
学号:
姓名:
一、绪论
1.1物联网的发展概述
物联网的英文名称是InternetofThings,缩写IOT。
物联网就是把传感器装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道以及家用电器等各种真实物体上,通过互联网联接起来,进而运行特定的程序,达到远程控制或者实现物与物的直接通信。
可实现人与物体的沟通和对话,也可以实现物体与物体互相间的沟通和对话,这种将物体联接起来的网络被称为“物联网”。
通过物联网可以用中心计算机对机器、设备、人员进行集中管理、控制,也可以对家庭设备、汽车进行遥控,以及搜寻位置、防止物品被盗等各种应用。
物联网将现实世界数字化,应用范围十分广泛。
物联网的应用领域主要包括以下几个方面:
运输和物流领域、健康医疗领域、智能环境(家庭、办公、工厂)领域、个人和社会领域等,具有十分广阔的市场和应用前景。
1.2设计远程防盗报警装置的目的
1.掌握物联网综合实验系统的软件、硬件部署方法。
2.掌握各节点程序的烧写方法,能够搭建实验平台并在物联网高级教学实验箱上进行烧写实验。
3.掌握串口助手的使用方法,能够使用串口助手发送控制命令。
4.掌握所有软件的部署和开发平台。
1.3设计远程防盗报警装置的意义
防盗报警系统是指当非法侵入防范区时,引起报警的装置,它是用来发出出现危险情况信号的。
防盗报警系统就是用探测器对建筑内外重要地点和区域进行布防。
它可以及时探测非法入侵,并且在探测到有非法人侵时,及时向有关人员示警。
譬如门磁开关、玻璃破碎报警器等可有效探测外来的人侵,红外探测器可感知人员在楼内的活动等。
一旦发生人侵行为,能及时记录入侵的时间、地点,同时通过报警设备发出报警信号
二、开发环境搭建与各模块设计
2.1搭建开发环境
此次实验用的是破解版的IAR开发环境,下面将介绍IAR开发环境的安装及添加文件到工程以及调试运行的过程:
1.打开参考文件中一个可执行文件,如下图1:
图1
2.点击install,根据创建向导安装IAR开发环境步骤安装,安装成功后,打开一个如下图2的窗口:
图2
3.选择File->open->workbase,在弹出的对话框中“文件名”中选择将要用到的文件,默认工程类型为eww。
然后选择Project->RebuildAll编译工程,等待编译完成。
4.将连接好的硬件平台上电(CC2530务必按下开关上电),然后按下仿真器上的按键。
接下来选择Project->Downloadanddebug下载并调试程序。
5.下载完后,如果想调试程序,可以点击“Debug”->”Go”,会发现板上的灯有变化。
也可单步调试,点击工具栏上的按钮终止调试。
到此,程序已经下载到了cc2530芯片的flash内,按下ZX2530A上的复位按钮或者将板子重新上电后也可看到程序的运行效果。
2.2点对点通信的实现
实验内容
接收节点上通电后进行初始化,然后通过指令ISRXON开启射频接收器,等待接收数据,直到正确接收到数据为止,通过串口打印输出。
发送节点上电后和接收节点进行相同的初始化,然后将要发送的数据输出到TXFIFO中,再调用指令ISTXONCCA通过射频前端发送数据。
实验设备及工具
硬件:
ZX2530A型CC2530节点板2块、USB接口的仿真器,PC机Pentium100以上。
软件:
PC机操作系统WinXP、IAR集成开发环境、串口监控程序。
实验原理
在本实验中,发送节点将数据通过射频模块发送到指定的接收节点,接收节点通过射频模块收到数据后,通过串口发送到pc机在串口调试助手中显示出来。
如果发送节点发送的数据目的地址与接收节点的地址不匹配,接收节点将接收不到数据。
2.2.4实验步骤
(1)准备两个CC2530射频板,分别接上出厂电源;将其中一个CC2530射频板通过RS-232交叉串口线连接到PC机串口。
(2)在PC机上打开串口终端软件,设置好波特率为9600。
(3)双击本实验程序“无线射频实验\1.点对点通信”双击p2p.eww,打开本实验工程文件。
(4)打开main.c文件,下面对一些定义进行介绍。
PAN_ID个域网ID标示,用来表示不同在网络,在同一实验中,接收和发送节点需要配置为相同的值,否则两个节点将不能正常通信。
SEND_ADDR发送节点的地址
RECV_ADDR接收节点的地址
NODE_TYPE节点类型:
0接收节点,1:
发送节点,在进行实验时一个节点定义为发送节点用来发送数据,一个定义为接收节点用来接收数据。
(5)修改main.c文件中的NODE_TYPE的值为0,保存,然后选择Project->RebuildAll重新编译工程。
(6)将仿真器连接到串口与PC机相连接的CC2530节点中,点击菜单Project->Downloadanddebug下载程序到接收节点板。
(7)修改main.c文件中的NODE_TYPE的值为1,然后点击保存,然后选Project->RebuildAll重新编译工程。
(8)接下来将接收节点断电,取下仿真器连接到另外一个节点上,点击菜单Project->Downloadanddebug下载程序到发送节点板。
(9)确保接收节点的串口与pc的串口通过交叉串口线相连。
(10)先将接收节点通电,查看PC机上的串口输出,接下来将发送节点通电。
(11)从PC机上串口调试助手观察接收节点收到的数据。
可以修改发送节点中发送数据的内容,然后编译并下载程序到发送节点,然后从串口调试助手观察收到的数据。
可以修改接收节点的地址,然后重新编译并下载程序到接收节点,然后从发送节点发送数据,观察接收节点能否正确接收数据。
2.3人体红外传感器的设计
实验内容
本实验实例代码通过读取红外人体传感器的控制信号,实现LED灯的控制。
当检测到有
人入侵时,点亮led灯,当人离开后关闭led灯。
下图为人体传感器模块与CC2530的接口电路:
图3
其中SIP3连接人体传感器模块,Z2_SENSOR连接到CC2530的P0.7引脚。
当传感器模块检测到有人入侵时,从SIP3的第二个引脚输出低电平,此时图上的LED被点亮,然后程序中从Z2_SENSOR引脚读取io口的状态判断是否有人入侵,同时点亮ZX2530底板上的LED2。
实验设备及工具
硬件:
ZX2530型底板及CC2530节点板一块、人体传感器节点板一块、USB接口仿真机器、pc机
软件:
PC机操作系统WINXP,IAR集成开发环境
实验原理
普通人体会发射10um左右的特定波长红外线,用专门设计的传感器就可以针对性的检测这种红外线的存在与否,当人体红外线照射到传感器上后,因热释电效应将向外释放电荷,后续电路经检测处理后就能产生控制信号。
实验步骤
(1)准备好带有人体红外感应传感器的CC2530射频板,将仿真器连接到该CC2530射频板上,接上出厂电源;
(2)打开例程“传感器实验\4.人体红外传感器”,双击Infrared.eww,打开本实验工程文件;
(3)选择Project->RebuildAll重新编译工程;
(4)上电CC2530节点板,然后按下连接好的仿真器的复位按键;接下来点击IAR菜单Project->Downloadanddebug,将程序下载程序到CC2530射频板上。
(5)将cc2530射频板上电并复位,运行刚才下载的程序。
(6)人体靠近节点或者用手在节点面前晃动,观察LED变化;几秒后,将传感器模块遮挡,观察LED灯的变化。
三、详细设计
3.1点对点通信模块的代码实现以及线路连接图
主程序核心代码如下:
#defineNODE_TYPE1//0:
接收节点,1:
发送节点
staticbasicRfCfg_tbasicRfConfig;
voidrfSendData(void)
{
uint8pTxData[]={'H','e','l','l','o','','c','c','2','5','3','0','\r','\n'};
uint8ret;
printf("sendnodestartup...\r\n"
hal_led_on
(1);
halMcuWaitMs(100);
hal_led_off
(1);
halMcuWaitMs(900);
}else{
hal_led_on
(1);
halMcuWaitMs(1000);
hal_led_off
(1);
}
}
}
//ConfigbasicRF
basicRfConfig.panId=PAN_ID;
basicRfConfig.channel=RF_CHANNEL;
basicRfConfig.ackRequest=TRUE;
#ifdefSECURITY_CCM
basicRfConfig.securityKey=key;
#endif
//InitializeBasicRF
#ifNODE_TYPE
basicRfConfig.myAddr=SEND_ADDR;
#else
basicRfConfig.myAddr=RECV_ADDR;
#endif
if(basicRfInit(&basicRfConfig)==FAILED){
HAL_ASSERT(FALSE);
}
#ifNODE_TYPE
rfSendData();
#else
rfRecvData();
#endif
}
其中通过更改下列代码中的1或0来分别下载至发送器或接受器:
#defineNODE_TYPE1//0:
接收节点,1:
发送节点
该程序主要实现发送端给接收端发送‘Hellocc2530’。
线路连接图
点对点通信模块的线路连接图如下图:
图4
3.2人体红外传感器模块的代码实现以及线路连接图
主程序核心代码如下:
unsignedtt;
for(tt=0;tt for(tt=0;tt for(tt=0;tt for(tt=0;tt for(tt=0;tt for(tt=0;tt } //32M晶振初始化 voidxtal_init(void) { CLKCONCMD&=~0x40;//晶振 while(! (SLEEPSTA&0x40));//等待晶振稳定 CLKCONCMD&=~0x47;//TICHSPD128分频,CLKSPD不分频 SLEEPCMD|=0x04;//关闭不用的RC振荡器 } //LED灯初始化 voidled_init(void) { P1SEL=0x00;//P1为普通I/O口 P1DIR|=0x05;//P1.0P1.1输出 led1=0; led2=1; } voidio_init(void) { P0SEL&=~0x80;//设置P0.7为普通io口 P0DIR&=~0x80;//设置P0.7为输入 } //主函数 voidmain(void) { EA=0;//禁用中断 xtal_init(); led_init(); io_init(); while (1){ if(P0_7! =0){ led2=0; }else{ led2=1; } Delay(10); } } 线路连接图 人体红外传感器模块的线路连接图如下图: 图5 3.3远程报警装置的代码实现以及线路连接图 主要程序代码如下: 在点对点通信的代码基础上作如下程序更改: voidrfSendData(void) { //修改了这里,把传输的数据改为了warningamancoming uint8pTxData[]={'w','a','r','n','i','n','g','! ','','a','','m','a','n','','c','o','m','i','n','g','\r','\n'}; uint8ret; printf("sendnodestartup...\r\n"); //KeepReceiveroffwhennotneededtosavepower basicRfReceiveOff(); //Mainloop while(TRUE){ //修改了这里,把添加了一个循环,如果P0_7! =0则说明有人 while(P0_7! =0){ ret=basicRfSendPacket(RECV_ADDR,pTxData,sizeofpTxData); //修改了这里,添加了如果有人则让灯亮的逻辑led1这个常量在最上面定义了led1=0; if(ret==SUCCESS){ hal_led_on (1); halMcuWaitMs(100); hal_led_off (1); halMcuWaitMs(900); }else{ hal_led_on (1); halMcuWaitMs(1000); hal_led_off (1); } 线路连接图 远程报警装置的线路连接图如下图: 图6 四、实验结果与讨论 4.1点对点通信模块 在将代码分别下载调试之后,运行: 发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。 结果如图: 图7 4.2人体红外线传感器模块 人体靠近节点或者用手在节点面前晃动,LED灯闪烁;几秒后,将传感器模块遮挡,LED灯灭,结果如图: 图8图9 4.3远程报警装置模块 当有人体接近报警装置时,报警装置通过射频通信将报警信息发送到接收端,并由上位机串口助手打印出来,结果如图: 图10 五、设计总结 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,来提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到很多问题,可以说得是困难重重,在设计的过程中才发现了自己有那么多的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故得到了许多新的知识。 最后,感谢一起完成本次实验的同学及精心指导的老师。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 联网 课程设计