《物联网通信技术》课程设计论文_第1页
《物联网通信技术》课程设计论文_第2页
《物联网通信技术》课程设计论文_第3页
《物联网通信技术》课程设计论文_第4页
《物联网通信技术》课程设计论文_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、山东科技大学物联网通信技术课程设计 项目名称 车载环境监测系统 学 院 信息科学与技术学院 专业班级 物联网工程2011级 学 号 姓 名 任课教师 赵建立 2013 年 12 月 30 日目录第1章 绪论21.1 选题的背景与意义2第2章 需求分析32.1 功能3第3章 系统总体设计43.1 方案的选择43.2 系统总体设计43.3 任务分工6第4章 模块设计与实现74.1 模块功能74.2 模块流程84.3 模块实现8第5章 总结11第1章 绪论1.1 选题的背景与意义每年夏天,都会发生很多在汽车内窒息死亡的案例。但是很多人不知道,在车内关闭门窗开空调睡觉也会导致窒息死亡。 汽车的空调有两

2、种模式,一是内循环模式,比较节约汽油。内循环状态是关闭了车内外的气流通道(车内的门窗),不开风机就没有气流循环,开风机时吸入的气流也仅来自车内,形成车辆内部的气流循环。车内冷气如果只是开内循环模式,那么,在密闭条件下,车内的空气通过空调进行内部循环,得不到更新,车内的一氧化碳浓度会越来越高,同时,车内人员呼出大量二氧化碳,导致车内氧气急剧减少,几小时就会使人恶心、昏迷,严重者甚至窒息而死亡。为了减少相应悲剧的发生,我们小组决定开发一种可以检测车内二氧化碳浓度,并在达到危险浓度之前给车内的乘客发出警告的装置,可以称为车载环境监测系统。第2章 需求分析2.1 功能功能编号:1(协调器模块)功能需求

3、:主模块的功能有三个,一是协调各个传感器组成网络,二是接收来自温度感应模块和二氧化碳感应模块发来的信息并且通过串口传给pc机,三是接收来自pc机发来的数据并通过广播发送给网内的所有传感器节点。功能编号:2(温湿度感应模块)功能需求:温度感应模块主要功能是感应外界的温度并把温度值实时传达给主模块;功能编号:3(二氧化碳感应模块)功能需求:二氧化碳感应模块的主要功能是感应外界的二氧化碳浓度并且把浓度值传递给主模块。功能编号:4(报警模块)功能需求:报警模块有两种状态,待命状态和报警状态,平时处于待命状态,如果协调器模块广播的信息中存在浓度超标的命令,则转为报警状态,使蜂鸣器发声进行报警。功能编号:

4、5(通风模块)功能需求:通风模块也有两种状态,待命状态和通风状态, 平时处于待命状态,如果协调器模块广播的信息里有浓度超标而且node id为motor的命令,则转为通风状态,使电机转动模拟通风。功能编号:6(pc模块)功能需求:pc模块通过串口接收到来自协调器模块的信息,将数据处理后显示到桌面上,并把历史数据存到数据库中,当当前数据发生异常的时候,通过串口向协调器模块发送异常指令。第3章 系统总体设计3.1 方案的选择3.2 系统总体设计1,首先由二氧化碳模块中的二氧化碳传感器每隔2s感应一次空气中二氧化碳的浓度,再由其中的zigbee通信模块发送给协调器模块模块。2,同样,温度感应模块中的

5、温度传感器每隔2s感应一次空气温度后通过zigbee通信模块发送给协调器模块。3,协调器模块接收到两个子模块发来的环境数据后,将数据通过串口传给pc机,如果接收到pc机发送来的异常信息,则协调器将向报警模块发送异常信息,向通风模块发送电机启动信息,如果pc机没有发送异常信息,则向报警模块和通风模块发送这正常信息。4,pc机接收到协调器发送来的数据包后,分析数据包的内容,提取出有效的数据并且显示,并将数据存入数据库,如果数据发生异常,则向协调器发送异常信息。5,报警模块和通风接受来自协调器的广播信息,如果是异常信息,则发出报警、打开电机,如果是正常信息,则处于待命状态。3.3 任务分工 图中红色

6、的部分是本人负责的模块。第4章 模块设计与实现4.1 模块功能负责模块:温湿度传感器、二氧化碳传感器(使用超声波传感器模拟数据)温度感应模块主要功能是感应外界的温度并把温度值实时传达给主模块;二氧化碳感应模块的主要功能是感应外界的二氧化碳浓度并且把浓度值传递给主模块。4.2 模块流程4.3 模块实现超声波传感器和温湿度传感器的代码并没有太大的改动,系统使用的消息协议也是使用了实验系统给出的协议。报告中主要选取两个传感器消息收发事件的相关代码进行简要的分析。我在源码的基础上进行了一定的精简工作,如删除没用的周期消息等以减少网络中所要手法消息的数量,以此减轻网络负担,提高系统效率,降低能耗。使用超

