DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度综合传感器,在Arduino提高篇中已对其进行了介绍,本篇使用ESP8266来驱动IOT Kit板载DHT11温湿度传感器,并通过OLED进行显示。
DHT11是一款温湿度一体的数字传感器,内部包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机连接。外部只需要简单的威廉希尔官方网站 连接,就能实时采集本地温湿度。DHT11与单片机等控制器采用简单的单总线进行通讯,只需要一个I/O口。传感器内部温湿度数据40Bit一次性传给单片机,数据采用校验和的方式进行校验,有效地保证数据传输的准确性。
DHT11技术参数如下:
DHT11的管脚排列,窗孔朝上,从左到右依次为VCC、Dout、NC、GND。
在Arduino IDE中点击「项目」—「加载库」—「管理库」,输入"dht11",选择「DHT sensor library」进行安装。
查找库
在弹出的对话框中选择Install all,安装全部的关联库。
安装关联库
在IOT Kit上,DHT11温湿度传感器通过跳线帽连接到ESP8266的GPIO14。
威廉希尔官方网站 连接
在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将显示当前环境温湿度数据。
实验现象
全部0条评论
快来发表一下你的评论吧 !