77范文网 - 专业文章范例文档资料分享平台

基于zigbee的温度采集系统 - 图文

来源:网络收集 时间:2020-04-14 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于zigbee的温度采集实验

作者:姚志强

一般而言,无线传感网络具有采集点众多,分布面积广;网络节点间的位置关系不定,节点动态加入或脱离网络等特性。Z-Stack2007协议栈具有这些实验功能特性。

5.3.1 实验目的与器材

1)实验目的

本实验将利用Z-Stack2007协议栈构建一个具有实际意义的无线传感器网络。该网络中具有采集节点和传感节点。传感节点连接各种传感器,利用传感器获取环境温度、光照等外界信息。采集节点负责接收该zigbee网络里传感节点的信息,并通过串口上传至PC端的串口助手进行显示。

采集节点,上电启动后负责建立网络,并开启允许绑定功能;传感节点,上电启动后加入网络,并自动发起绑定请求,待采集节点建立绑定后,将传感器节点的外界温度信息和光照信息发送到采集节点上。

为了实验简单,只有一个采集节点收集这些信息,处理后通过串口上传到计算机,可以在串口调试工具上看到,为了提高网络的负载能力,可以增加中心收集节点。所以我们可以建立星形拓扑网络,协调器是采集节点,终端节点是传感节点。

为了实现上述实验目的,应该做到: ? 自动形成一个网络;

? 传感器设备必须能自动加入网络,并自动完成绑定; ? 如果传感器设备没有从中心节点收到应答,它将自动移除到该中心节点的绑定。然

后它将自动的去发现新的中心节点绑定。

本实验中传感节点具有获取节点内部温度信息、外界温度信息、外界光照信息等功能。 2)实验器材

? 4个CC2530开发模块(1个采集器节点,1个路由器,2个传感器节点); ? 2个DS18B20温度传感器; ? 2个光敏电阻;

5.3.2 实验原理与步骤

1)硬件介绍

1 温度传感器DS18b20

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种数字化单总线器件。属于新一代适配微处理器的改进型智能温度传感器。它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写。其测量温度范围为-55℃~+125℃。现场温度直接以“一线总线”的数字方式传输,用符号扩展的16位数字方式串行输出,大大提高了系统的抗干

扰性。广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。

DS18B20的性能特点如下:

? 采用DALLAS公司独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线

即可实现微处理器与DS18B20的双向通讯; ? 在使用中不需要任何外围元件;

? 可用数据线供电,供电电压范围:+3.0V~+5.5V;

? 测温范围:-55~+125℃。固有测温分辨率为0.5℃。当在-10℃~+85℃范围内,可确保

测量误差不超过0.5℃,在-55~+125℃范围内,测量误差也不超过2℃; ? 通过编程可实现9~12位的数字读数方式; ? 用户可自设定非易失性的报警上下限值;

? 支持多点的组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温 ? 负压特性,即具有电源反接保护电路。当电源电压的极性反接时,能保护DS18B20不

会因发热而烧毁,但此时芯片无法正常工作;

? DS18B20的转换速率比较高,进行9位的温度值转换只需93.75ms; ? 适配各种单片机或系统;

? 内含64位激光修正的只读存储ROM,扣除8位产品系列号和8位循环冗余校验码(CRC)

之后,产品序号占48位。出厂前产品序号存入其ROM中。在构成大型温控系统时,

允许在单线总线上挂接多片DS18B20。

DS18b20温度传感器实物如图 所示。

图 DS18b20温度传感器实物图

Zigbee实验板与温度传感器18b20的连接如图 所示

图 Zigbee实验板与温度传感器18b20的连接

ZigBee芯片通过P6_2管脚读取DS18b20所产生的温度数据。 2 光敏电阻器

光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1~10M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。

光敏电阻的主要参数: 光敏电阻的主要参数是: 光电流、亮电阻。光敏电阻器在一定的外加电压下,当有光照射时,流过的电流称为光电流,

外加电压与光电流之比称为亮电阻,常用“100LX”表示。

? 暗电流、暗电阻。光敏电阻在一定的外加电压下,当没有光照射的时候,流过的电流称

为暗电流。外加电压与暗电流之比称为暗电阻,常用“0LX”表示。

? 灵敏度。灵敏度是指光敏电阻不受光照射时的电阻值(暗电阻)与受光照射时的电阻值(亮电阻)的相对变化值。 ? 光谱响应。光谱响应又称光谱灵敏度,是指光敏电阻在不同波长的单色光照射下的灵敏

