Arduino提高篇05—温湿度传感器DHT11

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度综合传感器,常用于暖通空调、汽车、除湿器、自动控制等领域。本篇介绍DHT11的驱动,通过串口打印采集到的环境温湿度数据。

1. DHT11介绍

DHT11是一款温湿度一体的数字传感器,内部包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机连接。外部只需要简单的电路连接,就能实时采集本地温湿度。DHT11与单片机等控制器采用简单的单总线进行通讯,只需要一个I/O口。传感器内部温湿度数据40Bit一次性传给单片机,数据采用校验和的方式进行校验,有效地保证数据传输的准确性。

DHT11技术参数如下:

  • 工作电压:3.3V-5.5V
  • 工作电流:平均0.5mA
  • 输出:单总线数字信号
  • 测量范围:湿度20-95%RH,温度0-50℃
  • 精度:湿度±5%,温度±2℃
  • 分辨率:湿度1%,温度1℃

DHT11的管脚排列,窗孔朝上,从左到右依次为VCC、Dout、NC、GND。

DHT11管脚

DHT11在电路连接中,通常会在数据引脚外加上拉电阻,如下为DHT11模块:

DHT11模块

2. 安装驱动库

在Arduino IDE中点击「项目」—「加载库」—「管理库」,输入"dht11",会看到有很多的库,可根据情况自己选择安装使用。本文选择第二个「DHT sensor library」进行安装。

安装库

要使用「DHT sensor library」,我们还要下载安装「Adafruit_Sensor」,需要注意的是,此库并没有在管理库中找到,我们在Github上直接点击下载

下载库

下载到压缩包后,在IDE中点击「项目」—「加载库」—「添加一个.ZIP库」,定位到刚才下载的压缩包进行安装。

添加库

3. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • DHT11传感器模块

4. 实验步骤

1. 根据原理图搭建电路图。

DHT11的单总线连接非常简单,模块VCC、GND分别连接到开发板的3.3V、GND,模块的DATA引脚连接开发板的任意数字引脚,本文连接数字引脚2。

实验原理图如下图所示:

电路连接图

实物连接图如下图所示:

实物连接图

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

#include "DHT.h"

#define DHTPIN  2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.println("DHT11 test");
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();//读湿度
  float t = dht.readTemperature();//读温度(摄氏度)

  Serial.print("Humidity:");
  Serial.print(h);
  Serial.print("% Temperature:");
  Serial.print(t);
  Serial.println("℃");
  delay(2000);
}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

5. 实验现象

打开串口监视器,波特率设置成与程序中相一致,可以看到间隔打印采集到的温湿度数据。

实验现象

关注微信公众号:TonyCode
Arduino学习交流群:868283450

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
扫码加入微信公众号:TonyCode

### 三阈值游程理论在干旱事件识别中的应用 三阈值游程理论是一种基于时间序列分析的方法,广泛应用于气象和水文领域,特别是用于识别和评估干旱事件的特性。该方法通过设定三个不同的阈值 \( R_0 \), \( R_1 \),以及 \( R_2 \)[^2]来区分潜在的干旱事件、剔除非真正的干旱事件,并最终决定是否将相邻的两个干旱事件合并。 #### 阈值定义及其作用 - **\( R_1 \)**: 当标准化降水蒸散指数 (SPEI) 小于 \( R_1 \) (-0.5) 时,初步认为可能存在干旱事件。 - **\( R_2 \)**: 若某次干旱仅持续一个月且 SPEI 大于 \( R_2 \) (-1),则此事件被排除为非干旱事件。 - **\( R_0 \)**: 如果两次连续的干旱之间仅有单个月份间隔,而这个月份对应的 SPEI 值小于 \( R_0 \) (0),那么这两次干旱会被视为同一个事件并进行合并;否则它们仍被认为是独立的干旱事件。 这种方法不仅能够有效筛选出真实的长期干旱情况,还能减少因短期波动造成的误报率,从而提高对水资源管理和农业规划的支持能力。 #### 实际案例分析 以锡林郭勒盟为例,在研究中采用了月尺度上的 SPEI 数据结合上述提到的三重标准来进行季节性和全年周期内的干旱特征提取工作[^1]。具体操作流程如下: 1. 利用历史气候数据计算每个月的 SPEI 数值; 2. 应用三阈值逻辑判断哪些时间段属于显著性的干旱时期; 3. 对所得结果进一步统计分析得到诸如平均干旱持续时间和严重程度等重要指标。 这种技术手段可以很好地帮助我们理解区域范围内过去发生的极端天气状况,并对未来可能出现的趋势做出预测,进而采取相应的预防措施减轻可能带来的经济损失和社会影响。 ```python def identify_drought_events(spei_series, r0=0, r1=-0.5, r2=-1): droughts = [] current_start = None for i in range(len(spei_series)): spei_value = spei_series[i] if spei_value < r1 and current_start is None: # Start a new potential drought event current_start = i elif spei_value >= r1 or ((current_start is not None) and (spei_value > r2)): if current_start is not None: duration = i - current_start if duration > 1 or spei_series[current_start:i].min() <= r2: droughts.append((current_start, i)) current_start = None return droughts ``` 以上代码片段展示了如何依据给定条件自动检测一系列数据中的干旱区间位置。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值