TinyOS操作系统开发技术及实践(西电版)实践4 TinyOS应用开发.ppt_第1页
TinyOS操作系统开发技术及实践(西电版)实践4 TinyOS应用开发.ppt_第2页
TinyOS操作系统开发技术及实践(西电版)实践4 TinyOS应用开发.ppt_第3页
TinyOS操作系统开发技术及实践(西电版)实践4 TinyOS应用开发.ppt_第4页
TinyOS操作系统开发技术及实践(西电版)实践4 TinyOS应用开发.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

实践4TinyOS应用开发 实践指导知识拓展 实践指导 实践4 G 1实现CC2530光敏信息的采集传输及向PC机传送数据 需要完成以下工作 1 通过AD进行光敏信息的采集 2 通过射频将数据发送至接收者 3 接收者接收到数据之后 将接收的数据通过串口发送至PC机 分析 1 本实验使用两个CC2530节点 命名为节点1和节点2 2 在 mytinyos apps 目录下创建工程文件 其中 程序的编写分为两部分 数据的发送部分和接收部分 节点1负责信息的采集和发送 节点2负责信息的接收以及将数据通过串口传输至PC机 3 编写程序及Makefile文件 4 观察实验现象 参考解决方案 1 创建工程目录由于本实验的节点1和节点2使用的程序不同 因此本实验的发送和接收分别在同一个工程文件的两个子目录下 1 创建传感器采集传输工程目录Sensor 打开cygwin 在 opt mytinyos apps目录下 输入 mkdirSensor 创建目录 具体操作如图S4 1所示 图S4 1创建Sensor目录 2 创建发送和接收文件子目录 以步骤 1 创建文件为例在Sensor文件夹下分别创建发送和接收工程文件夹 ADRadioSend和ADRadioReceive 如图S4 2所示 图S4 2创建发送和接收子目录 创建完成之后目录如图S4 3所示 图S4 3创建完成后的目录 2 发送程序的编写发送程序的编写需要完成以下几项工作 1 创建并编写ADSensorSendApp nc文件 使用EditPlus程序在ADRadioSend目录下新建ADSensorSendApp nc文件 并输入如下代码 include include BlinkToRadio h configurationADSensorSendAppC implementation componentsADSensorSendC componentsnewAdcC asADSensor componentsActiveMessageC componentsLedsC ADC信息采集配置ADSensorSendC ADSensorControl ADSensor ADC读取ADSensorSendC ADSensorRead ADSensor componentsMainC 启动接口ADSensorSendC Boot MainC Boot componentsnewTimerMilliC asSensorTimerC 定时器ADSensorSendC SensorTimer SensorTimerC componentsPlatformSerialC 串口配置ADSensorSendC StdControl PlatformSerialC StdControl 串口传输 ADSensorSendC UartStream PlatformSerialC UartStream LED组件ADSensorSendC Leds LedsC Leds 射频发送组件 ADSensorSendC Packet ActiveMessageC ADSensorSendC AMPacket ActiveMessageC ADSensorSendC AMSend ActiveMessageC AMSend uniqueCount ADRadioSend ADSensorSendC AMControl ActiveMessageC ADSensorSendC PacketAcknowledgements ActiveMessageC 2 创建并编写ADSensorSendC nc文件 使用EditPlus程序在ADRadioSend目录下新建ADSensorSendC nc文件 并输入如下代码 include Adc h include BlinkToRadio h includemoduleADSensorSendC uses interfaceBoot interfaceAdcControlasADSensorControl interfaceReadasADSensorRead interfaceTimerasSensorTimer interfaceLeds interfacePacket interfaceAMPacket interfaceAMSend interfaceSplitControlasAMControl interfacePacketAcknowledgements interfaceStdControl interfaceUartStream implementation uint8 tm len uint8 tm send buf 2 uint16 tcounter message tpkt 传感器采集任务 taskvoidsensorTask 选择P0 7为AD采集通道 callADSensorControl enable ADC REF AVDD ADC 14 BIT ADC AIN7 开始采集AD信息callADSensorRead read 系统启动 eventvoidBoot booted 开启定时器任务 callSensorTimer startPeriodic 1000 开启ad采集callStdControl start 开启无线传输callAMControl start 当无线开启之后会触发AMControl startDone事件 eventvoidAMControl startDone error terr if err SUCCESS 如果开启成功 将点亮LED1callLeds led0On callTimer0 startPeriodic TIMER PERIOD MILLI else 否则重新启动无线callAMControl start 定时事件eventvoidSensorTimer fired 开启传感器采集任务postsensorTask ADC读取完毕之后将会触发readDone事件 eventvoidADSensorRead readDone error tresult int16 tval BlinkToRadioMsg btrpkt 获得要发送的信息包btrpkt BlinkToRadioMsg callPacket getPayload asynceventvoidUartStream sendDone uint8 t buf uint16 tlen error terror asynceventvoidUartStream receivedByte uint8 tbyte 在接收完receive命令欲接收的长度后会调用此事件 asynceventvoidUartStream receiveDone uint8 t buf uint16 tlen error terror 如果发送成功 接收者将发送确认帧给发送者 eventvoidAMSend sendDone message t msg error terror if eventvoidAMControl stopDone error terr 3 创建BlinkToRadio h文件 使用EditPlus程序在ADRadioSend目录下新建BlinkToRadio h文件 并输入如下代码 ifndef BLINKTORADIO H define BLINKTORADIO Henum 定时事件TIMER PERIOD MILLI 2000 发送数据结构体 typedefnx structBlinkToRadioMsg nx uint16 tnodeid nx uint16 tcounter BlinkToRadioMsg endif 4 编写Makefile文件 使用EditPlus程序在ADRadioSend目录下创建Makefile文件 并输入以下内容 COMPONENT ADSensorSendAppCinclude MAKERULES 5 编译程序 在Cygwin下 保证工作目录为ADRadioSend 输入 makecc2530 命令进行编译 编译完成后如图S4 4所示 图S4 4编译ADRadioSend程序 3 接收程序编写接收程序的编写需要完成以下几项工作 1 创建并编写ADSensorReceiveApp nc文件 使用EditPlus程序在ADRadioReceive目录下新建ADSensorReceiveApp nc文件 并输入如下代码 include include BlinkToRadio h configurationADSensorReceiveAppC implementation componentsADSensorReceiveC componentsActiveMessageC componentsnewAMReceiverC AM BLINKTORADIO componentsLedsC componentsMainC ADSensorReceiveC Boot MainC Boot componentsnewTimerMilliC asSensorTimerC ADSensorReceiveC SensorTimer SensorTimerC componentsPlatformSerialC ADSensorReceiveC StdControl PlatformSerialC StdControl ADSensorReceiveC UartStream PlatformSerialC UartStream ADSensorReceiveC Leds LedsC Leds ADSensorReceiveC AMControl ActiveMessageC ADSensorReceiveC Receive ActiveMessageC Receive uniqueCount ADRadioReceive 2 创建并编写ADSensorReceiveC nc文件 使用EditPlus程序在ADRadioReceive目录下新建ADSensorReceiveC nc文件 并输入如下代码 include BlinkToRadio h includemoduleADSensorReceiveC uses interfaceBoot interfaceTimerasSensorTimer interfaceLeds interfacePacket interfaceAMPacket interfaceSplitControlasAMControl interfaceReceive interfaceStdControl interfaceUartStream implementation uint8 tm len uint8 tm send buf 2 uint16 tcounter message tpkt eventvoidBoot booted 开启定时器任务callSensorTimer startPeriodic 1000 开启无线传输callAMControl start 当无线开启之后会触发AMControl startDone事件 eventvoidAMControl startDone error terr if err SUCCESS 如果开启成功 将点亮LED1callLeds led0On else 否则重新启动无线callAMControl start 定时事件eventvoidSensorTimer fired asynceventvoidUartStream sendDone uint8 t buf uint16 tlen error terror asynceventvoidUartStream receivedByte uint8 tbyte 在接收完receive命令欲接收的长度后会调用此事件 asynceventvoidUartStream receiveDone uint8 t buf uint16 tlen error terror 数据接收事件 接收者接收到发送者发送的信息后 将数据发送通过串口发送至上位机 eventmessage t Receive receive message t msg void payload uint8 tlen 判断接收到数据的帧长度if len sizeof BlinkToRadioMsg 将负载取出来BlinkToRadioMsg btrpkt BlinkToRadioMsg payload if btrpkt nodeid TOS NODE ID 采集的光敏信息 m send buf 0 btrpkt counter 8 m send buf 1 btrpkt counter eventvoidAMControl stopDone error terr 3 创建BlinkToRadio h文件 使用EditPlus程序在ADRadioReceive目录下新建BlinkToRadio h文件 并输入如下代码 ifndef BLINKTORADIO H define BLINKTORADIO Henum 定时事件TIMER PERIOD MILLI 2000 接收数据结构体 typedefnx structBlinkToRadioMsg nx uint16 tnodeid nx uint16 tcounter BlinkToRadioMsg endif 4 编写Makefile文件 使用EditPlus程序在ADRadioReceive目录下创建Makefile文件 并输入以下内容 COMPONENT ADSensorReceiveAppCinclude MAKERULES 5 编译程序 在Cygwin下 保证当前工作目录为ADRadioReceive 然后输入 makecc2530 命令进行编译 编译完成后如图S4 5所示 图S4 5编译ADRadioReceive程序 4 实验现象程序编译完成之后 将发送程序和接收程序分别下载至节点1和节点2 按下复位按键 开始数据的传输 并通过串口传输到PC

温馨提示

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

评论

0/150

提交评论