7、声波传感器模拟二氧化碳传感器向协调器发送采集到的数据,具体的数据处理在发送到协调器之后由pc段进项相关的模拟数据处理,该部分由赵晗同学完成。超声波传感器主要代码解析:uint16 serialapp_processevent( uint8 task_id, uint16 events ) (void)task_id; / intentionally unreferenced parameter /事件处理函数如下。判断事件类型并进行相应的处理。if ( events & sys_event_msg ) afincomingmsgpacket_t *msgpkt; while ( (msgpkt

8、 = (afincomingmsgpacket_t *)osal_msg_receive( serialapp_taskid ) ) switch ( msgpkt-hdr.event ) case key_change: /serialapp_handlekeys( (keychange_t *)msgpkt)-state, (keychange_t *)msgpkt)-keys ); break; case af_incoming_msg_cmd: serialapp_processmsgcmd( msgpkt ); break; default: break; osal_msg_deal

9、locate( (uint8 *)msgpkt ); return ( events sys_event_msg ); if ( events & serialapp_send_evt ) /调用消息发送函数发送温超声波传感器采集到的数据。 serialapp_otadata(&serialapp_txaddr,serialapp_clusterid1, &uart0_format, sizeof(uart_format); return ( events serialapp_send_evt ); if ( events & doppler_read_evt ) /查看超声波传感器当前状态

10、dopplerstatusold = dopplerstatusnow; /保存当前状态 if(doppler_gpio = high) dopplerstatusnow = doppler_yes; else if(doppler_gpio = low) dopplerstatusnow = doppler_no; if(dopplerstatusnow != dopplerstatusold) /超声波传感器监测到当前状态和上一个状态发生变化就会调用消息发送函数,将消息发送给网关 uart0_format.command = 0x01; if(dopplerstatusnow = dopp

11、ler_yes) uart0_format.data0 = 0x01; uart0_format.data1 = 0x00; else if(dopplerstatusnow = doppler_no) uart0_format.data0 = 0x00; uart0_format.data1 = 0x00; osal_set_event(serialapp_taskid, serialapp_send_evt); osal_start_timerex(serialapp_taskid, doppler_read_evt, 200); return ( events doppler_read_

12、evt ); return ( 0 ); / discard unknown events.温湿度传感器主要代码简析:温湿度传感器和超声波传感器代码内容相似,再次就不再具体赘述。传感器代码如下。uint16 serialapp_processevent( uint8 task_id, uint16 events ) (void)task_id; / intentionally unreferenced parameter if ( events & sys_event_msg ) afincomingmsgpacket_t *msgpkt; while ( (msgpkt = (afincom

13、ingmsgpacket_t *)osal_msg_receive( serialapp_taskid ) ) switch ( msgpkt-hdr.event ) case key_change: /serialapp_handlekeys( (keychange_t *)msgpkt)-state, (keychange_t *)msgpkt)-keys ); break; case af_incoming_msg_cmd: serialapp_processmsgcmd( msgpkt ); break; default: break; osal_msg_deallocate( (ui

14、nt8 *)msgpkt ); return ( events sys_event_msg ); if ( events & serialapp_send_evt ) serialapp_otadata(&serialapp_txaddr,serialapp_clusterid1, &uart0_format, sizeof(uart_format); return ( events serialapp_send_evt ); if ( events & tempandhum_read_evt ) /读取温湿度 temperature = readsht10(temperature); uar

15、t0_format.command = 0x01; uart0_format.data0 = temperature8; uart0_format.data1 = temperature; humidity = readsht10(humidity); uart0_format.data2 = humidity8; uart0_format.data3 = humidity; osal_set_event(serialapp_taskid,serialapp_send_evt); osal_start_timerex(serialapp_taskid, tempandhum_read_evt,

16、 1000); return ( events tempandhum_read_evt ); return ( 0 ); / discard unknown events.第5章 总结物联网通信技术这门课是这学期起,我们开始从现实的工作中第一次接触物联网及其相关的知识。以前只是在课本上和想象中的物联网,终于在自己的手中变成了现实,尽管完成的功能非常简单,但是我的收获依然是很大的。说实话,半学期的课程学习中,一星期一节的实验课确实有点儿少,加上平时因为自己并没有太多时间在实验室呆者,所以在最后做课程设计的时候,对整个zigbee系统的理解和研究并不是特别深入,有很多传感器的代码根本不知道什么意思

17、。我在小组中主要承担温湿度传感器和二氧化碳传感器的研究,刚开始以为挺容易,但是在自己实际工作过程中还是遇到了很大的困难,代码需要更深入的理解和研究。一个很小功能的实现可能就要研究很长时间的代码,加上我自己对代码理解的并不是很充分,所以在课程设计刚开始的时候,稍稍拖慢了小组的进度。在和同组的赵晗和张元增一起研究和讨论之后,我慢慢的进入了状态,从最基础的功能开始,一段代码一段代码的分析,最终在大家的帮助下,完成了相关的工作。另外,因为有相关的爱好和长处,我也负责小组报告课件等相关文档工作,为小组两次答辩精心制作了ppt,得到了小组其他成员的肯定。在课程设计的过程中,我更加深入的体会到了,小组成员协同合作的重要性。课程设计虽然做完了,但是由于水平和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论