garyns / pigpio-dht

DHT11 Temperature and Humidity Sensor using pigpio
GNU General Public License v3.0
12 stars 6 forks source link

pigpio-dht

DHT11 and DHT22 Driver Library based on the pigpio_ GPIO library.

.. _pigpio: http://www.python.org/

Installation

pip install pigpio-dht

Supported Versions of Python

Tested against Python >= 3.5.

May work with earlier 3.X versions but this has not been confirmed. Does not work with Python 2.7.

Links

.. _GitHub Repository : https://github.com/garyns/pigpio-dht

DHT Sensors are Slow

DHT sensors are slow to take readings, and need to settle between reads. For instance, the maximum read rates for the sensors are:

This library monitors the read rate and will pause between successive calls to read() to honor these limits.

Examples

One-Shot Read


Take a single reading from the sensor.

Code ^^^^ ::

NOTE: The import has a _ not - in the module name.

from pigpio_dht import DHT11, DHT22

gpio = 21 # BCM Numbering

sensor = DHT11(gpio)

sensor = DHT22(gpio)

result = sensor.read() print(result)

Output ^^^^^^ ::

{'temp_c': 20, 'temp_f': 68.0, 'humidity': 35, 'valid': True}

Also see ^^^^^^^^

read()__

_ read(retries=0) raises TimeoutError

Sampled Read


Take many readings (by repeating calling read()) from the sensor and return a normalised result.

Code ^^^^

::

NOTE: The import has a _ not - in the module name.

from pigpio_dht import DHT11, DHT22

gpio = 21 # BCM Numbering

sensor = DHT11(gpio)

sensor = DHT22(gpio)

result = sensor.sample(samples=5) print(result)

Output ^^^^^^

::

{'temp_c': 20, 'temp_f': 68.0, 'humidity': 35, 'valid': True}

Also see ^^^^^^^^

sample()__

__ sample(samples=5, max_retries=None) raises TimeoutError_

API

The classes DHT11 and DHT22 both extend the base class DHTXX and share a common API.

Constructor: DHT11 | DHT22(gpio, timeout_secs=0.5, use_internal_pullup=True, pi=None)


Parameters ^^^^^^^^^^

read(retries=0) raises TimeoutError


Take a single reading from the sensor.

Parameters ^^^^^^^^^^

Returns ^^^^^^^ A Dictionary in the form {'temp_c': 20, 'temp_f': 68.0, 'humidity': 35, 'valid': True}

Where:

Discard readings where value == False and try again.

Raises ^^^^^^

TimeoutError """"""""""""

Also see ^^^^^^^^

DHT Sensors are Slow_

sample(samples=5, max_retries=None) raises TimeoutError


Take many readings (by repeating calling read()) from the sensor and return a normalised result.

Please note that a call to sample() takes time. For example for the DHT11 with a maximum read rate of once every 1 seconds, 5 samples will take approximately 1 second * 5 samples = 5 seconds.

Parameters:

Raises ^^^^^^

TimeoutError """"""""""""