《物联网通信技术》课程设计论文Word格式文档下载.docx
《《物联网通信技术》课程设计论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《物联网通信技术》课程设计论文Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
第3章系统总体设计4
3.1方案的选择4
3.2系统总体设计4
3.3任务分工6
第4章模块设计与实现7
4.1模块功能7
4.2模块流程8
4.3模块实现8
第5章总结11
第1章绪论
1.1选题的背景与意义
每年夏天,都会发生很多在汽车内窒息死亡的案例。
但是很多人不知道,在车内关闭门窗开空调睡觉也会导致窒息死亡。
汽车的空调有两种模式,一是内循环模式,比较节约汽油。
内循环状态是关闭了车内外的气流通道(车内的门窗),不开风机就没有气流循环,开风机时吸入的气流也仅来自车内,形成车辆内部的气流循环。
车内冷气如果只是开内循环模式,那么,在密闭条件下,车内的空气通过空调进行内部循环,得不到更新,车内的一氧化碳浓度会越来越高,同时,车内人员呼出大量二氧化碳,导致车内氧气急剧减少,几小时就会使人恶心、昏迷,严重者甚至窒息而死亡。
为了减少相应悲剧的发生,我们小组决定开发一种可以检测车内二氧化碳浓度,并在达到危险浓度之前给车内的乘客发出警告的装置,可以称为车载环境监测系统。
第2章需求分析
2.1功能
功能编号:
1(协调器模块)
功能需求:
主模块的功能有三个,一是协调各个传感器组成网络,二是接收来自温度感应模块和二氧化碳感应模块发来的信息并且通过串口传给PC机,三是接收来自PC机发来的数据并通过广播发送给网内的所有传感器节点。
2(温湿度感应模块)
温度感应模块主要功能是感应外界的温度并把温度值实时传达给主模块;
3(二氧化碳感应模块)
二氧化碳感应模块的主要功能是感应外界的二氧化碳浓度并且把浓度值传递给主模块。
4(报警模块)
报警模块有两种状态,待命状态和报警状态,平时处于待命状态,如果协调器模块广播的信息中存在浓度超标的命令,则转为报警状态,使蜂鸣器发声进行报警。
5(通风模块)
通风模块也有两种状态,待命状态和通风状态,平时处于待命状态,如果协调器模块广播的信息里有浓度超标而且nodeid为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段进项相关的模拟数据处理,该部分由赵晗同学完成。
超声波传感器主要代码解析:
UINT16SerialApp_ProcessEvent(uint8task_id,UINT16events)
{
(void)task_id;
//Intentionallyunreferencedparameter
//事件处理函数如下。
判断事件类型并进行相应的处理。
if(events&
SYS_EVENT_MSG)
{
afIncomingMSGPacket_t*MSGpkt;
while((MSGpkt=(afIncomingMSGPacket_t*)osal_msg_receive(SerialApp_TaskID)))
switch(MSGpkt->
hdr.event)
{
caseKEY_CHANGE:
//SerialApp_HandleKeys(((keyChange_t*)MSGpkt)->
state,((keyChange_t*)MSGpkt)->
keys);
break;
caseAF_INCOMING_MSG_CMD:
SerialApp_ProcessMSGCmd(MSGpkt);
default:
}
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);
DOPPLER_READ_EVT)//查看超声波传感器当前状态
DopplerStatusOld=DopplerStatusNow;
//保存当前状态
if(DOPPLER_GPIO==HIGH)
DopplerStatusNow=DOPPLER_YES;
elseif(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;
elseif(DopplerStatusNow==DOPPLER_NO)
UART0_Format.Data[0]=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);
//Discardunknownevents.
}
温湿度传感器主要代码简析:
温湿度传感器和超声波传感器代码内容相似,再次就不再具体赘述。
传感器代码如下。
TEMPANDHUM_READ_EVT)//读取温湿度
Temperature=ReadSHT10(TEMPERATURE);
UART0_Format.Data[0]=Temperature>
>
8;
UART0_Format.Data[1]=Temperature;
Humidity=ReadSHT10(HUMIDITY);
UART0_Format.Data[2]=Humidity>
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);
第5章总结
《物联网通信技术》这门课是这学期起,我们开始从现实的工作中第一次接触物联网及其相关的知识。
以前只是在课本上和想象中的物联网,终于在自己的手中变成了现实,尽管完成的功能非常简单,但是我的收获依然是很大的。
说实话,半学期的课程学习中,一星期一节的实验课确实有点儿少,加上平时因为自己并没有太多时间在实验室呆者,所以在最后做课程设计的时候,对整个Zigbee系统的理解和研究并不是特别深入,有很多传感器的代码根本不知道什么意思。
我在小组中主要承担温湿度传感器和二氧化碳传感器的研究,刚开始以为挺容易,但是在自己实际工作过程中还是遇到了很大的困难,代码需要更深入的理解和研究。
一个很小功能的实现可能就要研究很长时间的代码,加上我自己对代码理解的并不是很充分,所以在课程设计刚开始的时候,稍稍拖慢了小组的进度。
在和同组的赵晗和张元增一起研究和讨论之后,我慢慢的进入了状态,从最基础的功能开始,一段代码一段代码的分析,最终在大家的帮助下,完成了相关的工作。
另外,因为有相关的爱好和长处,我也负责小组报告课件等相关文档工作,为小组两次答辩精心制作了PPT,得到了小组其他成员的肯定。
在课程设计的过程中,我更加深入的体会到了,小组成员协同合作的重要性。
课程设计虽然做完了,但是由于水平和时间以及相关实验设备的限制,整个项目最终预期的效果并没有完成的特别理想,人机交互的方式也并不是非常的合理。
理想中的智能化车载控制设备应该是一个闭环系统,统一协调车内的各个设备,完全不需要人来参与的或者极少需要人来参与。
总的来说,我在《物联网通信技术》课程设计中收获了很多东西,这些东西不仅是知识性的。
通过课程设计的工作我也从实际的工作中真正接触到了物联网,将所学的知识变成了实际的工作。
物联网对与我来说,从一个高端大气,炙手可热的话题,真正落到了实处,让我对本专业的发展也有了一个更为务实的态度和努力的方向,我想,这对我来说才是最重要的。