DS18B20传感..docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DS18B20传感.

温度传感器 DS18B20选择从大家很熟悉且常用的温度传感器 DS18B20 开始。逐步建立自己的无线传感网!传感器介绍:DS18B20 数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺 纹式,磁铁吸附式,不锈钢封 装式,主要根据应用场合 的不同而改变 其外观。封装后的 DS18B20 可用于电缆沟 测温,高炉水循 环测温 ,锅炉测温 ,机房测温 ,农业大棚测温 ,洁净室测温 ,弹药库测温 等各种非极限 温度场合。耐磨耐碰,体积小,使用 方便,封装 形式多样,适用于各种狭 小空间设备数字测 温和控制领域。实物 如图所示:图 3.95 DS18B20 外观实现平台:ZigBee 传感器节点;图 3.97 ZigBee 传感器器节点图 3.98 DS18B20 硬件电路图实验现象:节点通过采集 DS18B20 温度信息,实时发送到协调器。协调器通过串口打印和液晶显示方式展示当前温度。实验讲解:ZigBee 要完成采集温度传感器信息再发送到协调器的过程,必须在协议栈上完成所有代码的编程。实际上,我们可以在裸机(不带协议栈)的基础上成功驱动起传感器,然后再加载到协议栈上面。这样会有事半功倍的效果。下面我们就来看看如何把裸机上成功驱动的传感器添加到协议栈代码上,并实现数据传输。实验过程:分三个步骤,如下:一:在裸机上完成对 DS18B20 的驱动。二:将程序添加到协议栈代码中三:将数据打包并按指定的方式发送给指定设备。一:在裸机上完成对 DS18B20 的驱动。相信大家都接触过 51 单片机对 DS18B20 温度读取的编程。CC2530 裸机驱动 DS18B20 也是这样的道理。只要我们掌握好单片机 C 语言编程以及了解传感器的原理就可以轻松应对。打开配套程序下裸机文件夹—温度传感器 DS18B20 下的工程文件,看到主函数如下:(代码取用模块化编程,其他函数请看工程文件)/**************************************//* Zigbee 学习例程 *//* 例程名称:温度传感器 DS18B20 *//* 建立时间:2012/10/1 *//*描述:将采集到的温度信息通过串口打印到串口调试助手。**************************************/1. #include iocc2530.h2. #include uart.h3. #include ds18b20.h4. #include delay.h5. void Initial() //系统初始化6. {7.CLKCONCMD = 0x80; //选择 32M 振荡器8. while(CLKCONSTA0x40); //等待晶振稳定9.UartInitial();//串口初始化10.P0SEL = 0xbf;//DS18B20 的 io 口初始化11. }12. void main()13. {14.char data[5]=temp=; //串口提示符15.Initial();16.while(1)17.{18.Temp_test();//温度检测/*******温度信息打印 ***********/19.UartTX_Send_String(data,5);20.UartSend(temp/10+48);21.UartSend(temp%10+48);22.UartSend(\n);23.24.Delay_ms(1000);//延时函数使用定时器方式,延时 1S25.}26. }我们来看主函数:第 15 行:进行一些初始化工作。第 18 行:在大循环中,检测温度。第 19~22 行:通过串口打印温度信息简单几行代码,就完成了对 DS18B20 的读取。大家可以在工程里进入具体函数看代码,理解 DS18B20 的读取过程。实验现象如图 3.11.1 D 所示:图 3.99二:将程序添加到协议栈代码中有了基础实验的代码,我们的实验就完成了一大半了。至少证明 CC2530 可以驱动起我们想要的传感器。接下来我们需要做的工作就是移植到协议栈z-stack 上面,这个过程要注意的是要了解协议栈上的 IO 口用途和晶振工作频率。首先理清一下思路,我们要实验的功能是终端设备读取 DS18B20 温度信息,通过点播方式发送到协调器,协调器通过通常打印出来。在串口调试助手上面显示。这就实现了无线温度采集。(使用点播的原因是终端设备有针对性地发送数据给指定设备,不想广播和组播可能会造成数据冗余,关于点播内容请参考《zigbee 实战演练》点播章节,这里不再累赘。)1)我们将裸机程序里面的 DS18B20.c 和 DS18B20.h 文件复制到SAMP

文档评论(0)

xznh + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档