温湿度传感器应用场景(26dht11 温湿度传感器 openwrt入门经典教程)

Posted

篇首语:人行千里路,胜读十年书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了温湿度传感器应用场景(26dht11 温湿度传感器 openwrt入门经典教程)相关的知识,希望对你有一定的参考价值。

温湿度传感器应用场景(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. 实验结果

相关参考

汽车室外温度传感器英文缩写(26dht11 温湿度传感器 openwrt入门经典教程)

dht11温湿度传感器本实验目标掌握dht11的驱动程序原理掌握使用dht11温湿度传感器1.硬件原理下图是我们温度传感器的接入引脚,3.3V供电,io口接P13的GP0(GPIO0的简称)。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度...

湿度传感器DHT11(树莓派 DHT11 温湿度传感器读取 C 语言版)

树莓派DHT11温湿度传感器读取C语言版2020年5月19日Spoony未分类0我们之前介绍过三种读取DHT11温湿度传感器数值的方法:用系统功能直读、用Adafruit的库读取、用Python编程读取。尽管方法很多,但是在不同的树莓派上、使用不同的生...

湿度传感器DHT11(树莓派 DHT11 温湿度传感器读取 C 语言版)

树莓派DHT11温湿度传感器读取C语言版2020年5月19日Spoony未分类0我们之前介绍过三种读取DHT11温湿度传感器数值的方法:用系统功能直读、用Adafruit的库读取、用Python编程读取。尽管方法很多,但是在不同的树莓派上、使用不同的生...

湿度测试仪精度(高精度DHT22温湿度传感器 SEN0137 标准版)

DHT22数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测温元...

湿度测试仪精度(高精度DHT22温湿度传感器 SEN0137 标准版)

DHT22数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个NTC测温元...

温湿度显示(袖珍版温湿度检测装置外加led显示,让简易也变得高大上,,,)

视频加载中...Nodemcu上接入dht11温湿度传感器,再加上u8g2图形显示器,让温度展示在你眼前,,,,

温湿度显示(袖珍版温湿度检测装置外加led显示,让简易也变得高大上,,,)

视频加载中...Nodemcu上接入dht11温湿度传感器,再加上u8g2图形显示器,让温度展示在你眼前,,,,

温度湿度变送器(如何根据使用场景选择适合的温湿度变送器?)

...?我们都知道,在工业生产过程中,各种设备都需要用到温湿度变送器,这是因为当温度、湿度升高或降低时,设备会产生不同的状态。所以,工业现场对温湿度变送器的需求也是很大的。那么,选择一款合适的温湿度变送器如

温度湿度变送器(如何根据使用场景选择适合的温湿度变送器?)

...?我们都知道,在工业生产过程中,各种设备都需要用到温湿度变送器,这是因为当温度、湿度升高或降低时,设备会产生不同的状态。所以,工业现场对温湿度变送器的需求也是很大的。那么,选择一款合适的温湿度变送器如

气象观测站(气象监测站的应用场景有哪些?)

...等模块组成的气象信息采集分析系统,主要用于监测空气温湿度、太阳光照、降雨量、风向风速、大气压力等参数,在生产生活中应用的场景十分广泛。1.果园对于果园种植者来说,最害怕的就是恶劣的气象环境,因为这些自然...