无线传感网络技术课程设计报告模板_第1页
无线传感网络技术课程设计报告模板_第2页
无线传感网络技术课程设计报告模板_第3页
无线传感网络技术课程设计报告模板_第4页
无线传感网络技术课程设计报告模板_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)辽 宁 工 业 大 学 无线传感网络技术 课程设计(论文)题目: 加速度传感器数据采集系统 院(系): 电子与信息工程学院 专业班级: 物联网 学 号: 学生姓名: 指导教师: 教师职称: 起止时间:14-06-23至14-07-11 课程设计(论文)任务及评语院(系):电子与信息工程学院 教研室:学 号学生姓名专业班级课程设计(论文)题目加速度传感器数据采集系统课程设计(论文)任务利用加速度传感器进行数据采集,并将采集到的数据传递到上位机,并显示。用加速度传感器采集到的信息来控制电机,通过转动与停止来检测是否产生加速度。主要设计内容

2、:1. 画出实验原理图2. 编写功能代码,烧写代码3. 功能熟练演示要求:1. 根据题目和所用的传感器节点,用计算机绘制出原理图以及程序流程图;2. 认真独立完成所规定的设计内容(4000字左右),严禁相互抄袭;指导教师评语及成绩平时成绩: 论文质量: 答 辩: 总 成 绩: 指导教师签字: 年 月 日目 录第1章 加速度数据采集系统设计方案51.1 引言51.2 总体方案论述5第2章 加速度数据采集系统的硬件设计62.1 系统所需的硬件62.2 硬件系统各部分实现的功能82.3系统整体实现的功能简介9第3章 加速度传感器数据采集系统的软件设计103.1 系统软件的功能说明103.2 系统程序

3、流程图103.3 系统主要代码11第4章 课程设计总结16参考文献17第1章 加速度数据采集系统设计方案1.1 引言随着智能化脚步的到来,人们已经发明出了很多用于测量的高智能产品,其中就有加速度传感器,加速度传感器是通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的移动速度,通过分析动态加速度,你可以分析出设备移动的方式。加速度传感器不仅可以测量牵引力产生的加速度,甚至可以用来分析发动机的振动。其应用非常广泛,例如加速度传感器可应用于地震波的检测,车祸报警的应用,还可用于高压电线的摆动监测,应用十分的广泛。1.2 总体方案论述 加速度数据采集系统的总体结构如图1所示。系统主要由三部分

4、组成,包括加速度传感器节点,协调器,PC。首先我们将编写好的协调器代码通过IAR环境烧写到协调器中,然后修改协调器中各节点ID,此时协调器将会组建一个小范围的网络来控制各个节点协调工作。加速度传感器节点将采集到的数据通过无线的方式传给协调器,协调器通过串口将数据上传到上位机的显示屏。本次的系统设计在原有的基础上增加了难度,不仅通过串口通信输出到 PC 机上实时显示,而且同过无线的方式用加速度传感器采集到的信息来控电机,通过转动与停止来检测是否产生加速度。其系统组成框图如图1.1所示 协调器PC显示屏加速度传感器器电源模块电机传感器图1.1 系统总体框图第2章 加速度数据采集系统的硬件设计2.1

5、 系统所需的硬件加速度数据采集系统所需的硬件包括加速度传感器节点,协调器,电机传感器节点,PC机,烧写代码的工具。其实物图如下: 图2.1 加速度传感器节点 图2.2 烧写代码工具图2.3 协调器图 2.4 电机传感器节点2.2 硬件系统各部分实现的功能2.2.1 数据的采集与发送部分实现该部分功能的部件是加速度传感器节点,该节点中的敏感元件将测点的加速度信号转换为相应的电信号,进入前置放大电路,经过信号调理电路改善信号的信噪比,再进行模数转换得到数字信号,最后送入到其嵌入的的单片机中,单片机再进行数据存储与控制。当传感元件以加速度a运动时,质量块受到一个与加速度方向相反的惯性力作用,发生与加

6、速度成正比a的形变,使悬臂梁也随之产生应力和应变。该变形被粘贴在悬臂梁上的扩散电阻感受到。根据硅的压阻效应,扩散电阻的阻值发生与应变成正比的变化,将这个电阻作为电桥的一个桥臂,通过测量电桥输出电压的变化可以完成对加速度的测量。其框图如图2.2:无线单片机(CC2430)外围匹配电路加速度传感器电源监测电路以及相应的指示电路系统电源图 2.2 无线加速度传感器网络节点框图2.2.2 协调器节点部分协调器是加速度传感器数据采集系统中的重要组成部分,它的作用主要包括协调建立网络,还包括检测网络状态、发送维护信号、发送采集命令,其他功能还包括:传输网络信标、管理网络节点及存储网络节点信息,并且提供关联

7、节点之间的路由信息;此外,网络协调器要存储一些基本信息,如节点数据设备、数据转发表及设备关联表等。其框图如图2.3:有节点加入网络初始化开始分配网络地址建立网络 图 2.3 协调器节点框图2.2.3 结果的表达与输出部分 该部分包括两部分,一是电机节点,二是PC机的显示屏。由加速度传感器节点采集到的数据最终将通过串口输出数据显示在屏幕上,还有通过电机的转动与停止来观察数据。图 2.4 数据显示在屏幕上2.3系统整体实现的功能简介 各个节点的代码及协调器的代码烧写完毕后,对加速度传感器进行一定动作后,在协调器所组建的这个小网络下将进行数据的无线传输。协调器接收到数据后通过串口将数据上传到显示屏上

8、,电机接收到数据后会开始转动。其实现的功能如下图所示: 第3章 加速度传感器数据采集系统的软件设计3.1 系统软件的功能说明主程序是系统的监控程序,主要对系统中各部分进行初始化工作,使整个系统在上电后进入初始化状态,主要工作流程是:系统在上电后首先完成CPU和外部端口的初始化,采集节点会将采集到的数据在ZigBee网络中广播,协调器将收到的数据上传上位机,电机收到数据后发生转动,这就是系统软件实现的功能。开始3.2 系统程序流程图处理器初始化各功能模块初始化ADC初始化设置到接收数据时间相应寄存器标志位清零Y读取数据寄存器处理并通过串口发送数据图 3.1 系统程序流程图3.3 系统主要代码3.

9、3.1 加速度传感器节点代码void SerialApp_Init( uint8 task_id ) halUARTCfg_t uartConfig; static uint8 deviceID;SerialApp_TaskID = task_id; afRegister( (endPointDesc_t *)&SerialApp_epDesc ); RegisterForKeys( task_id );Init_I2c();ADXL345Init(); IReadData(ADXL345_ADDR<<1, WHO_AM_I, &deviceID); /0xD3if

10、(deviceID = 0xE5) else while(1); UART0_Format.Header_1 = 0xee;UART0_Format.Header_2 = 0xcc;UART0_Format.NodeSeq = 0x01;UART0_Format.NodeID = Accele; UART0_Format.Tailer = 0xff; SerialApp_TxAddr.addrMode =(afAddrMode_t)Addr16Bit;/发送地址初始化 SerialApp_TxAddr.endPoint = SERIALAPP_ENDPOINT;SerialApp_TxAddr

11、.addr.shortAddr = 0xffff;TXPOWER = 0xf5;void SerialApp_Init( uint8 task_id )halUARTCfg_t uartConfig;static uint8 deviceID;SerialApp_TaskID = task_id;afRegister( (endPointDesc_t *)&SerialApp_epDesc );RegisterForKeys( task_id );Init_I2c();ADXL345Init();IReadData(ADXL345_ADDR<<1, WHO_AM_I, &a

12、mp;deviceID); /0xD3if(deviceID = 0xE5) else while(1); UART0_Format.Header_1 = 0xee;UART0_Format.Header_2 = 0xcc; UART0_Format.NodeSeq = 0x01;UART0_Format.NodeID = Accele;UART0_Format.Tailer = 0xff; SerialApp_TxAddr.addrMode =(afAddrMode_t)Addr16Bit;/发送地址初始化void SerialApp_ProcessMSGCmd( afIncomingMSG

13、Packet_t *pkt ) /处理接收到的RF消息 static UART_Format *receiveData; switch ( pkt->clusterId ) case SERIALAPP_CLUSTERID1: /处理各个传感器节数据 receiveData = (UART_Format *)(pkt->cmd.Data); if(receiveData->Header_1=0xcc)&&(receiveData->Header_2=0xee)&&(receiveData->Tailer=0xff) /校验包头包尾

