基于STM32使用DHT11温湿度模块

这篇具有很好参考价值的文章主要介绍了基于STM32使用DHT11温湿度模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、DHT11模块介绍

1、原理图

2、通信时序(单总线)

2.1、通信总过程

2.2、起始信号及DHT11应答

2.3、数字1信号的应答时序

2.4、数字0信号的应答时序

2.5、数据格式

二、使用步骤

1.使用CubeMX进行配置(基于stm32f407zgt6)

2.编写相关函数

​编辑3、实验结果

三、代码分享

总结



前言

DHT11模块是一种基于数字信号输出的简单温湿度传感器,它能够测量环境的温度和湿度,并将数据以数字信号的形式传输给控制主板,如Arduino,stm32,8051等微控制器。

DHT11模块由温湿度传感器、微处理器以及一些电子元器件组成。该模块采用单线总线通讯方式,具有非常高的可靠性、稳定性和精度。该模块的温度测量范围为0-50摄氏度,湿度测量范围为20%-90% RH(产品不一样范围也有所变化)。

DHT11模块广泛应用于温湿度监控、气象观测、空气质量检测、智能家居、农业、医疗等领域。在Arduino等开源硬件平台上,使用DHT11模块可以方便快捷地实现温湿度数据的采集和处理。

一、DHT11模块介绍

1、原理图

dht11 stm32,stm32,c语言,mcu,单片机dht11 stm32,stm32,c语言,mcu,单片机

         这是我买的模块的图片以及原理图,初始的模块是有四个引脚,一般NC也是要接地的。这个只给出了三个引脚并且在每个引脚上都标出了VCC、DATA、GND所以一定要注意接线的问题!!!不要反接了,商家说的接反必烧!!!

        在模块上面还有一个电源指示灯,当你正确接线的时候就会亮但不代表你这个模块没有问题。我出现过灯是亮的但是读出的数据都是错的,所以当你试了很久很久能够确定自己写的代码没有错时请不要怀疑!也有可能是模块的问题!!!

        然后就是注意VCC的电压范围是3.3V-5V(具体的型号可以不同,要仔细一点看商家的介绍)

2、通信时序(单总线)

2.1、通信总过程

dht11 stm32,stm32,c语言,mcu,单片机

 黑色加粗是代表使用的微控制器(stm32)的处理,也就是我们程序的拉低拉高。浅棕色就是代表DHT11。

2.2、起始信号及DHT11应答

dht11 stm32,stm32,c语言,mcu,单片机

图中画出的圈1主要是微控制器(stm32)发起的起始信号,stm32拉低总线持续18ms以上然后再拉高20-40us。因为后面需要接收DHT11的信号,所以在发送完起始信号之后就要改变总线的模式为输入模式,以便后续的读数据。

图图画出的圈2主要是DHT11的回应(通过这个可以判断是否有这个外设存在),DHT11先拉低总线80us,然后再拉高80us,我们需要先判断stm32在释放总线后是否被DHT11拉低,然后再判断是否被拉高。两段都判断了才能证明DHT11真正存在。

2.3、数字1信号的应答时序

dht11 stm32,stm32,c语言,mcu,单片机

总线先被拉低50us左右,然后再拉高26-28us。 具体操作再后续的代码讲解中。

2.4、数字0信号的应答时序

dht11 stm32,stm32,c语言,mcu,单片机

总线先被拉低50us左右,然后再拉高70us左右。 具体操作再后续的代码讲解中。

2.5、数据格式

一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和

最后的校验位是前面四个数据的总和,用于验证接收到的数据是否正确。

二、使用步骤

1.使用CubeMX进行配置(基于stm32f407zgt6)

dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机

 后续代码生成步骤省略,要注意的是存储的路径中不能有中文!!!今天刚出现识别不了中文导致不能打开Keil。

dht11 stm32,stm32,c语言,mcu,单片机

 dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机

自此关于工程的配置以及搭建已经全部完成,剩下的就是编写模块的代码。 

2.编写相关函数

dht11 stm32,stm32,c语言,mcu,单片机

由于HAL库没有封装延时us级的函数,所以需要自己写一个,有很多写法比如使用新的定时器等。

dht11 stm32,stm32,c语言,mcu,单片机


这里使用的是操作寄存器的方法进行对printf的重定向,有很多种不同的方法,能用就行。

dht11 stm32,stm32,c语言,mcu,单片机

编写的.h文件,进行了一些宏定义操作便于后续引脚的修改。

dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机 dht11 stm32,stm32,c语言,mcu,单片机 dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机

dht11 stm32,stm32,c语言,mcu,单片机

 注意:在上面所示代码中注释掉的printf千万不能有,因为printf会消耗较长时间对于时序来说是致命的!!! 

3、实验结果

dht11 stm32,stm32,c语言,mcu,单片机

复位会出现一次数据错误,原因在于初始化和转换之间的间隔太短了,加一个20ms左右的延时即可。

三、代码分享

由于网盘分享文件不能过多,所以只选择分享了模块代码、dht11的文档。

https://www.aliyundrive.com/s/NkP7y9m3e6B

总结

个人感觉dht11对于stm32的学习还是有必要使用并且学习,在许多项目中也会有用到。本次文章是我学习完之后进行的一次总结,如有错误请指出,谢谢!文章来源地址https://www.toymoban.com/news/detail-695610.html

到了这里,关于基于STM32使用DHT11温湿度模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 68、基于STM32单片机DHT11温湿度蓝牙控制报警器app系统设计

    毕设帮助、开题指导、技术解答(有偿)见文末。 目录 摘要 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、PCB图 六、程序源码 七、资料包括 温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、

    2024年02月08日
    浏览(48)
  • STM32+DHT11温湿度传感器

    DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次 通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数 部分用于以后扩展,现读出为零.操作流程如下: 一次完整的数据传输为40bit,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据

    2023年04月13日
    浏览(38)
  • STM32--DHT11温湿度传感器

    本文介绍基于STM32F103实现的DHT11温湿度传感器数据采集及显示,完整代码见文末链接 一、DHT11传感器简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期

    2024年02月16日
    浏览(42)
  • STM32—DHT11温湿度传感器

    (1).下图一是DHT11总的时序图。 (2).图二对应图一的左边黑色部分,图三对应图一的绿色部分,图四的左部分图对应图一的红色部分,图四的右部分对应图一的黄色部分。 (3).首先图二部分是单片机向DHT11发送我要开始的信号,此时单片机IO口处于输出模式,输出低电平至少18MS,

    2024年02月19日
    浏览(44)
  • stm32读取DHT11温湿度传感器

    我们知道DHT11是单总线协议,只有一根数据线。 且内部有个上拉电路(下图)。那么数据线默认就是高电平那接下来就可以讲解主机如何和DHT11通讯的 读取DHT11的芯片手册,可以知道,DHT11一次完成的数据输出是40bit,高位先出。 格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温

    2024年02月09日
    浏览(38)
  • stm32连接DHT11温湿度传感器

    目录 1. DHT11简介 1.1. 连接电路  1.2. 串行接口 (单线双向)  2. cubeMX设置 3. 代码开发  3.1. 实现定时函数 3.2. 打开串口调试 3.4. 测试代码实现 4. 运行效果 信息如下: 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使 用合适的上拉电阻  DHT11的供电电压为 3-5

    2023年04月16日
    浏览(37)
  • STM32+DHT11采集温湿度传感器数据

            DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够 实时的采集本地湿度和温度。 DHT11 与单片机之间能采用简单的单总线进行通信,仅

    2024年02月07日
    浏览(35)
  • 86、基于STM32单片机的温湿度DHT11 MQ-2烟雾火灾报警器蓝牙物联网设计

    毕设帮助、开题指导、技术解答(有偿)见文末。 目录 摘要 一、硬件方案                     二、设计功能 三、实物图 四、原理图 五、硬件框图 六、流程图 七、程序源码   八、资料包括 随着社会和经济的发展,防火工作越来越重要,但是目前国内的许多研发都侧重

    2024年02月06日
    浏览(37)
  • STM32+DHT11温湿度传感器(含完整代码)

    前言 DHT11数字温湿度传感器是一种数字信号输出的温湿度传感器,具有高可靠性和长期稳定性。它采用专用的数字模块和温湿度传感技术,提供准确的温湿度数据。传感器内部包含感湿元件和测温元件,并与高性能单片机连接。因此,该传感器具有优异的品质、快速响应、抗

    2024年04月08日
    浏览(62)
  • stm32项目之DHT11温湿度显示(LCD1602)

    掌握LCD1602的使用 掌握DHT11的原理及使用 看懂LCD1602和DHT11时序图 看懂DHT11的原理 掌握LCD1602的显示 编写程序用LCD1602显示温湿度 DHT11部分: DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次 通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当

    2024年02月02日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包