收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1)、 VDD 供电 3.3-5.5V DC;
2)、 DATA 串行数据,单总线;
3)、 NC 空脚;
4)、 GND 接地,电源负极、
3、典型电路;
4、建议连接线长度短于 20 米时用 5.1K 上拉电阻, 大于 20 米时根据实际情况降低上拉电阻的阻值;
5、使用 3.3V 电压供电时连接线长度不得大于 100cm。否则线路压降会导致传感器供电不足,造成测量偏差;
6、每次读出的温湿度数值是上一次测量的结果,欲获取实时数据,需连续读取两次,但不建议连续多次读取传感器,每次读取传感器间隔大于 5 秒即可获得准确的数据(有点弱);
7、微处理器与 DHT11 的连接典型应用电路如上图所示, DATA 上拉后与微处理器的 I/O 端口相连。
(二)、通信协议 串行通信-单线双向:
1、DHT11 器件采用简化的单总线通信。单总线即只有一根数据线,系统中的数据交换、控制均由单总线完成,当总线闲置时,其状态为高电平;
2、DATA 用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一次传送 40 位数据,高位先出(先接收到的是高位);
3、数据格式:
1)、8bit 湿度整数数据 + 8bit 湿度小数数据+8bit 温度整数数据 + 8bit 温度小数数据+8bit 校验位。
注:其中温湿度小数部分为 0。
2)、校验位数据定义:“8bit 湿度整数数据 + 8bit 湿度小数数据+8bit 温度整数数据 + 8bit 温度小数数据” 8bit 校验位等于所得结果的末 8 位
4、接收数据解读:湿度: 0011 0101=35H=53%RH 温度: 0001 1000=18H=24℃
5、数据时序图:用户主机(MCU)发送一次开始信号后, DHT11 从低功耗模式转换到高速模式, 待主机开始信号结束后, DHT11 发送响应信号,送出 40bit 的数据,并触发一次信采集。信号发送如所示;
6、通信步骤:
步骤一:DHT11 上电后要等待 1S 以越过不稳定状态在此期间不能发送任何指令;
步骤二:开始信号(图2-3)微处理器的 I/O 设置为输出同时输出低电平,且低电平保持时间不能小于 18ms,然后微处理器的 I/O设置为输入状态,释放总线等待 DHT11 作出回答信号;
步骤三:DHT11 的 DATA 引脚检测到外部信号有低电平时,等待外部信号低电平结束,完成后 DHT11 的 DATA引脚处于输出状态,输出 80 微秒的低电平作为应答信号,紧接着输出 80 微秒的高电平通知外设准备接收数据,微处理器的 I/O 此时处于输入状态,检测到 I/O 有低电平(DHT11 回应信号)后,等待 80 微秒的高电平后的数据接收,发送信号如所示:
步骤四:由 DHT11 的 DATA 引脚输出 40 位数据,微处理器根据 I/O 电平的变化接收 40 位数据,位数据“0”的格式为(图2-6): 50 微秒的低电平和 26-28 微秒的高电平,位数据“1”的格式为: 50 微秒的低电平加 70微秒的高电平。位数据“0”、“1”格式信号如图所示:
步骤五:结束信号:DHT11 的 DATA 引脚输出 40 位数据后,继续输出低电平 50 微秒后转为输入状态,由于上拉电阻随之变为高电平。但 DHT11 内部重测环境温湿度数据,并记录数据,等待外部信号的到来。
三:编程
1、程序功能:检测温湿度在LCD1602显示或者串口输出检测结果,DHT11检测函数需要返回多个参数所以用了指针传址的操作,模板简单利用;
2、 程序效果:
3、 DHT11.c文件
#include “DHT11.h”
#include “delay.h”
#include “reg52.h”
void Dht11_Start(void)
{
DHT11 = 0;
Delay10ms();
Delay10ms();
Delay10ms();
DHT11 = 1;
Delay10us();
while(DHT11 == 0);
Delay10us();
while(DHT11 != 0);
}
void Rd_DHT11(char *p)
{
int i,j;
char temp;
for(i=0 ; i<5 ; i++)
{
for( j=0 ; j<8 ; j++ )
{
while(DHT11 == 0);
Delay10us();
Delay10us();
Delay10us();
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!