dht11温湿度传感器程序 DHT11温湿度传感器介绍
DHT11温湿度传感器介绍
DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃。
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。
一、折叠应用领域
暖通空调 测试及检测设备汽车 数据记录器消费品 自动控制气象站 家电湿度调节器 医疗除湿器二、折叠特性
相对湿度和温度测量全部校准,数字输出卓越的长期稳定性无需额外部件超长的信号传输距离超低能耗4引脚安装26dht11 温湿度传感器 openwrt入门经典教程
dht11 温湿度传感器
本实验目标掌握 dht11 的驱动程序原理
掌握使用 dht11 温湿度传感器
1. 硬件原理
下图是我们温度传感器的接入引脚, 3.3V 供电, io 口接 P13 的 GP0( GPIO0 的简称 )。
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应
用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳 定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能 8 位单片机 相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内 存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统 集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最 佳选择。
2. dht11 相关时序
初始化(复位)时序图:
1) 控制器首先至少拉低 18ms ,然后拉高 20-40us 后等待 DHT11 的应答
2) 当 DHT11 检测到信号后,首先将总线拉低约 80us 然后在拉高 80us 作为应答信号。
读取数据时序图:
其中,表示 0 的时序如下:
表示 1 的时序如下:
1) DHT11 以低电平应答主机,然后拉高总线准备输出。输出 0 信号和 1 信号都是以低电 平开始高电平结束。
2) DHT11 输出 0、 1 信号的低电平时间相同,而高电平的时间不同,输出 0 信号时高电平 约 26-28us,而当输出 1 信号时高电平约为 70us。
2. 驱动程序 (需要详细注释的话参考 cc2540/cc2530 的 dht11 程序)
关于字符设备驱动程序的使用,我们可以参照点亮 led 灯的那个实验,这里只给出跟 dht11 密切相关的驱动程序,详细的程序请查看我们的驱动文件!
//从 dht11 中读取一个字节
static unsigned char read_byte(void)
{
unsigned char r_val = 0;
unsigned char t_count = 0; //计时器,防止超时;
unsigned char i;
for(i = 0 ; i < 8 ; i++)
{
t_count = 0;
while(!DHT11_STA)
{
udelay(1);
t_count++; if(t_count>250)
{
printk("read_byte error1\n");
return 100;
}
}
t_count = 0;
udelay(32);
if(DHT11_STA == 1)
{
r_val <<= 1; r_val |= 1;
}
else
{
r_val <<= 1; continue;
}
while( DHT11_STA == 1 )
{
udelay(2);
t_count++; if(t_count>250)
{
printk("read_byte error2\n");
return 100;
}
}
}
return r_val;
}
//从 dht11 中读出数据
static unsigned int read_dht11(void)
{
unsigned char t_count = 0; //计时器;
unsigned int dht11 = 0;
unsigned char h_i = 0 , h_f = 0; unsigned char t_i = 0 , t_f = 0;
unsigned char check_sum = 0;
DHT11_OUT;
DHT11_L;
mdelay(30); //>18ms;
DHT11_H;
udelay(30);
DHT11_IN;
while(DHT11_STA == 1)
{
udelay(1); t_count++;
if(t_count > 50)
{
printk("device error: dht11!\n");
return 0;
}
}
t_count = 0;
while(!DHT11_STA)
{
udelay(1); t_count++;
if(t_count > 250)
{
printk("read_dht11 error1\n");
return 0;
}
}
t_count = 0;
udelay(50);
while(DHT11_STA)
{
udelay(1);
t_count++; if(t_count > 250)
{
printk("read_dht11 error2\n");
return 0;
}
}
h_i = read_byte();
h_f = read_byte();
t_i = read_byte();
t_f = read_byte(); check_sum = read_byte();
if(check_sum == (h_i+h_f+t_i+t_f) || (h_i!=100 && t_i != 100))
{
dht11 = t_i;
dht11 <<= 8; //高 8 位用来放温度值;
dht11 += h_i; //低 8 位存放湿度值;
}
else
{
dht11 = 0;
printk("read_dht11 error3\n");
}
return dht11;
}
3. 应用程序
int main(int argc, char **argv)
{
int fd;
unsigned int dht11 = 0; unsigned int humi,temp;
//打开温度传感器驱动模块
fd = open("/dev/dht11", O_RDWR | O_NONBLOCK);
if (fd < 0)
{
printf("can't open /dev/dht11\n");
return -1;
}
read(fd, &dht11, sizeof(dht11));
temp = dht11>>8; //取出温度值;
humi = dht11 &0x000000ff; //取出湿度值; printf("the current temperature is: %d\n",temp); printf("the current humidity is: %d\n",humi);
close(fd);
return 0;
}
4. 实验结果
相关问答
DHT11温湿度传感器 怎样给单片机传输数据?DHT11是一个温湿度传感器,根据DHT11的引脚图,将DHT11数据线DATA接到单片机的IO口,并将DHT11的电源供电3.3-5V,地线与单片机共地,NC脚悬空。然后软件部分,...
dh 11温湿度传感器 原理?DH11数字温湿度传感器是一种集温度、湿度一体的复合传感器,它能把温度和湿度物理量通过温、湿度敏感元件和相应电路转化成方便计算机、PLC、智能仪表等数据采...
DHT11 数字 传感器 与单片机怎么实现连接?DHT11是一个温湿度传感器,根据DHT11的引脚图,将DHT11数据线DATA接到单片机的IO口,并将DHT11的电源供电3.3-5V,地线与单片机共地,NC脚悬空。然后软件部分,根...
dht温湿度传感器 装上显示不准?具体处理我不知道,但原理是:传感器上应该有一个调整的电位器,用标准温度计对照调整应该就可以了。或者文该传感器是的信号传输制式是频率的型的,用频率计对...
朋友们 谁了解:济宁中空玻璃 温湿度 控制设备生产周期, 温湿度 ...[回答]我用的STC89系列的单片机和DHT11温湿度传感器,也碰到这个问题。现在准备这样解决:首先,显示不用液晶什么的,一方面占用比较多的I/O,另一方面毕竟单...
云平台概念是什么?AIot云平台和物联网云平台是一个东西吗?...[回答]IoTStudio。依托于IoTStudio,如何10分钟以内搭建好一个物联网开发应用,阿里云AIoT通过使用树莓派(RaspberryPi4)、DHT11温湿度传感器设备和物联...
湿度传感器 探头可以放进水里吗?湿度传感器探头可以放进水里。湿度传感器测试的湿度是一个相对值。把湿度传感器放进水里,在水里测湿度这个实验我没有试过,也实在想不通这样的测试有什么意...
温湿度 监测器价格是多少- 一起装修网一起装修网问答平台为您提供温湿度监测器价格是多少的相关答案,并为您推荐了关于温湿度监测器价格是多少的相关问题,一起装修网问答平台:装修问题,因我而止。
aht 11温湿度传感器 质量怎么样- 一起装修网aht11温湿度传感器质量怎么样
哪位大神知道净水器冬天结冰怎么办_土巴兔装修问答温度太高没有进行冷却就直接放入冰箱内,热的空气含水量较大,在冰箱内冷却会造成大量的冷凝水,冷凝水的生成大于排出的速度就会造成积水。还有一个原因就是,开门...