news 2026/9/26 1:28:37

物联网之温湿度传感器模块、arduino、esp32

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
物联网之温湿度传感器模块、arduino、esp32

MENU

  • 原理
  • 硬件电路设计
  • 软件程序设计

原理

无论是工业领域还是日常生活,温度和湿度一直都是两个比较重要的指标,DHT11和DHT22是DHTxx系列中使用最广泛的两种传感器。它们有着相同的引脚,用法一致。

如果拆下传感器的外壳,其实里面只有一个NTC热敏电阻和一个湿度传感元件。

湿度传感部件有两个电极,中间有一个保湿基底(通常是盐或导电塑料聚合物)。随着湿度的升高,基板吸收水蒸气,导致离子的释放和两个电极之间电阻的降低。电阻的变化与湿度成正比,可以测量湿度来估计相对湿度。

DHT11与DHT22还包括用于测量温度的NTC(热敏电阻)。热敏电阻是一种电阻随温度变化的电阻器。从技术上讲,所有电阻器都是热敏电阻,因为它们的电阻随温度略有变化,但这种变化通常非常小,难以测量。热敏电阻的设计使其电阻随温度而急剧变化(每度100Ω或更大),而且电阻随着温度的升高而减小。

DHT11和DHT22传感器的连接都相对简单。

VCC:传感器供电引脚,建议使用5V电源。使用5V电源,传感器可以放置在20米外。在3.3V电源电压下,传感器可以放置在1米外;
Data:通过串行数据输出温度和湿度;
NC:无连接;
GND:接地。


硬件电路设计

物料清单(BOM表)

材料名称数量
0.96寸OLED屏幕1
DHT11温湿度传感器1
10K电阻1
杜邦线(跳线)若干
面包板1

软件程序设计

DHT11与控制器之间采用单总线数据格式,一次通信时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。
1、一次完整的数据传输为40bits,高位先出;
2、数据格式为8bits湿度整数数据+8bits湿度小数数据+8bits温度整数数据+8bits温度小数数据+8bits校验和;
3、数据传送正确时校验和数据等于8bits湿度整数数据+8bits湿度小数数据+8bits温度整数数据+8bits温度小数数据所得结果的末8位。

#include"DHT.h"#defineDHTPIN14#defineDHTTYPEDHT11// 初始化 DHT 对象DHTdht(DHTPIN,DHTTYPE);voidsetup(){Serial.begin(9600);Serial.println(F("DHTxx test!"));dht.begin();}voidloop(){// 读取湿度floathumid=dht.readHumidity();// 读取温度floattemp=dht.readTemperature();// 显示内容Serial.print("湿度: ");Serial.print(humid);Serial.print("% 温度: ");Serial.print(temp);Serial.println("°C ");delay(2000);}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 12:07:02

AD16快速上手指南(AD16为例)

由于本人每次画PCB的间隔时间比较长,经常出现下一次画就全忘了的情况,为了使得每次能快速入门,故将要点记录如下。 一、AD工程的文件结构 创建一个新的工程后,首先需要新建PCB文件、原理图文件、PCB库、原理图库 两个库文件需要在后期添加板子所需的所有元件库和封装库,…

作者头像 李华
网站建设 2026/9/14 0:20:27

别让一个小小的常量列拖垮 Outer Join:深入理解 SAP HANA 子查询投影导致的物化与优化策略

在 SAP HANA 的日常性能排查里,有一类问题特别“隐蔽”:SQL 看起来只是在子查询里多投影了一个常量或做了一个很简单的计算,业务语义也没变,但执行时间却突然从秒级飙到分钟级,内存飙升,甚至把并发都拖慢。更让人困惑的是,同样的写法在内表连接里没事,一到 LEFT OUTER …

作者头像 李华
网站建设 2026/9/19 6:40:26

python-知识点汇总

文档目录基础知识基础知识 解释型语言VS编译型语言 编译型语言: 执行程序都需要一边转换一边执行,用到哪些源代码就将哪些源代码转换成机器码,因为每次执行程序都需要重新转换源代码,所以解释型语言的执行效率天生就低于编译型语…

作者头像 李华
网站建设 2026/9/14 0:56:49

线程-线程池

线程生命周期 1.new 状态 2. runnable 就绪状态 start() 3. runnabing 执行状态 run() 4. dead 执行完 run()方法 5. 阻塞状态(抢锁,wait等待阻塞,sleep)线程…

作者头像 李华
网站建设 2026/9/25 1:45:13

Web前端之实现元素实时位于可视区域、移动随机元素至可视区域、置底或置顶功能、垂直居中元素、聊天界面、滚动条、原生、锚点、scrollIntoView、scrollHeight、scrollTop

MENU前言效果图Web前端原生实现Vue框架实现scrollTop实现置顶置底(方式一)scrollIntoView实现置顶置底(方式二)区别功能语法工作原理兼容性使用场景实用代码推荐总结前言 在项目中遇到聊天功能,功能涉及置顶和置底知识,由此记录一下实现思路和过程。 效果…

作者头像 李华
网站建设 2026/9/14 0:20:35

服务端之nestJS常用异常类及封装自定义响应模块

MENU前言常用异常类(由nestjs/common提供,一)常用异常类(由nestjs/common提供,二)示例自定义异常(可选)自定义响应模块前言 在NestJS中,nestjs/common提供了大量的内置异…

作者头像 李华