1. 工程创建
在VSCode中打开PlatformIO扩展创建工程。
设置工程向导
等待创建完成。
2. 安装驱动库
创建完成之后,我们在VSCode中打开我们刚才创建的工程文件夹。
在VSCode中回到PlatformIO的主页,准备给工程安装DHT11的驱动库。
搜索dht11,安装来自Adafruit
的DHT 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. 代码验证
代码编写完成之后,将ESP32S3开发板接入电脑。我当前的开发板上是CH340K的驱动,故我这里选择COM3端口。
编译并下载到开发板中。
点击打开串口监视器。
可以看到温湿度数据读取显示正常。