DHT11 Humiture Sensor
The DHT11 is a digital temperature and humidity sensor module. It reports relative humidity and temperature over a single DATA line using a timing-based 40-bit message.
Part images
What it is
The DHT11 is a digital temperature and humidity sensor module. It reports relative humidity and temperature over a single DATA line using a timing-based 40-bit message.
How students use it
Students use it for room monitors, plant projects, IoT weather dashboards, comfort indicators, and digital-sensor timing lessons. It is slow and low-cost, so it is good for learning environmental sensing, not for precision measurement.
Pins and power
VCC, GND, and DATA.
SunFounder lists working voltage as DC 5V. Confirm module output behavior before direct Pico GPIO connection; for beginner Pico builds, prefer a 3.3V-safe module supply/data path when supported.
DATA is a bidirectional timing signal. SunFounder describes a start signal from the controller, a DHT11 response, then 40 bits: humidity integer, humidity decimal, temperature integer, temperature decimal, and checksum.
Voltage and safety
If powered at 5V, verify DATA is level-shifted or otherwise safe for Pico GPIO. Many beginner builds should use 3.3V-compatible wiring if the module supports it.
Educational environmental sensor only. Do not use it for health, medical, fire, freezer, pet, plant-critical, or safety-critical decisions.
Module internals
Main component: DHT11 digital temperature and humidity sensor.
Resistive humidity element, NTC temperature element, internal 8-bit microcontroller, DATA line, power pins, module PCB, and support resistor/passive components depending on the module.
Datasheet notes
SunFounder lists 20-90%RH humidity range, 0-60C temperature range, +/-5%RH humidity accuracy, +/-2C temperature accuracy, digital output, and 2.0 x 2.0cm PCB. Many DHT11 references also note slow refresh; leave at least about one second between reads.
Common libraries
Use MicroPython's dht module where available: create dht.DHT11(Pin(...)), call measure(), then read temperature() and humidity(). Read slowly enough for the sensor and handle checksum/read errors.
Common mistakes
Polling too quickly, ignoring checksum/read failures, expecting fast response or high accuracy, forgetting shared ground, using the wrong DATA pin in code, and connecting DATA to a non-safe voltage level.