无线传感网络技术课程设计报告模板

辽 宁 工 业 大 学

题目: 加速度传感器数据采集系统

院(系): 电子与信息工程学院 专业班级: 物联网 学 号: 学生姓名: 指导教师: 教师职称:

起止时间:14-06-23至14-07-11

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)

课程设计(论文)任务及评语

院(系):电子与信息工程学院 教研室:

目 录

第1章 加速度数据采集系统设计方案 ........................ 1 1.1 引言 ................................................. 1 1.2 总体方案论述 ......................................... 1 第2章 加速度数据采集系统的硬件设计 .................... 2 2.1 系统所需的硬件 ...................................... 2 2.2 硬件系统各部分实现的功能 ............................. 4 2.3系统整体实现的功能简介 ............................... 5 第3章 加速度传感器数据采集系统的软件设计 .............. 6 3.1 系统软件的功能说明 .................................. 6 3.2 系统程序流程图 ...................................... 6 3.3 系统主要代码 ........................................ 7 第4章 课程设计总结 ................................... 15 参考文献 ................................................ 16

第1章 加速度数据采集系统设计方案

1.1 引言

随着智能化脚步的到来,人们已经发明出了很多用于测量的高智能产品,其中就有加速度传感器,加速度传感器是通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的移动速度,通过分析动态加速度,你可以分析出设备移动的方式。加速度传感器不仅可以测量牵引力产生的加速度,甚至可以用来分析发动机的振动。其应用非常广泛,例如加速度传感器可应用于地震波的检测,车祸报警的应用,还可用于高压电线的摆动监测,应用十分的广泛。 1.2 总体方案论述

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

其系统组成框图如图1.1所示

图1.1 系统总体框图

第2章 加速度数据采集系统的硬件设计

2.1 系统所需的硬件

加速度数据采集系统所需的硬件包括加速度传感器节点,协调器,电机传感器节点,PC机,烧写代码的工具。

其实物图如下:

图2.1 加速度传感器节点

图2.2 烧写代码工具

图2.3 协调器

图 2.4 电机传感器节点

2.2 硬件系统各部分实现的功能

2.2.1 数据的采集与发送部分

实现该部分功能的部件是加速度传感器节点,该节点中的敏感元件将测点的加速度信号转换为相应的电信号,进入前置放大电路,经过信号调理电路改善信号的信噪比,再进行模数转换得到数字信号,最后送入到其嵌入的的单片机中,单片机再进行数据存储与控制。当传感元件以加速度a运动时,质量块受到一个与加速度方向相反的惯性力作用,发生与加速度成正比a的形变,使悬臂梁也随之产生应力和应变。该变形被粘贴在悬臂梁上的扩散电阻感受到。根据硅的压阻效应,扩散电阻的阻值发生与应变成正比的变化,将这个电阻作为电桥的一个桥臂,通过测量电桥输出电压的变化可以完成对加速度的测量。

其框图如图2.2:

图 2.2 无线加速度传感器网络节点框图

2.2.2 协调器节点部分

协调器是加速度传感器数据采集系统中的重要组成部分,它的作用主要包括协调建立网络,还包括检测网络状态、发送维护信号、发送采集命令,其他功能还包括:传输网络信标、管理网络节点及存储网络节点信息,并且提供关联节点之间的路由信息;此外,网络协调器要存储一些基本信息,如节点数据设备、数据转发表及设备关联表等。

其框图如图2.3:

图 2.3 协调器节点框图

2.2.3 结果的表达与输出部分

该部分包括两部分,一是电机节点,二是PC机的显示屏。由加速度传感器节点采集到的数据最终将通过串口输出数据显示在屏幕上,还有通过电机的转动与停止来观察数据。

图 2.4 数据显示在屏幕上

2.3系统整体实现的功能简介

各个节点的代码及协调器的代码烧写完毕后,对加速度传感器进行一定动作后,在协调器所组建的这个小网络下将进行数据的无线传输。协调器接收到数据后通过串口将数据 上传到显示屏上,电机接收到数据后会开始转动。

其实现的功能如下图所示:

第3章 加速度传感器数据采集系统的软件设计

3.1 系统软件的功能说明

主程序是系统的监控程序,主要对系统中各部分进行初始化工作,使整个系统在上电后进入初始化状态,,主要工作流程是:系统在上电后首先完成CPU和外部端口的初始化,采集节点会将采集到的数据在ZigBee网络中广播,协调器将收到的数据上传上位机,电 机收到数据后发生转动,这就是系统软件实现的功能。 3.2 系统程序流程图

图 3.1 系统程序流程图

3.3 系统主要代码

3.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

if(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.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

if(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( afIncomingMSGPacket_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)) //校验包头包尾

{

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.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

->Tailer==0xff)) //校验包头包尾

{

if(receiveData->Command == MSG_PERIOD) //如果是周期消息

{

receiveData->Data[0] = 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;

default:

break;

}

if (afStatus_SUCCESS != AF_DataRequest(txaddr, //发送地址(endPointDesc_t

*)&SerialApp_epDesc, //endpoint描述

cID, //clusterID

len, p, //发送数据包的长度和地址

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS))

{

}

else

{

HalLedBlink(HAL_LED_1,1,50,600);

}

void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt ) //处理接收到的RF

消息

{

UART_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((receiveData->Header_1==0xee)&&(receiveData->Header_2==0xcc)&&(receiveData

->Tailer==0xff)) //校验包头包尾

{

if(receiveData->Command == MSG_PERIOD) //如果是周期消息

{

receiveData->Data[0] = 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;

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();

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'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.

uartConfig.intEnable = TRUE; // 2x30 don't care - see

uart driver.

uartConfig.callBackFunc = SerialApp_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_ENDPOINT;

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.Tailer = 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.Data[0] = FRONT;

}else

{

Motor_Control(HALT);

第4章 课程设计总结

为期三周的加速度传感器数据采集系统的课程设计即将结束,这次的课设对我来说真的很重要,很贴近我们所学习的专业,真的学到了很多有用的知识。最近我们专业的实验 室引进了一批物联网实验箱,这是我以前所没有见过的,我想通过这次的学习会对我以后的工作有很大的帮助的。

这三周的课设共分为三个部分,第一部分是中软国际的一位老师给我们做了一次很有意义的培训。首先他灌输给我们无线传感器网络的一个整体的思维,然后给我们讲解其中各个小部分,例如协调器是如何组建网络的,紧接着给我们讲解C语言中的代码。在我看来这次的培训实用性真的很强,更贴近实践,我想在以后的工作中会给我很大的帮助,在 此,我要感谢这位老师教给我们这么多有用的知识。

第二部分是贾旭老对我们这次课程设计进行综合的指导,在一些细节方面给予我们帮助与解答。事实证明,前一阶段所学习的知识已经做到活学活用,很多以前不懂的地方现在已经都不是问题了,以前对于我们来说困难的问题大部分自己都能够解决,还有一些细 节问题在贾老师的帮助下都已经解决了,最后自己动手将整个加速度传感器数据采集系统连接成功,加速度传感器节点将采集到的数据通过无线的方式传给协调器,协调器通过串口将数据上传到上位机的显示屏。整个课程设计就完成了,在此,还要感谢贾老师给予我 们的指导

最后这部分主要是我们自己根据自己所做的系统书写课设论文。整个过程给了我很大 的启发,多动手实践对于以后找工作会有很大的帮助。

参考文献

[1] 许晓青, 王宝光, 孙春生. 基于 MEMS 传感器技术的微型化、数字式倾角仪的研究[J]. 电子测量技术, 2008( 2) .

[3] 李德胜, 王东红, 等. MEMS 技术及应用[ M]. 哈尔滨: 哈尔滨 工业大学出版社, 2002.

[5] 周立功. ARM 嵌入式系统基础教程[ M] . 北京: 北京航空航 天大学出版社, 2005

[3] 张毅刚.单片机原理及应用,北京:高等教育出版社,2003:126—135

[4] 顾兴源.计算机控制系统,北京:冶金工业出版社, 1981:25—40

[5] 张毅刚.单片机原理及接口技术.北京:人民邮电出版社,2008:53-70

辽 宁 工 业 大 学

题目: 加速度传感器数据采集系统

院(系): 电子与信息工程学院 专业班级: 物联网 学 号: 学生姓名: 指导教师: 教师职称:

起止时间:14-06-23至14-07-11

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)

课程设计(论文)任务及评语

院(系):电子与信息工程学院 教研室:

目 录

第1章 加速度数据采集系统设计方案 ........................ 1 1.1 引言 ................................................. 1 1.2 总体方案论述 ......................................... 1 第2章 加速度数据采集系统的硬件设计 .................... 2 2.1 系统所需的硬件 ...................................... 2 2.2 硬件系统各部分实现的功能 ............................. 4 2.3系统整体实现的功能简介 ............................... 5 第3章 加速度传感器数据采集系统的软件设计 .............. 6 3.1 系统软件的功能说明 .................................. 6 3.2 系统程序流程图 ...................................... 6 3.3 系统主要代码 ........................................ 7 第4章 课程设计总结 ................................... 15 参考文献 ................................................ 16

第1章 加速度数据采集系统设计方案

1.1 引言

随着智能化脚步的到来,人们已经发明出了很多用于测量的高智能产品,其中就有加速度传感器,加速度传感器是通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的移动速度,通过分析动态加速度,你可以分析出设备移动的方式。加速度传感器不仅可以测量牵引力产生的加速度,甚至可以用来分析发动机的振动。其应用非常广泛,例如加速度传感器可应用于地震波的检测,车祸报警的应用,还可用于高压电线的摆动监测,应用十分的广泛。 1.2 总体方案论述

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

其系统组成框图如图1.1所示

图1.1 系统总体框图

第2章 加速度数据采集系统的硬件设计

2.1 系统所需的硬件

加速度数据采集系统所需的硬件包括加速度传感器节点,协调器,电机传感器节点,PC机,烧写代码的工具。

其实物图如下:

图2.1 加速度传感器节点

图2.2 烧写代码工具

图2.3 协调器

图 2.4 电机传感器节点

2.2 硬件系统各部分实现的功能

2.2.1 数据的采集与发送部分

实现该部分功能的部件是加速度传感器节点,该节点中的敏感元件将测点的加速度信号转换为相应的电信号,进入前置放大电路,经过信号调理电路改善信号的信噪比,再进行模数转换得到数字信号,最后送入到其嵌入的的单片机中,单片机再进行数据存储与控制。当传感元件以加速度a运动时,质量块受到一个与加速度方向相反的惯性力作用,发生与加速度成正比a的形变,使悬臂梁也随之产生应力和应变。该变形被粘贴在悬臂梁上的扩散电阻感受到。根据硅的压阻效应,扩散电阻的阻值发生与应变成正比的变化,将这个电阻作为电桥的一个桥臂,通过测量电桥输出电压的变化可以完成对加速度的测量。

其框图如图2.2:

图 2.2 无线加速度传感器网络节点框图

2.2.2 协调器节点部分

协调器是加速度传感器数据采集系统中的重要组成部分,它的作用主要包括协调建立网络,还包括检测网络状态、发送维护信号、发送采集命令,其他功能还包括:传输网络信标、管理网络节点及存储网络节点信息,并且提供关联节点之间的路由信息;此外,网络协调器要存储一些基本信息,如节点数据设备、数据转发表及设备关联表等。

其框图如图2.3:

图 2.3 协调器节点框图

2.2.3 结果的表达与输出部分

该部分包括两部分,一是电机节点,二是PC机的显示屏。由加速度传感器节点采集到的数据最终将通过串口输出数据显示在屏幕上,还有通过电机的转动与停止来观察数据。

图 2.4 数据显示在屏幕上

2.3系统整体实现的功能简介

各个节点的代码及协调器的代码烧写完毕后,对加速度传感器进行一定动作后,在协调器所组建的这个小网络下将进行数据的无线传输。协调器接收到数据后通过串口将数据 上传到显示屏上,电机接收到数据后会开始转动。

其实现的功能如下图所示:

第3章 加速度传感器数据采集系统的软件设计

3.1 系统软件的功能说明

主程序是系统的监控程序,主要对系统中各部分进行初始化工作,使整个系统在上电后进入初始化状态,,主要工作流程是:系统在上电后首先完成CPU和外部端口的初始化,采集节点会将采集到的数据在ZigBee网络中广播,协调器将收到的数据上传上位机,电 机收到数据后发生转动,这就是系统软件实现的功能。 3.2 系统程序流程图

图 3.1 系统程序流程图

3.3 系统主要代码

3.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

if(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.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

if(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( afIncomingMSGPacket_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)) //校验包头包尾

{

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.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

->Tailer==0xff)) //校验包头包尾

{

if(receiveData->Command == MSG_PERIOD) //如果是周期消息

{

receiveData->Data[0] = 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;

default:

break;

}

if (afStatus_SUCCESS != AF_DataRequest(txaddr, //发送地址(endPointDesc_t

*)&SerialApp_epDesc, //endpoint描述

cID, //clusterID

len, p, //发送数据包的长度和地址

&SerialApp_MsgID, 0, AF_DEFAULT_RADIUS))

{

}

else

{

HalLedBlink(HAL_LED_1,1,50,600);

}

void SerialApp_ProcessMSGCmd( afIncomingMSGPacket_t *pkt ) //处理接收到的RF

消息

{

UART_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((receiveData->Header_1==0xee)&&(receiveData->Header_2==0xcc)&&(receiveData

->Tailer==0xff)) //校验包头包尾

{

if(receiveData->Command == MSG_PERIOD) //如果是周期消息

{

receiveData->Data[0] = 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;

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();

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'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.

uartConfig.intEnable = TRUE; // 2x30 don't care - see

uart driver.

uartConfig.callBackFunc = SerialApp_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_ENDPOINT;

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.Tailer = 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.Data[0] = FRONT;

}else

{

Motor_Control(HALT);

第4章 课程设计总结

为期三周的加速度传感器数据采集系统的课程设计即将结束,这次的课设对我来说真的很重要,很贴近我们所学习的专业,真的学到了很多有用的知识。最近我们专业的实验 室引进了一批物联网实验箱,这是我以前所没有见过的,我想通过这次的学习会对我以后的工作有很大的帮助的。

这三周的课设共分为三个部分,第一部分是中软国际的一位老师给我们做了一次很有意义的培训。首先他灌输给我们无线传感器网络的一个整体的思维,然后给我们讲解其中各个小部分,例如协调器是如何组建网络的,紧接着给我们讲解C语言中的代码。在我看来这次的培训实用性真的很强,更贴近实践,我想在以后的工作中会给我很大的帮助,在 此,我要感谢这位老师教给我们这么多有用的知识。

第二部分是贾旭老对我们这次课程设计进行综合的指导,在一些细节方面给予我们帮助与解答。事实证明,前一阶段所学习的知识已经做到活学活用,很多以前不懂的地方现在已经都不是问题了,以前对于我们来说困难的问题大部分自己都能够解决,还有一些细 节问题在贾老师的帮助下都已经解决了,最后自己动手将整个加速度传感器数据采集系统连接成功,加速度传感器节点将采集到的数据通过无线的方式传给协调器,协调器通过串口将数据上传到上位机的显示屏。整个课程设计就完成了,在此,还要感谢贾老师给予我 们的指导

最后这部分主要是我们自己根据自己所做的系统书写课设论文。整个过程给了我很大 的启发,多动手实践对于以后找工作会有很大的帮助。

参考文献

[1] 许晓青, 王宝光, 孙春生. 基于 MEMS 传感器技术的微型化、数字式倾角仪的研究[J]. 电子测量技术, 2008( 2) .

[3] 李德胜, 王东红, 等. MEMS 技术及应用[ M]. 哈尔滨: 哈尔滨 工业大学出版社, 2002.

[5] 周立功. ARM 嵌入式系统基础教程[ M] . 北京: 北京航空航 天大学出版社, 2005

[3] 张毅刚.单片机原理及应用,北京:高等教育出版社,2003:126—135

[4] 顾兴源.计算机控制系统,北京:冶金工业出版社, 1981:25—40

[5] 张毅刚.单片机原理及接口技术.北京:人民邮电出版社,2008:53-70


相关文章

  • 开题报告的模板
  • 杭州电子科技大学 毕业设计(论文)开题报告 题 目 电子计步器的设计与实现 学 院 电子信息学院 专 业 电子信息工程 姓 名 李钟 班 级 10041815 学 号 10041513 指导教师 胡炜薇 一.综述本课题国内外研究动态,说明选 ...查看


  • 2014数字电路课程设计报告格式模板
  • 五邑大学 题 目: 数字电路课程设计报告 院 系 专 业 学 号 学生姓名 指导教师 报告题目(三号宋字,粗体) 一. 题目的要求和意义(四号宋字,粗体) (小四号宋字)对课程设计内容做综述,介绍课程设计的目的和要求等内容. ---.. - ...查看


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


  • 物联网课程设计
  • 课程设计 班 级: 通信10-2 姓 名: 王佩 学 号: 1006030219 指导教师: 杨春玲 成 绩: 报告 电子与信息工程学院 信息与通信工程系 基于物联网的远程环境监测系统的设计 摘要 针对当前监控系统在室内环境监控中存在的弊端 ...查看


  • 从物联网构成看物联网工程专业的知识体系
  • 摘 要:结合物联网技术本身的体系框架,探讨了物联网工程专业所必备的知识体系,并结合二本院校的特点,为这类院校物联网工程专业培养方案的制定提供建议. 关键词:物联网专业:知识体系:培养方案:高校教育 中图分类号:G642.0 文献标识码:A ...查看


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


  • 物联网实验室(实训室)建设解决方案V1.4
  • 物联网工程实验室 广州飞瑞敖电子科技有限公司 地址:广州市番禺区番禺大道北555号天安节能科技园创新大厦410室 电话:[1**********]/22883196 网址:www.frotech.com 目录 一.物联网工程实验室建设背景. ...查看


  • 物联网技术应用_试卷A2016
  • 沙洲职业工学院 2015- 2016 学年 第 1学期 <物联网技术应用>考查试卷 课程代号:82212014 试卷编号:02A 班级 学号 姓名 成绩 一.选择题(第1 ~ 15题.每空2分,共30分) 1.物联网的英文名称是 ...查看


  • 物联网课程设置
  • 高校物联网专业课程设置 年初教育部下达了高校设置物联网专业申报通知,众多高校争相申报.由于物联网涉及的领域非常广泛,从技术角度,主要涉及的现有高校院系与专业有:计算机科学与工程,电子与电气工程,电子信息与通讯,自动控制,遥感与遥测,精密仪器 ...查看


热门内容