[物联网通信技术]课程设计论文

《物联网通信技术》课程设计

项目名称 车载环境监测系统 学 院 信息科学与技术学院 专业班级 物联网工程2011级 学 号 姓 名 任课教师

目录

第1章 绪论............................................................................................... 3 1.1 选题的背景与意义 ....................................................................... 3 第2章 需求分析 ...................................................................................... 3 2.1 功能................................................................................................ 3 第3章 系统总体设计 .............................................................................. 5 3.1 方案的选择 ................................................................................... 5 3.2 系统总体设计 ............................................................................... 5 3.3 任务分工 ....................................................................................... 6 第4章 模块设计与实现 .......................................................................... 7 4.1 模块功能 ....................................................................................... 7 4.2 模块流程 ....................................................................................... 7 4.3 模块实现 ....................................................................................... 8 第5章 总结............................................................................................. 11

第1章 绪论

1.1 选题的背景与意义

每年夏天,都会发生很多在汽车内窒息死亡的案例。但是很多人不知道,在车内关闭门窗开空调睡觉也会导致窒息死亡。 汽车的空调有两种模式,一是内循环模式,比较节约汽油。内循环状态是关闭了车内外的气流通道(车内的门窗),不开风机就没有气流循环,开风机时吸入的气流也仅来自车内,形成车辆内部的气流循环。

车内冷气如果只是开内循环模式,那么,在密闭条件下,车内的空气通过空调进行内部循环,得不到更新,车内的一氧化碳浓度会越来越高,同时,车内人员呼出大量二氧化碳,导致车内氧气急剧减少,几小时就会使人恶心、昏迷,严重者甚至窒息而死亡。

为了减少相应悲剧的发生,我们小组决定开发一种可以检测车内二氧化碳浓度,并在达到危险浓度之前给车内的乘客发出警告的装置,可以称为车载环境监测系统。

第2章 需求分析

2.1 功能

功能编号:1(协调器模块)

功能需求:主模块的功能有三个,一是协调各个传感器组成网络,

二是接收来自温度感应模块和二氧化碳感应模块发来的信息并且通过串口传给PC 机,三是接收来自PC 机发来的数据并通过广播发送给网内的所有传感器节点。

功能编号:2(温湿度感应模块)

功能需求:温度感应模块主要功能是感应外界的温度并把温度值

实时传达给主模块;

功能编号:3(二氧化碳感应模块)

功能需求:二氧化碳感应模块的主要功能是感应外界的二氧化碳

浓度并且把浓度值传递给主模块。

功能编号:4(报警模块)

功能需求:报警模块有两种状态,待命状态和报警状态,平时处

于待命状态,如果协调器模块广播的信息中存在浓度超标的命令,则转为报警状态,使蜂鸣器发声进行报警。

功能编号:5(通风模块)

功能需求:通风模块也有两种状态,待命状态和通风状态, 平时

处于待命状态,如果协调器模块广播的信息里有浓度超标而且node id 为Motor 的命令,则转为通风状态,使电机转动模拟通风。

功能编号:6(PC 模块)

功能需求:PC 模块通过串口接收到来自协调器模块的信息,将数

据处理后显示到桌面上,并把历史数据存到数据库中,当当前数据发生异常的时候,通过串口向协调器模块发送异常指令。

第3章 系统总体设计

3.1 方案的选择 3.2 系统总体设计

1,首先由二氧化碳模块中的二氧化碳传感器每隔2s 感应一次空气中二氧化碳的浓度,再由其中的zigbee 通信模块发送给协调器模块模块。

2,同样,温度感应模块中的温度传感器每隔2s 感应一次空气温度后通过zigbee 通信模块发送给协调器模块。

3,协调器模块接收到两个子模块发来的环境数据后,将数据通过串口传给PC 机,如果接收到PC 机发送来的异常信息,则协调器将向报警模块发送异常信息,向通风模块发送电机启动信息,如果PC 机没有发送异常信息,则向报警模块和通风模块发送这正常信息。 4,PC 机接收到协调器发送来的数据包后,分析数据包的内容,提取出有效的数据并且显示,并将数据存入数据库,如果数据发生异常,则向协调器发送异常信息。

5,报警模块和通风接受来自协调器的广播信息,如果是异常信息,则发出报警、打开电机,如果是正常信息,则处于待命状态。

3.3 任务分工

图中红色的部分是本人负责的模块。

