Arduino之读取DHT11数字温湿度传感器并串口显示

温度是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。温度只能通过物体随温度变化的某些特性来间接测量,而用来量度物体温度数值的标尺叫温标。它规定了温度的读数起点(零点)和测量温度的基本单位。国际单位为热力学温标(K)。目前国际上用得较多的其他温标有华氏温标(°F)、摄氏温标(°C)和国际实用温标。从分子运动论观点看,温度是物体分子运动平均动能的标志。温度是大量分子热运动的集体表现,含有统计意义。对于个别分子来说,温度是没有意义的。根据某个可观察现象(如水银柱的膨胀),按照几种任意标度之一所测得的冷热程度。

湿度,表示大气干燥程度的物理量。在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿。空气的干湿程度叫做“湿度”。在此意义下,常用绝对湿度、相对湿度、比较湿度、混合比、饱和差以及露点等物理量来表示;若表示在湿蒸汽中水蒸气的重量占蒸汽总重量(体积)的百分比,则称之为蒸汽的湿度。人体感觉舒适的湿度是:相对湿度低于70%。


1 DHT11

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。



2 DHT11模块

博主使用的DHT11模块如图所示:



3 库案例

为了贪图方便,减少coding,直接寻找现有库,看看有没有相关示例:





输入“DTH”检索,没想到真的有DHT库,点击安装:





回到主界面,在示例中选择“DHTtester”:





点击后可以看到默认数据接收引脚是2号,同时注释掉“DHT22”,去除“DHT11”的注释:





点击编译后出现了“Adafruit_Sensor.h: No such file or directory”的错误,查看注释说明后,原来还得安装一个库:





再次点击编译,哈哈通过了!


4 连接图


5 实际效果

连接好板子到电脑后,单击“上传”,打开“串口监视器”,可以看到串口打印的温度与湿度值:





使用一下另外一个示例:





同样需要修改一下:





点击“上传”后,效果如图:


Arduino可以通过引用DHT库来读取DHT11湿度传感器的数据。首先,需要将DHT库添加到Arduino环境中。可以在库管理器中搜索"DHT"来找到适合的库。然后,选择合适的DHT安装它。 接下来,连接DHT11传感器Arduino板。DHT11有三个引脚:VCC、OUT和GND。将DHT11的VCC引脚连接到Arduino的5V引脚,OUT引脚连接到Arduino的数字引脚(如D2引脚),而GND引脚连接到Arduino的GND引脚。 在Arduino IDE中,创建一个新的项目,在代码中引用DHT库。使用DHT库提供的函数来读取湿度传感器的数据。首先,定义一个DHT对象,指定DHT传感器的引脚和类型。例如,可以使用以下代码: #include <DHT.h> #define DHTPIN 2 // 定义DHT11引脚为数字引脚2 #define DHTTYPE DHT11 // 设置传感器类型为DHT11 DHT dht(DHTPIN, DHTTYPE); // 创建一个DHT对象 然后,在setup()函数中,初始化串口通信,DHT对象初始化。例如,可以使用以下代码: void setup() { Serial.begin(9600); // 初始化串口通信为9600波特率 dht.begin(); // 初始化DHT对象 } 最后,在loop()函数中,使用DHT库提供的函数读取湿度数据,将其打印到串口监视器上。例如,可以使用以下代码: void loop() { float temperature = dht.readTemperature(); // 读取温度值 float humidity = dht.readHumidity(); // 读取湿度值 Serial.print("温度: "); Serial.print(temperature); Serial.print(" °C"); Serial.print("\t湿度: "); Serial.print(humidity); Serial.println(" %"); delay(2000); // 延迟2秒 } 这样,Arduino将会每隔2秒读取一次DHT11湿度传感器的数据,将其通过串口通信输出到电脑上的串口监视器中。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式逍遥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值