使用ESP8266驱动DHT11温湿度传感器

描述

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度综合传感器,在Arduino提高篇中已对其进行了介绍,本篇使用ESP8266来驱动IOT Kit板载DHT11温湿度传感器,并通过OLED进行显示。

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。

2. 安装驱动库

在Arduino IDE中点击「项目」—「加载库」—「管理库」,输入"dht11",选择「DHT sensor library」进行安装。

Arduino

查找库

在弹出的对话框中选择Install all,安装全部的关联库。

Arduino

安装关联库

3. 硬件连接及程序下载

在IOT Kit上,DHT11温湿度传感器通过跳线帽连接到ESP8266的GPIO14。

Arduino

电路连接

在Arduino IDE中新建sketch,拷贝如下代码保存并下载到开发板。

/*
 * dht11
 * ESP8266驱动DHT11温湿度传感器 
 * OLED显示
 */
#include 
#include 
#include 
#include "DHT.h"

#define DHT_Pin 14  //控制引脚
#define DHTTYPE DHT11 //传感器类型 DHT11 DHT21 DHT22

DHT dht(DHT_Pin, DHTTYPE);
Adafruit_SSD1306 oled(128, 64, &Wire,-1);

void setup() {
  oled.begin(SSD1306_SWITCHCAPVCC,0x3C);
  oled.setTextColor(WHITE);//开像素点发光
  oled.clearDisplay();//清屏 
  oled.setTextSize(2); //设置字体大小
  oled.display(); // 开显示
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  oled.clearDisplay();//清屏 
  oled.setCursor(10, 10);//设置显示位置
  oled.print("T:");
  oled.print(t);
  oled.println(" C");
  oled.setCursor(10, 40);//设置显示位置
  oled.print("H:"); 
  oled.print(h);
  oled.println(" %");
  oled.display(); // 开显示
  delay(1000);
}

上传成功后,OLED将显示当前环境温湿度数据。

Arduino

实验现象

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分