度。若将不同波长下的灵敏度画成曲线,就可以得到光谱响应的曲线。 ? 光照特性。光照特性指光敏电阻输出的电信号随光照度而变化的特性。从光敏电阻的光

照特性曲线可以看出,随着的光照强度的增加,光敏电阻的阻值开始迅速下降。若进一步增大光照强度,则电阻值变化减小,然后逐渐趋向平缓。在大多数情况下,该特性为非线性。 ? 伏安特性曲线。伏安特性曲线用来描述光敏电阻的外加电压与光电流的关系,对于光敏

器件来说,其光电流随外加电压的增大而增大。 ? 温度系数。光敏电阻的光电效应受温度影响较大,部分光敏电阻在低温下的光电灵敏较

高,而在高温下的灵敏度则较低。

? 额定功率。额定功率是指光敏电阻用于某种线路中所允许消耗的功率,当温度升高时,

其消耗的功率就降低。 光照传感器实物如图 所示

图 光照传感器实物图

Zigbee实验板与光敏电阻的连接如图 所示

图 Zigbee实验板与光敏电阻的连接

将ZigBee芯片的P04引脚设置为AD采样的模拟输入引脚,这样由光敏电阻阻值变换所引起的电压的变化量就会反映在芯片的模拟输入引脚上,芯片根据电压的变化量可以判断出当前的光照强度。 2)程序流程

1 传感节点发送数据流程

在节点成功加入网络并且同协调器绑定成功后,通过SimpleSensor.c文件中的zb_BindConfirm()函数来调用myApp_StartReporting()函数

1.void zb_BindConfirm( uint16 commandId, uint8 status ) {

(void)commandId;

if ( ( status == ZB_SUCCESS ) && ( myAppState == APP_START ) ) {

myAppState = APP_BOUND; myApp_StartReporting(); } else {

osal_start_timerEx( sapi_TaskID, MY_FIND_COLLECTOR_EVT, myBindRetryDelay ); } }

2.在myApp_StartReporting()函数中触发测量温度事件。

void myApp_StartReporting( void ) {

osal_start_timerEx( sapi_TaskID, MY_REPORT_TEMP_EVT, myTempReportPeriod ); osal_start_timerEx( sapi_TaskID, MY_REPORT_BATT_EVT, myBatteryCheckPeriod ); }

3.在函数zb_HandleOsalEvent()中对该事件进行响应。

void zb_HandleOsalEvent( uint16 event ) { ??

uint8 pData[2];

if ( event & MY_REPORT_EXTEMP_EVT )

{

pExTemp[0] = EXTEMP_REPORT; myApp_ReadExTemperature();

osal_memcpy( pExTemp+1, ch, 8 );

zb_SendDataRequest( 0xFFFF, SENSOR_REPORT_CMD_ID, 9, pExTemp, 0, AF_ACK_REQUEST, 0 ); }?? }

4.事件响应函数通过调用myApp_ReadExTemperature()函数读取当前温度值。 void myApp_ReadExTemperature( void ) {

UINT8 temh,teml; UINT16 num; UINT8 i;

uint8 Temp_channel; P0DIR=0x00;

P1DIR |= 0x0d; // 设置P1.0,P1.2,P1.3为输出方式 P2DIR |= 0x01; // 同上

read_data();// 读取温度

Temp_channel=0x31;

teml=sensor_data_value[0]; temh=sensor_data_value[1]; i=(Temp_channel-0x31)*2;

ch[0]=Temp_channel;//当前显示的传感器的编号 ch[1]=' ';

num=teml*625; //小数部分的取值每位代表0.0625(精度) if(flag==1) //判断正负温度 {

ch[2]='-'; //+0x2d 为变\码 }

else ch[2]='+'; if(temh/100==0) ch[3]=' ';

else ch[3]=temh/100+0x30; //+0x30 为变 0~9 ASCII码 if((temh/10==0)&&(temh/100==0)) ch[4]=' ';

else ch[4]=temh/10+0x30; ch[5]=temh+0x30; ch[6]='.';

ch[7]=num/1000+0x30;//忽略小数点后1位的数 }

read_data()是负责从DS18b20中读取当前温度的函数,其中涉及到对DS18b20器

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于zigbee的温度采集系统 - 图文在线全文阅读。

基于zigbee的温度采集系统 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/951375.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: