树莓派从dht11温度湿度传感器读取数据

久龄 久龄     2022-08-27     297

关键词:

DHT11_Pins

时序图参考厂家说明书:DHT11数字湿温度传感器的原理和应用范例

四个阵脚连接:VCC接3.3伏电源,Dout接GPIO口,我接的是物理12针脚,NC留空,GND接地。

波折1:电阻被错接进了VCC,于是看了无数遍时序图,改了无数遍的驱动无论怎么改都是读不出数据。

波折2:偶然看了网上的DHT11上拉电阻电路图才发现错误,于是果断去掉电阻。但为了显示传感器工作正常在电源和VCC间接了个发光二极管进去,数据倒是读出来了,但各种错误。(原因不明)

去掉了电阻,去掉了led,优化了写的python,读数正常。再一次赞一个python。

写DHT11的驱动需要注意时序之间很紧密,python执行任何程序都要花费时间,在获取时序时需要注意所写调试用的代码也是占用时序的,在这一点上也走了一点弯路。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 26 14:24:43 2014
 
@author: pi
"""
 
import RPi.GPIO as gpio
import time
gpio.setwarnings(False)
gpio.setmode(gpio.BOARD)
time.sleep(1)
data=[]
def delay(i): #20*i usdelay
    a=0
    for in range(i):
        a+1
j=0
#start work
gpio.setup(12,gpio.OUT)
#gpio.output(12,gpio.HIGH)
#delay(10)
gpio.output(12,gpio.LOW)
time.sleep(0.02)
gpio.output(12,gpio.HIGH)
i=1
i=1
  
#wait to response
gpio.setup(12,gpio.IN)
 
 
while gpio.input(12)==1:
    continue
 
 
while gpio.input(12)==0:
    continue
 
while gpio.input(12)==1:
        continue
#get data
 
while j<40:
    k=0
    while gpio.input(12)==0:
        continue
     
    while gpio.input(12)==1:
        k+=1
        if k>100:break
    if k<3:
        data.append(0)
    else:
        data.append(1)
    j+=1
 
print "Sensor is working"
#get temperature
humidity_bit=data[0:8]
humidity_point_bit=data[8:16]
temperature_bit=data[16:24]
temperature_point_bit=data[24:32]
check_bit=data[32:40]
 
humidity=0
humidity_point=0
temperature=0
temperature_point=0
check=0
 
 
 
for in range(8):
    humidity+=humidity_bit[i]*2**(7-i)
    humidity_point+=humidity_point_bit[i]*2**(7-i)
    temperature+=temperature_bit[i]*2**(7-i)
    temperature_point+=temperature_point_bit[i]*2**(7-i)
    check+=check_bit[i]*2**(7-i)
 
tmp=humidity+humidity_point+temperature+temperature_point
if check==tmp:
    print "temperature is ", temperature,"wet is ",humidity,"%"
else:
    print "something is worong the humidity,humidity_point,temperature,temperature_point,check is",humidity,humidity_point,temperature,temperature_point,check

测试python程序时间代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 26 16:01:59 2014
 
@author: pi
"""
 
import time
def delay(i):
    k=0
    for in range(i):
        k+=1
n=5000
j=0
 
a=time.time()
i=1
c=time.time()
d=c-a
print d
 
a=time.time()
for in range(n):
    j+=1
c=time.time()
d=c-a
print d
 
a=time.time()
delay(n)
c=time.time()
d=c-a
print d

via

本文来自:树莓派实验室
链接地址:http://shumeipai.nxez.com/2014/10/10/raspberry-dht11-get-temperature-data.html

micropythonesp32读取dht11温湿度传感器数据(代码片段)

MicroPythonESP32读取DHT11温湿度传感器数据DHT11温湿度传感器接线说明ESP32-----DHT113.3V-----VCCGND-----GNDGPIO22-----DOUT本示例基于Thonny平台开发所引入的模块,如果没有按照,可以通过pipinstallxxxx命令在命令提示窗中进行安装,或... 查看详情

玩转传感器——dht11温湿度传感器(stm32版)(代码片段)

玩转传感器——DHT11温湿度传感器(STM32版)文章目录玩转传感器——DHT11温湿度传感器(STM32版)前言一、接口说明1接线图2电源引脚3串行接口(单线双向)二、通信过程三、测量分辨率与电气特性四、使... 查看详情

arduino和c51开发dht11温湿度传感器

技术:51单片机、Arduino、DHT11、温湿度传感器、传感器 概述学习单片机离不开对传感器的学习,本文主要介绍DHT11温湿度传感器的使用方法,同学也可以了解更多的传感器,这对你以后开发产品的思维有很大的帮助详细代码... 查看详情

esp3214.dht11湿度传感器实验(dht操作库)

