全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 测量仪表 >

Arduino篇—自制温湿度测量仪

时间:2023-11-02 10:16

人气:

作者:admin

标签:   自制    温湿度  arduino 

导读:DHT11数字温湿度传感器:DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器...

课程目标

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

相关知识

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

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

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

图片

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

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

图片

电路搭建

所需材料

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

电路连接

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

图片

程序编写

练习一:串口读取温湿度

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

图形化方式:

图片

代码方式:

/* 项目名称:串口显示温湿度
 * 项目时间: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屏幕上。

图形化方式:

图片

代码方式:

/* 项目名称:串口显示温湿度
 * 项目时间: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);
}

演示图片:

图片

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信