《无线传感器网络设计与应用》(第15周)协议栈测温和单元测验教案.doc

《无线传感器网络设计与应用》(第15周)协议栈测温和单元测验教案.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
扬州工业职业技术学院教案 序号 29 周次 15 授课形式 讲授 授课章节名称 CH25协议栈应用6 温度传感器DS18B20 教学目的 1、通过讲解,让同学们掌握协议栈测温的工作原理,熟悉协议栈中调用底层测温函数以及相关数据转化程序,进一步熟悉协议栈的框架。 教学重点 1、协议栈测温的工作原理 教学难点 1、协议栈测温的工作原理 使用教具 无 课外作业 课后体会 通过讲解,同学们熟悉了Zstack协议栈测温的工作原理。完成了教学任务,达到了教学效果。 授课主要内容 [旧课复习与新课引入] 上一节课我们介绍了基于协议栈多终端组网实验,通过对协议栈组网原理的理解进一步了解了协议栈的内部结构,今天我们要学习的内容是无线传感器网络温度测量实验。 [新课讲解] 一,实验内容介绍 今天我们所要做的内容是:终端连接温度传感器DS18B20通过函数对温度传感器进行初始化并控制测温,将测得的数据转化为字符串发送给协调器,协调器通过串口发给电脑,串口调试助手显示接收到的字符串,并且在液晶屏上显示出来。两个节点分别扮演协调器和终端节点。 二,程序代码介绍 协调器所要执行的是接受来自终端节点的数据,因此只需要调用相关的接收数据的函数即可,如下图所示,接收数据的函数在sampleapp文件夹中定义: 在此文件夹中我们可以看到对温度传感器ds18b20操作的底层函数都包含在ds18b20.c这个文件中。 在中,找到对应的温度传感器采集转换API函数: 上述代码主要是定义存放温度数据的数组以及调用温度读函数,接着将读到的二进 转换为十进制的数并通过转换成asic码进行串口发送。串口发送部分代码: 解释上述代码,让学生理解代码的具体含义。 三,调试程序 1.选择 CoodinatorEB, 下载到开发板 A;作为协调器,通过 USB 线跟电脑连接. 2.选择 EndDeviceEB, 下载到开发板 B;作为终端设备无线发送数据给协调器,也通过 USB线跟电脑连接。 3.给两块开发板上电,打开串口调试助手,设为:115200 8N1 并打开串口,设置如下串口请选择自己的端口号。 终端连网成功后会向协调器发数据,实验结果如下图所示。 请学生分组两人一组进行实验,进行串口调试,和程序代码的修改调试,最后通过观察现象来验证自己的程序设计是否正确。 [本节小结]: 本章主要介绍了协议栈测温的基本工作原理,通过介绍了解了协议栈温度试验的基本内容和具体的实现方式,通过动手实践,学生体会到了无线传感网的具体函数调用,最后下载到开发板中运行程序,观察到了现象,从而加深了对协议栈工作原理的理解,通过教师的讲解。学生掌握的总体情况良好。 [作业]: 通过web查阅协议栈测温的相关例程 扬州工业职业技术学院教案 序号 30 周次 15 授课形式 讲授 授课章节名称 单元测验(项目化上机) 教学目的 通过项目化测验验证学生对zstack协议栈的掌握程度和串口通信的流程步骤。 教学重点 教学难点 使用教具 课外作业 课后体会 单元测验 考题:利用CC2530平台和气体传感器来做一个物联网气体报警系统,该系统由协调器和终端节点构成,终端节点上集成气体传感器模块,系统包含人机监控平台和协调器OLED显示模块。 系统设计要求:在zstack协议栈框架下,对协调器和终端设备进行程序设计,使得终端设备能够对烟雾报警模块的信息进行采集,并无线发送至协调器,协调器接收到报警信息后通过串口发送至人机监控平台,在串口调试助手上显示“warning detect bad air!!!” 关键部分代码: byte state; if(DATA_PIN == 1) { state = 0x31; HalUARTWrite(0,"security\n", 9); HalLcdWriteString( "security", HAL_LCD_LINE_3 ); } else { MicroWait (10000); // Wait 10ms if(DATA_PIN == 0) { state = 0x30; HalUARTWrite(0,"Got bad Air\n",12); HalLcdWriteString( "Got bad Air", HAL_LCD_LINE_3 ); } } if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc,

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档