Arduino篇—自制温湿度测量仪

电子说

1.2w人已加入

描述

课程目标

  • DHT11温湿度传感器的原理及应用
  • OLED屏幕综合应用
  • 温湿度测量仪的制作

相关知识

**DHT11数字温湿度传感器:**DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。

**DHT11结构:**DHT11是一款温湿度一体的数字传感器,内部包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机连接。外部只需要简单的电路连接,就能实时采集本地温湿度。

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

OLED屏

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

DHT11驱动库: 在Arduino IDE中点击「项目」—「加载库」—「管理库」,输入"dht11",选择第二个「DHT sensor library」进行安装。安装的时候会跳出提示,告诉你如果安装这个库文件,还需要另外的配套库文件,选择全部安装即可。

OLED屏

电路搭建

所需材料

ArduinoUNO * 1
DHT11温湿度传感器 *1
OLED显示屏 * 1
杜邦线若干

电路连接

OLED屏的VCC和GND分别连接开发板的5V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。DHT11模块VCC、GND分别连接到开发板的5V、GND,模块的DATA引脚连接开发板数字引脚2。

OLED屏

程序编写

练习一:串口读取温湿度

通过串口打印出读取导电温湿度传感器测得的值。

图形化方式:

OLED屏

代码方式:

/* 项目名称:串口显示温湿度
 * 项目时间:2022.03.24
 * 项目作者:MRX
 */
#include "DHT.h"


#define DHTPIN  2
#define DHTTYPE DHT11


DHT dht(DHTPIN, DHTTYPE);


void setup() {
  Serial.begin(9600);
  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);
}

演示图片:

OLED屏

练习二:温湿度测量仪

将测得的温湿度值显示在OLED屏幕上。

图形化方式:

OLED屏

代码方式:

/* 项目名称:串口显示温湿度
 * 项目时间:2022.03.24
 * 项目作者:MRX
 */
#include < U8g2lib.h >
#include < Wire.h >
#include "DHT.h"
#define DHTPIN  2
#define DHTTYPE DHT11
//iic驱动方式
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
DHT dht(DHTPIN, DHTTYPE);


void setup() {
  u8g2.begin();
  dht.begin();
}
float h;
float t;


void loop() {
  h = dht.readHumidity();//读湿度
  t = dht.readTemperature();//读温度(摄氏度)
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_timR10_tf);
    u8g2.setCursor(25,10);
    u8g2.print("T&H Report");
    u8g2.setCursor(5,30);
    u8g2.print(String("Temperature:") + String(t) + String(" C"));
    u8g2.setCursor(5,50);
    u8g2.print(String("Humidity:") + String(h) + String("%"));
  } while ( u8g2.nextPage() );
  delay(1000);
}

演示图片:

OLED屏

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

全部0条评论

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

×
20
完善资料,
赚取积分