上一篇:【ESP32】13.DS18B20温度传感器实验(OneWire和DallasTemperature库)前言:先放电路连接图:DHT11是一款已校准数字信号输出的温湿度传感器,湿度精度为+-5%RH,温度精度为+-2℃。量程的话湿度为20~90%RH,温度为0~50℃。和上一篇... 查看详情

esp3214.dht11湿度传感器实验(dht操作库)

上一篇:【ESP32】13.DS18B20温度传感器实验(OneWire和DallasTemperature库)前言:先放电路连接图:DHT11是一款已校准数字信号输出的温湿度传感器,湿度精度为+-5%RH,温度精度为+-2℃。量程的话湿度为20~90%RH,温度为0~50℃。和上一篇... 查看详情

esp32-idf开发实例-传感器模块编程-dht11温度湿度传感器

DHT11温度湿度传感器ESP32是一系列高度集成的、专为移动设备、可穿戴电子产品设计的物联网模块,其集成了天线开关、RFbalun、功率放大器、低接收噪声放大器,滤波器、电源管理模块等,可以独立运行应用,也可以通过SPI/SDIO... 查看详情

micropythonesp32读取dht11温湿度传感器数据+0.96“i2coled显示(代码片段)

【MicroPythonesp32】读取DHT11温湿度传感器数据+0.96“I2Coled显示✨本示例基于Thonny平台开发。相关篇《【MicroPythonRP2040】读取DHT11温湿度传感器数据+0.96“I2Coled显示》-📖ESP32dev引脚功能图🎄DHT11传感器🎄ssd1306I2C0.96... 查看详情

51单片机(dht11温湿度传感器)(代码片段)

...1、运用场景(温湿度检测系统)DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;... 查看详情

fpga的学习:dht11数字温湿度传感器(代码片段)

实验目标:控制DHT11,读出湿度温度数据显示在数码管中,通过按键使湿度和温度在数码管中切换显示。系统的整体框图和工程模块如下。编写代码:`timescale1ns/1nsmoduledht11_ctrl(inputwiresys_clk,//系统时钟,频率... 查看详情

dht11温湿度传感器取值

引脚功能图示   湿度检测范围:20-80%(5%精度)温度检测范围:0-50°C(±2°C精度)    接线用了引脚1,18,20 。引脚1--3.3V正极,引脚18--数据,引脚10--负极,  sudogitclonehttps://github.com/adafruit/Adafruit_P 查看详情

stc15w408as读取dht11温湿度+数据串口打印详解

...验证,主要难点是读取DHT11时序上,弄懂了时序,读这类传感器就很简单拿到数据了。网络上对于这类传感器的资料一搜索一箩筐不光是从源码到原理实现的相关方面的资料很多,满目琳琅,只想说一句参差不齐。不了解前,不... 查看详情

micropythonrp2040读取dht11温湿度传感器数据+0.96“i2coled显示(代码片段)

【MicroPythonRP2040】读取DHT11温湿度传感器数据+oled显示✨本示例基于Thonny平台开发。📒RP2040开发板📘YD-RP2040开发板🎄DHT11传感器🎄ssd1306I2C0.96寸OLED屏幕📌注意事项⛳在运行代码前,需要先将ssd13060.96寸I2... 查看详情

雕爷学编程arduino动手做(55)--dht11温湿度传感器

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,... 查看详情

Arduino DHT11 读数交换位置

...T库的DHT11是否有其他人遇到这种问题。我每分钟读取一次传感器湿度和温度。我没有使用延迟,而是检查当前毫秒-最后读取毫秒来检查何时需要再次读取值。无论如何,这是我绘制的数据。有时它可以轻松工作几个 查看详情

树莓派3b驱动dht11温湿度传感器

新建并打开C文件touchdht11.csudovimdht11.c编写驱动程序 1#include<wiringPi.h>2#include<stdio.h>3#include<stdlib.h>4#include<stdint.h>5#defineMAX_TIME856#defineDHT11PIN77#defineATTEMPTS5/ 查看详情

stm32读取温湿度传感器dht11和dht21(am2301)系列问题(代码片段)

1、DHT11和DHT21传感器  这两种传感器都是奥松公司的产品,具体的传感器说明书在其官网上有(www.aosong.com)。  DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采... 查看详情

arduioesp8266获取dht11温湿度传感器数据(代码片段)

ArduioESP8266获取DHT11温湿度传感器数据所需库:DHTesp库DHT11传感器ESP8266nodemcu接线说明DHT11----ESP8266Data-----D7(gpio13)数据打印 查看详情

stc15w408as读取dht11温湿度+oled显示+数据串口打印修订版(代码片段)

STC15W408AS读取DHT11温湿度+OLED显示+数据串口打印【修订版】相关篇《STC15W408AS读取DHT11温湿度+OLED显示+数据串口打印》该版本主要修正了温度显示精度问题。主程序代码#include"stdio.h"//#include"string.h"// 查看详情