第4章 模块设计与实现

4.1 模块功能

负责模块:温湿度传感器、二氧化碳传感器(使用超声波传感器模拟数据)

温度感应模块主要功能是感应外界的温度并把温度值实时传达给

主模块;

二氧化碳感应模块的主要功能是感应外界的二氧化碳浓度并且把浓度值传递给主模块。

4.2 模块流程

4.3 模块实现

超声波传感器和温湿度传感器的代码并没有太大的改动,系统使用的消息协议也是使用了实验系统给出的协议。报告中主要选取两个传感器消息收发事件的相关代码进行简要的分析。我在源码的基础上进行了一定的精简工作,如删除没用的周期消息等以减少网络中所要手法消息的数量,以此减轻网络负担,提高系统效率,降低能耗。使用超声波传感器模拟二氧化碳传感器向协调器发送采集到的数据,具体的数据处理在发送到协调器之后由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 = (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_deallocate( (uint8 *)MSGpkt ); }

return ( events ^ SYS_EVENT_MSG ); }

if ( events & SERIALAPP_SEND_EVT )

//调用消息发送函数发送温超声波传感器采集到的数据。

{

SerialApp_OTAData(&SerialApp_TxAddr,SERIALAPP_CLUSTERID1, sizeof(UART_Format));

return ( events ^ SERIALAPP_SEND_EVT ); }

&UART0_Format,

if ( events & DOPPLER_READ_EVT ) //查看超声波传感器当前状态 {

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 == DOPPLER_YES) {

UART0_Format.Data[0] = 0x01; UART0_Format.Data[1] = 0x00; }

else if(DopplerStatusNow == DOPPLER_NO) {

UART0_Format.Data[0] = 0x00;

UART0_Format.Data[1] = 0x00; }

osal_set_event(SerialApp_TaskID, SERIALAPP_SEND_EVT); }

osal_start_timerEx(SerialApp_TaskID, DOPPLER_READ_EVT, 200);

