Download presentation
Presentation is loading. Please wait.
1
任务八 温湿度传感器模块
2
目 录 一、实训目的 二、实训内容 三、实训原理 四、实训步骤
3
实训目的 通过实训,掌握温湿度(数据型)传感器的采集和传输的方法,为无线传感网的组建做好准备。
4
目 录 一、实训目的 二、实训内容 三、实训原理 四、实训步骤
5
实训内容 实现温湿度传感器的采集和无线传输,并在PC机串口上显示。
6
目 录 一、实训目的 二、实训内容 三、实训原理 四、实训步骤
7
实训原理 通过CC2530的I/O口中,通过I2C通讯读取温湿度传感器的数据,然后通过ZigBee无线发送给协调器,协调器通过串口把数据发送给上位机,上位机进行集中采集和处理。 本实训的温湿度传感器主控器件采用瑞士Sensirion公司推出的SHT10单片数字湿湿度集成IC;该集成IC包括一个电容式聚合体测湿组件和一个能隙式测温组件,并与一个14位的A/D转换器以及串行接口电路在同一芯片上实现无缝连接。SHT10内部结构如图8.1所示。
8
实训原理 图8.1 SHT10内部结构
9
实训原理 测温组件和测湿组件感知到的外界温湿度的模拟量传输到内部的AD组件,由AD组件把模拟量转换为数字量传输到串行数据总线上。温湿度的测量数据需要通过一组测量命令来获取,SHT10命令集如下表8.1所示:
10
软复位,复位接口、清空状态寄存器,即清空为默认值下一次命令前等待至少11ms
实训原理 表8.1 SHT10命令集 命令 代码 保留 0000x 温度测量 00011 湿度测量 00101 读状态寄存器 00111 写状态寄存器 00110 0101x-1110x 软复位,复位接口、清空状态寄存器,即清空为默认值下一次命令前等待至少11ms 11110
11
实训原理 获取到的温湿度测量数据再通过相应的公式转换成对应的温湿度的值。 相对湿度输出转换公式为:
RHlinear=C1+C2•SORH+C3•SO2RH 其中,RHlinear为25℃时相对湿度的线性值,SORH为传感器输出的相对湿度的数值,C1,C2,C3为系数,公式各参数说明如表8.2所示。
12
实训原理 表8.2 相对湿度输出转换公式参数说明 温度输出转换公式为: RHtrue=d1+d2*SOT
SORH C1 C2 C3 12位 -4 0.0405 -2.8*10-6 8位 0.648 -7.2*10-4 温度输出转换公式为: RHtrue=d1+d2*SOT 其中RHtrue为实际温度,SOT为传感器输出的湿度数值,d1,d2为系数,公式各参数说明如表8.3与表8.4所示。
13
实训原理 表8.3 温度输出转换公式参数说明1 表8.4 温度输出转换公式参数说明2 VDD/V d1/℃ d1/℉ 5 -40.00 4
-39.75 -39.55 3.5 -39.66 -39.39 3 -39.60 -39.28 2.5 -39.19 表8.4 温度输出转换公式参数说明2 SOT d2/℃ d2/℉ 14位 0.01 0.018 12位 0.04 0.072
14
目 录 一、实训目的 二、实训内容 三、实训原理 四、实训步骤
15
实训步骤 第一步,新建工程、配置工程相关设置。具体参照实训3操作。 第二步,编写程序。
由于程序很长,只能对关键部分的程序进行分析。详细见“实训8 温湿度传感器模块/Project”目录包含的源程序文件。 1. sensor.c中的main函数 void main(void) { uint16 sensor_val ,sensor_tem; uint16 len = 0; halBoardInit(); //模块相关资源的初始化 ConfigRf_Init(); //无线收发参数的配置初始化
16
实训步骤 Timer4_Init(); //定时器初始化 Timer4_On(); //打开定时器 while(1)
{ APP_SEND_DATA_FLAG = GetSendDataFlag(); if(APP_SEND_DATA_FLAG == 1) //定时时间到 { /*【传感器采集、处理】 开始*/ #if defined (TEM_SENDOR) //温湿度传感器 call_sht11(&sensor_tem,&sensor_val); //取温湿度数据
17
实训步骤 //把采集数据传化成字符串,以便于在串口上显示观察
printf_str(pTxData,"温湿度传感器,温度:%d.%d, 湿度:%d.%d\r\n“,sensor_tem/10,sensor_tem%10,sensor_val/10,sensor_val%10); #endif halLedToggle(3); // 绿灯取反,无线发送指示 //把数据通过ZigBee发送出去 basicRfSendPacket(SEND_ADDR, pTxData,strlen(pTxData )); Timer4_On(); //打开定时}/*【传感器采集、处理】 结束*/ } }
18
实训步骤 程序分析: ① 第14行,条件编译,用来选择温湿度传感器传感器模块功能。
② 第15行,call_sht11 ()函数为读取温湿度数据。 ③ 第17行,把采集数据按格式连接成字符串写入到pTxData中。 ④ 第22行,把采集数据通过ZigBee发送出去,在PC机串口调试终端显示出来。 第三步,建立模块设备。 参考实训6操作建立tem_sensor与collect模块。 第四步,模块连接及下载程序。
19
实训步骤 1.温湿度传感器模块 选择“tem_sensor”模块,选择collect.c单击右键,选择“Options”,在弹出的对话框中将“Exclude from build”复选框中打“”,然后单击“OK”。重新编译程序无误后,下载程序到温湿度传感器模块中。 2.协调器模块 选择“collect”模块,选择sensor.c单击右键,选择“Options”,在弹出的对话框中将“Exclude from build”复选框中打“”,然后单击“OK”。重新编译程序无误后,将协调器模块通过串口线连接到PC机串口或者通过USB转串口线连接到PC机,给协调器通电,下载程序到协调器模块中。
20
实训步骤 温湿度传感器模块如图8.2所示。模块连接如图8.3所示。 图8.2 温湿度传感器模块
21
实训步骤 图8.3 模块连接图
22
实训步骤 第五步,运行程序。 1.将温湿度传感器模块上电。
2.打开串口调试软件,把串口的波特率设置为38400。根据温湿度的变化,在PC机的串口调试终端上显示不同的温湿度数据。如图8.4所示。
23
谢谢!
Similar presentations