DHT11 读温湿度 程序-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1096|回复: 1

DHT11 读温湿度 程序

[复制链接]
发表于 2022-4-21 22:54 | 显示全部楼层 |阅读模式
  1. DHT11  读温湿度 程序
复制代码

  1. //使用库:DHT sensor library

  2. #include <Adafruit_Sensor.h>
  3. #include <DHT.h>
  4. #include <DHT_U.h>

  5. #define DHTPIN 32     // 设置io口

  6. #define DHTTYPE    DHT11     // DHT 11
  7. //#define DHTTYPE    DHT22     // DHT 22 (AM2302)
  8. //#define DHTTYPE    DHT21     // DHT 21 (AM2301)



  9. DHT_Unified dht(DHTPIN, DHTTYPE);// 初始化io 和传感器类型

  10. uint32_t delayMS;// 采样间隔

  11. void setup() {
  12.   Serial.begin(9600);
  13.   // 初始化设备。
  14.   dht.begin();
  15.   Serial.println(F(" "));
  16.   Serial.println(F("DHT11 统一传感器示例"));
  17.   // 打印温度传感器详细信息。
  18.   sensor_t sensor;
  19.   dht.temperature().getSensor(&sensor);
  20.   Serial.println(F("------------------------------------"));
  21.   Serial.println(F("温度传感器"));
  22.   Serial.print  (F("传感器类型: ")); Serial.println(sensor.name);
  23.   Serial.print  (F("驱动版本: ")); Serial.println(sensor.version);
  24.   Serial.print  (F("ID: ")); Serial.println(sensor.sensor_id);
  25.   Serial.print  (F("最大值:  ")); Serial.print(sensor.max_value); Serial.println(F("°C"));
  26.   Serial.print  (F("最小值:  ")); Serial.print(sensor.min_value); Serial.println(F("°C"));
  27.   Serial.print  (F("分辨率:  ")); Serial.print(sensor.resolution); Serial.println(F("°C"));
  28.   Serial.println(F("------------------------------------"));
  29.   // 打印湿度传感器详细信息。
  30.   dht.humidity().getSensor(&sensor);
  31.   Serial.println(F("湿度传感器"));
  32.   Serial.print  (F("传感器类型: ")); Serial.println(sensor.name);
  33.   Serial.print  (F("驱动版本:  ")); Serial.println(sensor.version);
  34.   Serial.print  (F("ID:  ")); Serial.println(sensor.sensor_id);
  35.   Serial.print  (F("最大值:  ")); Serial.print(sensor.max_value); Serial.println(F("%"));
  36.   Serial.print  (F("最小值:  ")); Serial.print(sensor.min_value); Serial.println(F("%"));
  37.   Serial.print  (F("分辨率:  ")); Serial.print(sensor.resolution); Serial.println(F("%"));
  38.   Serial.println(F("------------------------------------"));
  39.   // 根据传感器详细信息设置传感器读数之间的延迟。
  40.   delayMS = sensor.min_delay / 1000;
  41.   delay(5000);
  42. }

  43. void loop() {
  44.   // 设置测量之间的延迟。
  45.   delay(delayMS);
  46.   // 获取温度事件并打印它的值。
  47.   sensors_event_t event;
  48.   dht.temperature().getEvent(&event);
  49.   if (isnan(event.temperature)) {
  50.     Serial.println(F("读取温度错误!"));
  51.   }
  52.   else {
  53.     Serial.print(F("温度: "));
  54.     Serial.print(event.temperature);
  55.     Serial.println(F("°C"));
  56.   }
  57.   // 获取湿度事件并打印它的值。
  58.   dht.humidity().getEvent(&event);
  59.   if (isnan(event.relative_humidity)) {
  60.     Serial.println(F("读取湿度错误!"));
  61.   }
  62.   else {
  63.     Serial.print(F("湿度: "));
  64.     Serial.print(event.relative_humidity);
  65.     Serial.println(F("%"));
  66.   }
  67. }
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:35 , Processed in 0.202972 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表