欢迎大家来到IT世界,在知识的湖畔探索吧!
DHT11是一种温度和湿度传感器,顾名思义,用于测量特定环境或密闭空间中的大气温度和湿度。该传感器通常用于监测农业、食品工业、医院、汽车、气象站等许多应用中的环境参数。
该传感器可以测量0°C到50°C的温度,精度为1°C。它通常用于控制环境,如热通风系统、恒温室等,监测温度以采取纠正措施。
湿度测量范围为20%至90%,精度为1%。湿度表示空气中存在的水蒸气含量。在许多情况下,湿度值必须保持在受控范围内,例如在茶粉的制造和储存过程中,室内必须保持作业要求的湿度,否则会影响茶的味道和气味。客厅的湿度水平也应保持在舒适的范围内,理想的舒适的湿度值在50%到65%之间。
今天,我们学习如何将流行的 DHT11传感器与 STM32配合检测环境温度和湿度。前面我们已经学习了STM32 板的基础知识以及如何使用 Arduino IDE 对它编程。
DHT11温湿度传感器
如前所述,DHT11传感器用于测量温度和湿度。该传感器配有专用的内置NTC来测量温度。它有一个8位微控制器,通过单线协议将温度和湿度值作为串行数据输出。也就是说,传感器只有一个数据管脚,通过它可以读取温度和湿度值,从而节省微控制器端的管脚。传感器也经过工厂校准,因此易于与其他微控制器对接。
DHT11 参数规格:
§ 工作电压:3.5V 至 5.5V
§ 工作电流:0.3mA(测量)60uA(待机)
§ 输出:串行数据
§ 温度范围:0°C 至 50°C
§ 湿度范围:20% 至 90%
§ 分辨率:温度和湿度均为 16 位
§ 准确度:±1°C 和 ±1%
电路连接
将DHT11 与 STM32连接的电路图如下所示。电路是使用 Fritzing 软件绘制的。
如您所见,我们使用I2C 接口模块将 LCD 模块连接到 STM32。这使连接变得简单,并进一步减少了控制器端使用的引脚数量。如下图
同样,STM32F103C8 和 DHT11 传感器之间的电路连接如下表所示。
整个电路由电脑的 USB 端口供电。现在我们的硬件已经准备好了,让我们进入编码部分。
配置Arduino IDE
我们要编写程序,从 DHT11 传感器中读取温度和湿度值并将其显示在 LCD 模块上。这里LCD显示器是通过I2C适配器连接的,因此我们首先要找到这个适配器的I2C地址来与LCD通信。
查找 I2C 串行接口模块的地址:
1.在Arduino IDE安装STM32开发包
2. 示例中提供了用于扫描连接的 I2C 设备的程序(在 Arduino IDE 中:文件->示例->Wire->I2C scanner_wire)。如下所示。
3. 将代码上传到 STM32F103C8,打开串行监视器。给STM32F103C8上电开机。
我们可以看到,在串口监视器中,I2C的地址为“0x27”。
安装相关库文件
导入I2C LCD库,以便STM32F103C8通过 I2C 与 LCD 显示器进行通信。
接着安装DHT库
安装好DHT包后,就可以开始编写程序了。
程序
#include <Wire.h> // I2C 库
#include <LiquidCrystal_I2C.h> // I2C LCD 库
#include <DHT.h> //DHT库
#define DHTPIN PA1 //定义与STM32F103C8的PA1相连的DHT11(OUT引脚)的引脚名称
#define DHTTYPE DHT11
LiquidCrystal_I2C lcd(0x27, 16, 2); //初始化lcd,I2C地址0x27,16*2 类型LCD
DHT dht(DHTPIN, DHTTYPE); // 初始化dht,stm连接DHT的引脚,类型为DHT11
void setup()
{
lcd.begin();
dht.begin(); //开始接收温度和湿度值。
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Hello World");
lcd.setCursor(0,1);
lcd.print("DHT11 with STM32");
delay(3000);
lcd.clear();
}
void loop()
{
float h = dht.readHumidity(); //获取湿度值
float t = dht.readTemperature(); //获取温度值
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Humid: ");
lcd.print(h);
lcd.print(" %");
}
欢迎大家来到IT世界,在知识的湖畔探索吧!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/22618.html