DHT11模块使用总结

对于一个外设来说,它就是我们通过I/O扩展所添加的新的功能,我们只要能够学会外设与主控如何通信,并且能够正确处理数据,即基本掌握了这个模块

1.模块介绍

DHT11 温湿度传感器模块是以 DHT11 温湿度传感器为核心,已含有校准数字信号,可测量环境温度,相对湿度。具有极高的可靠性与卓越的长期稳定性。模块带有电源指示灯

2.软件设计

1.通信数据过程

主机发送起始引号----> DHT11检测并发送相应信号------>DHT11发送40位数据---->DHT11发送结束信号

名称单总线线格式定义
起始信号主机把数据总线拉低 T(18ms < T < 30ms),
响应信号DHT11 把数据总线拉低 83us 以响应主机的起始信号,再拉高 87us 通知主机准备接收数据
数据DHT11 在拉高总线 87us 后紧接着发送 40Bit 数据(高位先出,后边会介绍数据格式与时序
结束信号DHT11 在发送完 40Bit 数据后接着输出 54us 低电平作为结束信号,然后转为输入状态

40位数据: 湿度高8位,温度低8位,温度高8位,温度低8位,8位校验位
低八位都表示小数,高八位表示整数
8 位校验和 = 湿度高 8 位 + 湿度低 8 位 + 温度高 8 位 + 温度低 8位

2.通信的实现

注意:主机对数据总线操作应当配置为输出模式;DHT11对数据总线操作时,主机应该配置为输入模式
1. 主机发送起始信号并检测响应信号(主机发送一个T(18ms<T<30ms)低电平,DHT11 把数据总线拉低 83us 以响应主机的起始信号,再拉高 87us 通知主机准备接收数据)

主 机 配 置 通 讯 IO 为 输 出 模 式 --> 输 出 低 电 平(18ms<T<30ms)–>主机把总线拉高,延迟 10us 后配置为输入模式准备检测 DHT11 的响应信号–>等待DHT11 的 83us 的低电平到来,并设置超时时间(超时返回出错信号)–>检测到 DHT11 的低电平后等待DHT11 的 87us 高电平到来,并设置超时时间(超时返回出错信号)–>检测到高电平返回 0,表示 DHT11 响应成功

2.接受接受DHT11发送的数据(高位先出)。数据 0 由 54us 的低电平与 23~27us 的高电平构成;数据 1 由 54us 的低电平与 68~74us构成
3.主机读取 DHT11 发送的40bit数据并检测结束信号。DHT11 发送完 40Bit 数据后会继续输
出54us的低电平作为结束信号,然后转为输入状态。这时主机在检测到 DHT11 的结束电平结束后应
该配置为输出模式并输出高电平

3.最后

看到这是不是感觉很麻烦,哈哈哈哈起始这些细节都不需要我们去做,有轮子多香,造啥轮子。买模块的时候附带的资料,一般都有库文件,我们只需要在主函数调用相应的API使用即可。但懂得具体的原理会让我们写程序时心里有底,出错会具体分析,增加代码的阅读能力,所以这一步还是非常必要的。

欢迎访问我的博客

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

おもいね

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

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

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

打赏作者

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

抵扣说明:

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

余额充值