使用ESP32读取温湿度传感器(例如DHT11或DHT22)的数据,并通过串口打印出来。

这里假设我们使用DHT11传感器,它通过单总线协议与ESP32通信。 步骤: 1. 包含必要的库:DHT传感器库(DHT.h)和Adafruit_Sensor(如果需要的话)。 2. 定义DHT传感器连接的引脚和类型(DHT11)。 3. 初始化串口通信和DHT传感器。 4. 在循环中读取温湿度数据,并检查是否读取成功。 5. 将读取到的温湿度数据通过串口打印出来。 6. 每次读取之间加入适当的延迟(DHT11的读取间隔至少为2秒)。 注意:在使用前需要安装DHT sensor library(在Arduino IDE中可通过库管理器安装)。 硬件连接: DHT11的VCC接3.3V,GND接GND,DATA接某个GPIO(例如GPIO4)。

代码示例:

#include <Arduino.h>
#include <DHT.h>
// 定义DHT11连接的引脚和传感器类型
#define DHTPIN 4     // 数据引脚连接到GPIO4
#define DHTTYPE DHT11   // DHT 11
// 初始化DHT传感器
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  // 启动串口通信,波特率设置为115200
  Serial.begin(9600);
  // 初始化DHT传感器
  dht.begin();
}
void loop() {
  // 每次读取之间等待至少2秒,DHT11的采样周期较慢
  delay(2000);
  // 读取湿度
  float humidity = dht.readHumidity();
  // 读取温度(摄氏度)
  float temperature = dht.readTemperature();
  // 读取华氏温度(可选)
  // float fahrenheit = dht.readTemperature(true);
  // 检查是否读取成功
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // 打印温度湿度值
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.print("%\t");
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.println("°C");
}
本网站所收集的公开资料部分来源于互联网,其版权归原作者本人所有,本站只是转载和摘录,目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其的真实性能做到合理的研判负责,也不构成任何其他建议,如果有任何侵犯您权益和知识产权的地方,请来邮或来电告知本站,经过核实,我们会及时的进行整理删除,谢谢!
评论 共0条
取消回复 发布评论