return ( events ^ DOPPLER_READ_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 = (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_deallocate( (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 & TEMPANDHUM_READ_EVT ) //读取温湿度 {

Temperature = ReadSHT10(TEMPERATURE); UART0_Format.Command = 0x01;

UART0_Format.Data[0] = Temperature>>8; UART0_Format.Data[1] = Temperature; Humidity = ReadSHT10(HUMIDITY); UART0_Format.Data[2] = Humidity>>8; UART0_Format.Data[3] = Humidity;

osal_set_event(SerialApp_TaskID,SERIALAPP_SEND_EVT);

osal_start_timerEx(SerialApp_TaskID, TEMPANDHUM_READ_EVT, 1000);

return ( events ^ TEMPANDHUM_READ_EVT ); }

return ( 0 ); // Discard unknown events. }

《物联网通信技术》课程设计

项目名称 车载环境监测系统 学 院 信息科学与技术学院 专业班级 物联网工程2011级 学 号 姓 名 任课教师

目录

第1章 绪论............................................................................................... 3 1.1 选题的背景与意义 ....................................................................... 3 第2章 需求分析 ...................................................................................... 3 2.1 功能................................................................................................ 3 第3章 系统总体设计 .............................................................................. 5 3.1 方案的选择 ................................................................................... 5 3.2 系统总体设计 ............................................................................... 5 3.3 任务分工 ....................................................................................... 6 第4章 模块设计与实现 .......................................................................... 7 4.1 模块功能 ....................................................................................... 7 4.2 模块流程 ....................................................................................... 7 4.3 模块实现 ....................................................................................... 8 第5章 总结............................................................................................. 11

第1章 绪论

1.1 选题的背景与意义

每年夏天,都会发生很多在汽车内窒息死亡的案例。但是很多人不知道,在车内关闭门窗开空调睡觉也会导致窒息死亡。 汽车的空调有两种模式,一是内循环模式,比较节约汽油。内循环状态是关闭了车内外的气流通道(车内的门窗),不开风机就没有气流循环,开风机时吸入的气流也仅来自车内,形成车辆内部的气流循环。

车内冷气如果只是开内循环模式,那么,在密闭条件下,车内的空气通过空调进行内部循环,得不到更新,车内的一氧化碳浓度会越来越高,同时,车内人员呼出大量二氧化碳,导致车内氧气急剧减少,几小时就会使人恶心、昏迷,严重者甚至窒息而死亡。

为了减少相应悲剧的发生,我们小组决定开发一种可以检测车内二氧化碳浓度,并在达到危险浓度之前给车内的乘客发出警告的装置,可以称为车载环境监测系统。

第2章 需求分析

2.1 功能

功能编号:1(协调器模块)

功能需求:主模块的功能有三个,一是协调各个传感器组成网络,

二是接收来自温度感应模块和二氧化碳感应模块发来的信息并且通过串口传给PC 机,三是接收来自PC 机发来的数据并通过广播发送给网内的所有传感器节点。

功能编号:2(温湿度感应模块)

功能需求:温度感应模块主要功能是感应外界的温度并把温度值

实时传达给主模块;

功能编号:3(二氧化碳感应模块)

功能需求:二氧化碳感应模块的主要功能是感应外界的二氧化碳

浓度并且把浓度值传递给主模块。

功能编号:4(报警模块)

功能需求:报警模块有两种状态,待命状态和报警状态,平时处

于待命状态,如果协调器模块广播的信息中存在浓度超标的命令,则转为报警状态,使蜂鸣器发声进行报警。

功能编号:5(通风模块)

功能需求:通风模块也有两种状态,待命状态和通风状态, 平时

处于待命状态,如果协调器模块广播的信息里有浓度超标而且node id 为Motor 的命令,则转为通风状态,使电机转动模拟通风。

功能编号:6(PC 模块)

功能需求:PC 模块通过串口接收到来自协调器模块的信息,将数

据处理后显示到桌面上,并把历史数据存到数据库中,当当前数据发生异常的时候,通过串口向协调器模块发送异常指令。

第3章 系统总体设计

3.1 方案的选择 3.2 系统总体设计

1,首先由二氧化碳模块中的二氧化碳传感器每隔2s 感应一次空气中二氧化碳的浓度,再由其中的zigbee 通信模块发送给协调器模块模块。

2,同样,温度感应模块中的温度传感器每隔2s 感应一次空气温度后通过zigbee 通信模块发送给协调器模块。

3,协调器模块接收到两个子模块发来的环境数据后,将数据通过串口传给PC 机,如果接收到PC 机发送来的异常信息,则协调器将向报警模块发送异常信息,向通风模块发送电机启动信息,如果PC 机没有发送异常信息,则向报警模块和通风模块发送这正常信息。 4,PC 机接收到协调器发送来的数据包后,分析数据包的内容,提取出有效的数据并且显示,并将数据存入数据库,如果数据发生异常,则向协调器发送异常信息。

5,报警模块和通风接受来自协调器的广播信息,如果是异常信息,则发出报警、打开电机,如果是正常信息,则处于待命状态。

3.3 任务分工

图中红色的部分是本人负责的模块。

第4章 模块设计与实现

4.1 模块功能

负责模块:温湿度传感器、二氧化碳传感器(使用超声波传感器模拟数据)

温度感应模块主要功能是感应外界的温度并把温度值实时传达给

主模块;

二氧化碳感应模块的主要功能是感应外界的二氧化碳浓度并且把浓度值传递给主模块。

4.2 模块流程

4.3 模块实现

超声波传感器和温湿度传感器的代码并没有太大的改动,系统使用的消息协议也是使用了实验系统给出的协议。报告中主要选取两个传感器消息收发事件的相关代码进行简要的分析。我在源码的基础上进行了一定的精简工作,如删除没用的周期消息等以减少网络中所要手法消息的数量,以此减轻网络负担,提高系统效率,降低能耗。使用超声波传感器模拟二氧化碳传感器向协调器发送采集到的数据,具体的数据处理在发送到协调器之后由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 = (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_deallocate( (uint8 *)MSGpkt ); }

return ( events ^ SYS_EVENT_MSG ); }

if ( events & SERIALAPP_SEND_EVT )

//调用消息发送函数发送温超声波传感器采集到的数据。

{

SerialApp_OTAData(&SerialApp_TxAddr,SERIALAPP_CLUSTERID1, sizeof(UART_Format));

return ( events ^ SERIALAPP_SEND_EVT ); }

&UART0_Format,

if ( events & DOPPLER_READ_EVT ) //查看超声波传感器当前状态 {

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 == DOPPLER_YES) {

UART0_Format.Data[0] = 0x01; UART0_Format.Data[1] = 0x00; }

