PlatformIO+ESP32S3学习:驱动DHT11对温湿度读取和显示

1. 工程创建


在VSCode中打开PlatformIO扩展创建工程。
在这里插入图片描述

设置工程向导

在这里插入图片描述
在这里插入图片描述
等待创建完成。
在这里插入图片描述

2. 安装驱动库


创建完成之后,我们在VSCode中打开我们刚才创建的工程文件夹。

在这里插入图片描述
在VSCode中回到PlatformIO的主页,准备给工程安装DHT11的驱动库。

在这里插入图片描述
在这里插入图片描述
搜索dht11,安装来自AdafruitDHT sensor library库。

在这里插入图片描述
将库安装到我们的工程中。

在这里插入图片描述
在这里插入图片描述
打开platformio.ini文件,可以看到已经安装上了DHT11的驱动库。

在这里插入图片描述

3. 编辑代码


打开工程下的src文件夹下的main.cpp。

在这里插入图片描述

输入以下代码:

#include <Arduino.h>
#include <Adafruit_Sensor.h>
#include <DHT.h> //温湿度传感器驱动库

//DHT11温湿度传感器相关定义
#define DHTPIN 4 //传感器引脚连接4
#define DHTTYPE DHT11 //传感器支持DHT11, DHT12, DHT21, DHT22, AM2301


DHT dht(DHTPIN, DHTTYPE); //初始化温湿度传感器

//湿度 和 温度 的全局变量
float humidity=0, temperature=0;

//温湿度传感器数值读取
void readDHT(void) 
{
  //读取温度参数保存到全局变量中
  humidity = dht.readHumidity();
  //读取湿度参数保存到全局变量中
  temperature = dht.readTemperature();

  //判断温湿度数据是否是非数字
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
}

void setup() 
{
  //串口初始化
  Serial.begin(9600);
  //DHT11初始化
  dht.begin();
}

void loop() 
{
  char disp_buf[50] = {0};
  
  readDHT(); //读取温湿度参数

  //格式化字符串
  sprintf(disp_buf, "temperature=%02.0d C", (int)temperature);
  //输出温度
  Serial.println(disp_buf);

  //格式化字符串
  sprintf(disp_buf, "humidity=%02.0d %%", (int)humidity);
  //输出湿度
  Serial.println(disp_buf);

  delay(1000);
}

4. 硬件连接


在这里插入图片描述

这里其实我是做了电路设计的,如果你发现读取不到数据,可以尝试将模块VDD或者VCC接到开发板的5V看看。 在这里插入图片描述

5. 代码验证


代码编写完成之后,将ESP32S3开发板接入电脑。我当前的开发板上是CH340K的驱动,故我这里选择COM3端口。

在这里插入图片描述

编译并下载到开发板中。

在这里插入图片描述
点击打开串口监视器。

在这里插入图片描述
可以看到温湿度数据读取显示正常。

在这里插入图片描述

6. 代码工程下载


下载地址:https://gitee.com/laoguaige/esp32-s3-r8-n8-pixel-clock/tree/master/example/dht11

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老怪.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值