14、if(receiveData->NodeID = Accele) /地址 HalLedBlink(HAL_LED_2,1,50,600); break; case SERIALAPP_CLUSTERID2: break; default: break; 3.2 协调器节点主要代码void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt ) /处理接收到的RF消息 UART_Format *receiveData;/*UART_Format rsp;rsp.Header_1 = 0xcc;rsp.Header_2 = 0xee;rsp

15、.NodeSeq = 0x01; rsp.Tailer = 0xff;*/receiveData = (UART_Format *)(pkt->cmd.Data);int8 receive_rssi; receive_rssi = pkt->rssi; switch ( pkt->clusterId )case SERIALAPP_CLUSTERID1: /处理各个传感器节数据if(receiveData->Header_1=0xee)&&(receiveData->Header_2=0xcc)&&(receiveData->

16、Tailer=0xff) /校验包头包尾if(receiveData->Command = MSG_PERIOD) /如果是周期消息receiveData->Data0 = receive_rssi;HalUARTWrite(SERIAL_APP_PORT, (uint8*)receiveData, sizeof(UART_Format); /通过串口发送给网关 if(receiveData->NodeID = LED_PWM)PWM_TxAddr = pkt->srcAddr; break;case SERIALAPP_CLUSTERID2: break;defaul

17、t:break; if (afStatus_SUCCESS != AF_DataRequest(txaddr, /发送地址(endPointDesc_t *)&SerialApp_epDesc, /endpoint描述cID, /clusterIDlen, p, /发送数据包的长度和地址&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS) elseHalLedBlink(HAL_LED_1,1,50,600);void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt ) /处理接收到的RF消息 U

18、ART_Format *receiveData; /*UART_Format rsp; rsp.Header_1 = 0xcc; rsp.Header_2 = 0xee; rsp.NodeSeq = 0x01; rsp.Tailer = 0xff;*/ receiveData = (UART_Format *)(pkt->cmd.Data); int8 receive_rssi; receive_rssi = pkt->rssi; switch ( pkt->clusterId ) case SERIALAPP_CLUSTERID1: /处理各个传感器节数据 if(recei

19、veData->Header_1=0xee)&&(receiveData->Header_2=0xcc)&&(receiveData->Tailer=0xff) /校验包头包尾 if(receiveData->Command = MSG_PERIOD) /如果是周期消息 receiveData->Data0 = receive_rssi; HalUARTWrite(SERIAL_APP_PORT, (uint8*)receiveData, sizeof(UART_Format); /通过串口发送给网关 if(receiveData-

20、>NodeID = LED_PWM) PWM_TxAddr = pkt->srcAddr; break; case SERIALAPP_CLUSTERID2: break; default: break; 3.3.3 电机节点代码void SerialApp_Init( uint8 task_id )halUARTCfg_t uartConfig;SerialApp_TaskID = task_id;afRegister( (endPointDesc_t *)&SerialApp_epDesc );RegisterForKeys( task_id );Motor_Init(

21、);LED_Init();uartConfig.configured = TRUE; / 2x30 don't care - see uart driver.uartConfig.baudRate = SERIAL_APP_BAUD;uartConfig.flowControl = FALSE;uartConfig.flowControlThreshold = SERIAL_APP_THRESH; / 2x30 don't care - see uart driver.uartConfig.rx.maxBufSize = SERIAL_APP_RX_SZ; / 2x30 don

22、't care - see uart driver.uartConfig.tx.maxBufSize = SERIAL_APP_TX_SZ; / 2x30 don't care - see uart driver.uartConfig.idleTimeout = SERIAL_APP_IDLE; / 2x30 don't care - see uart driver.uartCEnable = TRUE; / 2x30 don't care - see uart driver.uartConfig.callBackFunc = SerialAp

23、p_CallBack;HalUARTOpen (SERIAL_APP_PORT, &uartConfig); UART0_Format.Header_1 = 0xee;UART0_Format.Header_2 = 0xcc;UART0_Format.NodeSeq = 0x01;UART0_Format.NodeID = Motor;UART0_Format.Tailer = 0xff;SerialApp_TxAddr.addrMode =(afAddrMode_t)Addr16Bit;/发送地址初始化SerialApp_TxAddr.endPoint = SERIALAPP_END

24、POINT;SerialApp_TxAddr.addr.shortAddr = 0x0000;TXPOWER = 0xf5;void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt ) /处理接收到的RF消息 static UART_Format *receiveData; static UART_Format Rsp; Rsp.Header_1 = 0xee; Rsp.Header_2 = 0xcc; Rsp.NodeSeq = 0x01; Rsp.NodeID = Motor; Rsp.Command = MSG_RSP; Rsp.T

25、ailer = 0xff; switch ( pkt->clusterId ) case SERIALAPP_CLUSTERID1: /处理各个传感器节数据 receiveData = (UART_Format *)(pkt->cmd.Data); if(receiveData->Header_1=0xee)&&(receiveData->Header_2=0xcc)&&(receiveData->Tailer=0xff) /校验包头包尾 if(receiveData->NodeID = Accele) /地址 Motor_Control(FRONT); Rsp.Data0 = FRONT; else Motor_Control(HALT);第4章 课程设计总结 为期三周的加速度传感器数据采集系统的课程设计即将结束,这次的课设对我来说真的

温馨提示

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

评论

0/150

提交评论