else if(DopplerStatusNow == DOPPLER_NO) {

UART0_Format.Data[0] = 0x00;

UART0_Format.Data[1] = 0x00; }

osal_set_event(SerialApp_TaskID, SERIALAPP_SEND_EVT); }

osal_start_timerEx(SerialApp_TaskID, DOPPLER_READ_EVT, 200);

return ( events ^ DOPPLER_READ_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 = (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_deallocate( (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 & TEMPANDHUM_READ_EVT ) //读取温湿度 {

Temperature = ReadSHT10(TEMPERATURE); UART0_Format.Command = 0x01;

UART0_Format.Data[0] = Temperature>>8; UART0_Format.Data[1] = Temperature; Humidity = ReadSHT10(HUMIDITY); UART0_Format.Data[2] = Humidity>>8; UART0_Format.Data[3] = Humidity;

osal_set_event(SerialApp_TaskID,SERIALAPP_SEND_EVT);

osal_start_timerEx(SerialApp_TaskID, TEMPANDHUM_READ_EVT, 1000);

return ( events ^ TEMPANDHUM_READ_EVT ); }

return ( 0 ); // Discard unknown events. }


相关文章

  • "嵌入式系统分析"课程论文
  • 2003年度"嵌入式系统分析"课程论文 IC卡公民身份证系统设计方案 基本需求 (1) 每位公民持有一张IC卡公民身份证,电子信息记录公 民姓名.性别.民族.出身年月日.籍贯.出生地.血型.公民 身份证号码.彩色照片等个 ...查看


  • 期末论文 物联网对会计信息化的影响
  • <物联网概论>课程报告 题目:物联网对会计信息化的影响 院(系): 工商管理学院 专业年级: 姓 名: 学 号: 指导老师: 会计学2013级 廖俊民 [1**********]7 许莹 物联网对会计信息化的影响 摘要:通过对许 ...查看


  • 东北大学全日制工程硕士研究生培养方案
  • 全日制工程硕士研究生培养方案 研究生院 二OO 九年七月 前言 为更好地适应国家经济建设和社会发展对高层次应用型人才的迫切需要,积极发展具有中国特色的专业学位教育,教育部自2009年起,扩大招收以应届本科毕业生为主的全日制硕士专业学位范围, ...查看


  • 中南大学物联网工程专业宣传材料之一
  • 中南大学物联网工程专业宣传材料之一 物联网工程专业的背景与办学思想 中南大学信息科学与工程学院 2011年4月18日 一.物联网技术概论 1物联网的定义 物联网是新一代信息技术的重要组成部分,英文名称叫"TheInternet o ...查看


  • 河北医科大学精美个人简历模板-372
  • 电商实习生,可提供一周3-4天稳定的工作时间(不含双休日) 基本信息 姓名 茉莉花 生日 1992.2.2 地址 山西省太原市五一路上马 街120号 手机 [1**********] 邮箱 [1**********] 微信 [1****** ...查看


  • 关于我国网络课程现状与问题的思考
  • 现代教育技术2001年第1期(总第34期)------论文编号1009-8097(2001)01-∞55川 关于我国网络课程现状与问题的思考 林君芬余胜泉 北京师范大学现代教育技术研究所北京100875 [摘要]随著网络教育在我国的蓬勃发展 ...查看


  • 网络工程导论结课论文
  • 网 络 工 程 概 论 课程论文 学 院 电气信息工程学院 姓 名 刘欢 学 号 402120107 专业/班级 网工12101 成 绩 教师签名 [摘 要] 随着计算机.网络的普及,网络市场对人才的需求量日益增加,如何在众多的计算机职业中 ...查看


  • 我大学的论文
  • 摘要 随着网络技术的发展与网络应用的普及,网上教学成为当前教育的一个热点.当前,随着终身教育的呼声四起和人们生活质量的提高,人们对获取知识的空间.时间和形式都提出了更高的要求,势必推动在线教育的进一步发展.现代在线教育是传统教育和现代通讯技 ...查看


  • 中小学创客教育论文
  • 中小学创客教育论文 摘 要:尽管创客教育存在问题和缺陷,但是它在课程中应用的目标之一就是改变传统教育的模式,弥补传统教育方式的不足之处,转变教师的教学思维,使学生更有利地学习.成长.创客教育使科学教学在教学观念.教学方式.教学手段.学生学习 ...查看


热门内容