换热器的种类有哪些? 冷却器的种类
2023-08-30
很多朋友对DHT11温湿度传感器与STM32F103C8的连接方法不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。
DHT11顾名思义是一种温湿度传感器,用于测量特定环境或密闭空间中的大气温度和湿度。这种传感器通常用于监测许多应用中的环境参数,例如农业、食品工业、医院、汽车、气象站等。
该传感器可以测量0C至50C的温度,精度为1C.通常用于受控环境,如热通风系统、恒温室等。以监控温度并采取纠正措施。湿度测量范围为20%至90%,精度为1%。湿度表示空气中水蒸气的含量。很多情况下,比如制作和存放茶粉时,湿度值必须保持在控制范围内,室内必须保持正确的湿度,否则茶叶就会失去味道和气味。
客厅的湿度水平也要保持在舒适的范围内。最舒适的理想湿度值在50%到65%之间。
在今天的教程中,我们将学习如何将流行的DHT11温湿度传感器与STM32微控制器连接起来。DHT11温度和湿度传感器
在继续接口程序之前,我们先了解一下DHT11传感器的一些信息。如前所述,DHT11传感器用于测量温度和湿度。该传感器有一个专用的内置NTC来测量温度。它具有一个板载8位微控制器,可以通过单线协议将温度和湿度值作为串行数据输出。这意味着传感器只有一个数据引脚,通过它可以读取温度和湿度值,从而节省了微控制器端的引脚。
传感器也由工厂校准,因此很容易与其他微控制器连接。
DHT11规格:工作电压:3.5V至5.5V工作电流:0.3mA(测量)60uA(待机)输出:串行数据温度范围:0C至50C湿度范围:20%至90%分辨率:温度和湿度均为16位精度:1C和1%所需元件STM 32f103c8。
连接DHT11和STM32微控制器的完整电路图如下所示。电路由Fritzing软件绘制。正如你所看到的,我们使用I2C接口模块连接液晶模块到STM32。这使得连接变得简单,并进一步减少了控制器侧使用的引脚数量。不过如果你没有这个模块,也可以通过下面的链接直接连接LCD STM32。
如果有接口模块,I2C串行接口模块(固定16X2 LCD显示器)和STM32F103C8之间的电路连接如下表所示:同样,STM32F103C8和DHT11传感器之间的电路连接如下表所示。连接完成后,我的硬件如下。整个设置由我的笔记本电脑的STM32的USB端口供电。现在我们的硬件已经准备好了,接下来进入编码部分。为STM32F103C8准备Arduino IDE
我们必须编写一个程序来读取DHT11传感器的温度和湿度值,并将它们显示在LCD模块上。在这里,LCD是通过I2C适配器连接的,所以我们必须首先找到这个适配器的I2C地址才能与LCD通信。用STM32F103C8连接I2C串行LCD接口适配器模块:
从电路图中我们可以看到,STM 32 f 103 c 8的I2C引脚PB6和PB7与I2C串行接口模块的SCL和SDA引脚相连。要找到I2C串行接口模块的地址,我们必须扫描可用的地址。扫描I2C串行接口模块的地址:按照以下步骤找到LCD I2C接口模块的I2C地址。1.首先检查是否安装了Arduino IDE的STM32包。2.使用Arduino IDE通过以上链接安装编程STM32的软件包时,默认安装的是线库。
3.该示例提供了一个用于扫描连接的I2C设备的程序(在Arduino IDE:files-examples-wire-I2C扫描仪行中)。在此之前,在工具-板卡-通用STM 32 F 103 C 8系列中选择板卡,如下图。4.然后将代码上传到STM32F103C8和开放串行监视器。现在请注意,I2C 16x2液晶显示器的I2C地址是(0x27)。安装I2C 16x2显示模块和DHT11传感器库:
现在我们知道了I2C地址,我们需要下载一个库来通过I2C与LCD监视器通信。I2C液晶显示器库可以从这个链接下载。下载zip文件后,通过sketch-》导入库,在Arduino IDE中安装I2C液晶库。该库还可以与Arduino板一起使用,与I2C LCD显示模块进行通信。
同样,为了从DHT11传感器读取串行数据,我们将使用DHT11库。使用提供的链接下载ZIP文件形式的库。下载后,使用sketch-import库在Arduino IDE中安装DHT库。同样的库也可以用于Arduino板。编码描述
本文的完整代码可以在本页底部找到,同样的解释如下。最初包括所需的库。包括用于使用STM32F103C8中的I2C的Wire.h库、用于使用I2C型LCD显示器的LiquidCrystal_I2C.h和用于使用DHT传感器功能的DHT.h#include #include #。Include现在定义了与STM32F103C8的PA1相连的DHT11(OUT管脚)的管脚名#define DHTPIN PA1,DHTTYPE定义为DHT11。#定义DHTTYPE DHT11
接下来初始化I2C 地址为0x27 和16x2 类型LCD 显示器的LiquidCrystal_I2C类的对象lcd 。
LiquidCrystal_I2C lcd(0x27, 16, 2);
此外, DHT 类的对象dht与STM32 和DHT 类型为DHT11 的DHT 引脚被初始化
DHT dht(DHTPIN, DHTTYPE);
接下来在void setup() 中:
首先使用以下方法初始化LCD
液晶显示器开始();
然后使用以下语句开始接收来自DHT11 传感器的温度和湿度值。
dht.begin();
打开黑光灯并打印欢迎信息并在三秒钟后清除它们。
液晶背光(); lcd.setCursor(0,0); lcd.print('电路文摘'); lcd.setCursor(0,1); lcd.print('DHT11 与STM32'); 延迟(3000);lcd.clear();
接下来在void loop() 中:
从DHT11 传感器连续接收该值。为了获得温度和湿度的单独值并将其存储在变量中,使用了以下语句。
仅获取湿度值
浮动h=dht.readHumidity();
仅获取温度值
浮动t=dht.readTemperature();
最后在16X2 LCD 显示屏上打印
lcd.setCursor(0,0); lcd.print('温度:'); lcd.print(t); lcd.print('C'); lcd.setCursor(0,1); lcd.print('湿度:'); lcd.print(h); lcd.print('%');
基于STM32的温度计的工作
一旦您的硬件和代码准备就绪,只需将代码写入您的硬件,您应该会注意到您的LCD 显示欢迎屏幕,然后是实时温度和湿度值,如下所示
如果您的显示器没有显示任何内容,您可以检查调整I2C 模块背面的对比度电位器。我尝试使用空调改变房间温度,发现传感器值也会相应变化。AC 还可以选择测量室温,如下图所示,我的遥控器显示室温为27C,我们的传感器还在LCD 上显示27.3C,这非常接近。
#include //使用I2C 的库#include //使用I2C 类型LCD 显示器的库#include //使用DHT 传感器的库#define DHTPIN PA1#define DHTTYPE DHT11LiquidCrystal_I2C lcd(0x27, 16, 2); //为LiquidCrystal_I2C类初始化对象lcd,I2C地址为0x27和16x2类型的LCD显示DHT dht(DHTPIN, DHTTYPE); //使用STM32的DHT引脚和DHT类型为DHT11的DHT类初始化对象dhtvoid setup(){//初始化LCDlcd.begin();dht.begin(); //开始接收温度和湿度值。
液晶背光();//打开黑灯并打印欢迎信息。lcd.setCursor(0,0);lcd.print('电路文摘');lcd.setCursor(0,1);lcd.print('DHT11 与STM32');延迟(3000);lcd.clear();}无效循环(){浮动h=dht.readHumidity();//获取湿度值float t=dht.readTemperature(); //获取温度值lcd.setCursor(0,0);lcd.print('温度:');lcd.print(t);lcd.print('C');lcd.setCursor(0,1);lcd.print('湿度:');lcd.print(h);lcd.print('%');}
以上知识分享希望能够帮助到大家!
版权声明:本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们
推荐阅读
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
2023-08-30
栏目热点
换热器的种类有哪些? 冷却器的种类
LilyGoT手表键盘C3迷你电脑套件
索泰ZBOXEdgeCI342迷你电脑正式上市
谷歌在最新的视频预告片中展示了PixelWatch的独特设计
三星与设计师Juun.J合作推出限量版可折叠产品和配件
从2023年起Fitbit设备将需要Google帐户
TOKKCAMC2+智能WiFi独立日 夜视摄像头
三星正在与全球时尚品牌JUUN.J合作
OnePlusNordWatch的颜色选项通过泄露的渲染揭示
就在第一款Nothing手机发布之前一种新的TWS芽设计浮出水面