这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 有奖活动 » 在FireBeetle2ESP32-C5上实现温湿度检测和显示

共1条 1/1 1 跳转至

在FireBeetle2ESP32-C5上实现温湿度检测和显示

菜鸟
2025-11-21 12:13:31     打赏

这里使用的检测器件是DHT11,属单总线器件,是含有已校准数字信号输出的温湿度复合传感器,有三个引脚VCC3.3-5V)、GNDDATA

其中,DATA 引脚用于微器与 DHT11之间的通讯和同步一次通讯时间约为4ms左右数据分u小数部分和整数部分小数部分用于以后扩展取值为零

DHT11操作流程:

一次完整的数据传输40bit高位在前数据格式8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和

在连接方面,是使用开发板GPIO10传感器DATA引脚相连。检测结果的显示是通过I2C接口的OLED屏,其使用的引脚是GPIO6GPIO7,整体的连接整体如图1所示。

image.png

1 连接整体

 

温湿度检测的程序是在Arduino IDE下编写,用于使用了相应的库作支持,因此其程序非常精炼,具体的内容为:

#include <DFRobot_DHT11.h>
DFRobot_DHT11 DHT;
#define DHT11_PIN 10
 
void setup(){
  Serial.begin(115200);
}
 
void loop(){
  DHT.read(DHT11_PIN);
  Serial.print("temp:");
  Serial.print(DHT.temperature);
  Serial.print("  humi:");
  Serial.println(DHT.humidity);
  delay(1000);
}


经程序的上传可通过串口来观察其结果,见图2所示

image.png

2 检测结果 

在使用OLED屏的情况下,其程序为:

#include <Wire.h> 
#include "SSD1306Wire.h"
#include "images.h"
SSD1306Wire display(0x3c, 6, 7);
 
#include <DFRobot_DHT11.h>
DFRobot_DHT11 DHT;
#define DHT11_PIN 10
 
void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  display.init();
  display.flipScreenVertically();
  display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_16);
}
 
void loop() {
  int w,s;
  display.clear();
  DHT.read(DHT11_PIN);
  Serial.print("temp:");
  Serial.print(DHT.temperature);
  Serial.print("  humi:");
  w=DHT.temperature;
  Serial.println(DHT.humidity);
  s=DHT.humidity;
  display.drawString(10, 0, "DHT11 test");
  display.drawString(10, 20, "tem=      C");
  display.drawString(10, 40, "hum=      %");
  display.drawString(50, 20, String(w));
  display.drawString(50, 40, String(s));
  display.display();
  delay(1000);
}


经程序的上传即可观察到图1所示的效果,其结果还是比较不错的






关键词: FireBeetle 2 ESP32-C5    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]