NAME

gpiothsdriver for DHTxx and AM320x temperature and humidity sensors

SYNOPSIS

To compile this driver into the kernel, place the following line in your kernel configuration file:
device gpioths
Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):
gpioths_load="YES"

DESCRIPTION

The gpioths driver supports the DHTxx and AM320x family of temperature and humidity sensors. The driver automatically reads the values from the sensor once every 5 seconds, and makes the results available via sysctl(8) variables.

HARDWARE

The gpioths driver provides support for the following devices:
DHT11 DHT12
DHT21 DHT22
AM3201 AM3202
The supported devices are all similar to each other, varying primarily in accuracy and resolution. The devices require a single wire for data communications, using a custom protocol which is not compatible with Maxim's 1-wire(tm). The AM320x devices also support connection to an i2c bus, but this driver supports only the single-wire connection option.

SYSCTL VARIABLES

Sysctl variables are used to access the most recent temperature and humidity measurements.
dev.gpioths.<unit>.temp
The current temperature in integer deciKelvins. Note that sysctl(8) will convert those units to display in decimal degrees Celcius.
dev.gpioths.<unit>.hum
The current relative humidity, as an integer percentage.
dev.gpioths.<unit>.fails
The number of failed attempts to communicate with the sensor since the last good access. Cleared whenever a set of measurements is successfully retrieved.

FDT CONFIGURATION

On an fdt(4) based system, a gpioths device node is typically defined directly under the root node, or under a simplebus node that represents a collection of devices on a board.
The following properties are required in the gpioths device subnode:
compatible
Must be "dht11".
gpios
A reference to the gpio device and pin for data communications.

Example of adding a sensor with an overlay

/dts-v1/; 
/plugin/; 
#include <dt-bindings/gpio/gpio.h> 
 
/ { 
    compatible = "wand,imx6q-wandboard"; 
}; 
 
&{/} { 
    dht0 { 
        compatible = "dht11"; 
        gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>; 
    }; 
};

HINTS CONFIGURATION

On a device.hints(5) based system, such as MIPS, these values are configurable for gpioths:
hint.gpioths.<unit>.at
The gpiobus(4) instance the gpioths instance is attached to.
hint.gpioths.pins
A bitmask with a single bit set to indicate which gpio pin on the gpiobus(4) to use for data communications.

SEE ALSO

fdt(4), gpiobus(4), sysctl(8)

HISTORY

The gpioths driver first appeared in FreeBSD 11.1.

Recommended readings

Pages related to gpioths you should read also: