让您的Arduino了解温度和湿度为您的Arduino项目添加了一些真实世界的使用案例,因此在本教程中,我们将重点介绍在我们的项目中使用Arduino温度传感器!我们将特别关注Adafruit DHT11和DHT22温度和湿度传感器。

由于我们将在上一个项目的基础上进行构建,我们强烈建议您阅读我们的教程使用带有Arduino的液晶显示器第一我们将使用LCD显示屏显示当前温度。我们将包括代码示例,以显示串行控制台的温度,以防您手边没有LCD。

Arduino温度传感器零件清单

如果您刚刚开始或只是想要一份简单的零件清单,我们为您提供了一份简单的购物清单:

注意:您只需要订购DHT11或DHT22,而不是两者都订购。DHT22可以检测到更宽的温度范围(远低于冰点),但代价是价格更昂贵,尺寸更大。DHT11是大多数人开始使用的。

使用Arduino温度传感器

使用DHT11温度传感器非常简单。让我们先检查一下接线。记住,这是我们LCD显示项目的一个附加组件,所以我们只在这个DHT11接线图上显示额外的连接。

注:如果您的DHT11有四个引脚,那么它还没有用限制电阻器焊接到电路板上。您需要在+5v引脚和信号引脚之间添加一个电阻器。上述零件清单中列出的DHT11/DHT22不需要额外的电阻器。

你完成的温度传感器现在看起来应该像这样:

温度传感器的Arduino草图变化

在我们的LCD上使用arduino温度传感器非常简单。我们只需要添加几行代码并安装一些可能尚未安装的库。

安装DHT11/DHT22 Arduino库

第一件事。我们需要在Arduino IDE中安装两个库:1)Adafruit DHT传感器库,2)Adafruit统一传感器库。您必须同时安装这两个函数,因为DHT库从统一库调用函数。

如果按“传感器”筛选,Adafruit统一传感器库是列表中的最后一个库。

将DHT11代码添加到草图中

现在终于到了修改代码的时候了,这样我们就可以在LCD屏幕上显示温度了。以下是完整的代码:

//使用DHTTYPE DHT11 //将DHT22改为DHT22 //使用接口引脚编号LiquidCrystal lcd(12, 11, 5, 4, 3, 2)初始化库;//定义我们的DHT对象使用pin和类型从上面的DHT DHT (DHTPIN, DHTTYPE);void setup(){//设置LCD的列和行数:开始(16日2);//打印消息到LCD。液晶显示器。打印(“目前临时:”);} void loop(){//将光标设置为第0列,第1行lcd。setCursor (0,1);//创建一个浮点数并读取温度传感器浮点数myTemperature = dht.readTemperature(true);//在摄氏液晶屏幕上打印温度。print(myTemperature);lcd.print((223字符)); // degree symbol lcd.print("C"); delay(500); // wait half a second before updating again. }

我们添加了DHT代码,将“Geek Pub!”更改为“Current manbext登录页Temp:”,并使用look来显示温度,而不是计算运行的秒数。非常简单。

如果所有连接都正确,则屏幕应如下所示“”

了解DHT11 / DH22代码

如果您在项目中使用Arduino温度传感器,了解代码的基础知识是很重要的。让我们看看我们添加了什么。我们必须做的第一件事是包含DHT库。

相关的:在Arduino上把摄氏温度转换为华氏温度

#包括“DHT.h”

下一位是定义引脚和DHT类型(11或22)。

#define DHTPIN 7 //我们正在使用pin 7 #define DHTTYPE DHT11 //改变到DHT22如果你正在使用DHT22

最后,我们需要创建DHT对象。就我而言,我只是叫它“dht”。我有时很无聊。

DHT DHT (DHTPIN DHTTYPE);

要从DHT11/22读取温度或湿度,只需调用一个简单的函数。温度或湿度将存储在变量myTemperature和myHumidty中。

float myTemperature=dht.readTemperature(真);浮动湿度=dht.Read湿度(真);

如果没有LCD字符显示器

如果你没有和LCD屏幕,你总是可以写这些变量的输出到串行控制台如下:

序列号。开始(9600);//启动串口serial.println(“当前温度:”);串行打印LN(myTemperature);Serial.println((char)223);//学位符号序列。打印号(“C”);

请务必在下面留下关于温度传感器项目结果的评论!