My DHT11 keeps giving wrong values—what’s wrong?
If your DHT11 is giving wrong readings (e.g., unrealistic humidity/temperature values, NaN
errors, or erratic data), here are the most common causes and fixes:
1. Wiring Issues (Most Common Problem)
Check:
Pull-up resistor: A 4.7kΩ–10kΩ resistor must connect the DATA line to VCC (DHT11 won't work reliably without it).
Loose connections: Ensure wires are firmly plugged into the correct pins.
Short circuits: Check if any wires are touching accidentally.
Fix:
Re-wire the circuit like this:
DHT11 VCC → 5V DHT11 GND → GND DHT11 DATA → Digital Pin (e.g., D2) 4.7kΩ resistor between DATA and VCC
2. Power Supply Problems
Symptoms:
Readings are 0, -999, or randomly jump.
Sensor gets warm (indicates a wiring mistake).
Fix:
Use a stable 5V supply (some 3.3V boards may not provide enough power).
If using a long cable (>1m), add a 100nF capacitor between VCC and GND near the sensor to reduce noise.
3. Software Errors
Symptoms:
NaN
(Not a Number) or failed readings.Values don’t change or freeze.
Fix:
Increase the delay between readings (DHT11 needs ≥1 second between polls).
void loop() { delay(2000); // Wait 2 seconds (DHT11 max rate = 1Hz) float h = dht.readHumidity(); // ... }
Update the library: Use the latest "DHT sensor library" by Adafruit.
Add error handling:
if (isnan(h) || isnan(t)) { Serial.println("Sensor error!"); delay(1000); return; // Skip this loop }
4. Sensor Placement & Environment
Problems:
Condensation: High humidity can cause water to form inside the sensor, corrupting data.
Heat sources: Placing the sensor near heaters, sunlight, or MCUs can skew readings.
Fix:
Keep the sensor in a ventilated, dry area.
Avoid direct contact with water (use a protective cover if needed).
5. Faulty Sensor (Last Resort)
Test:
Try a different DHT11 (they’re cheap and sometimes defective).
Test with a DHT22 (more reliable) if precision matters.
Signs of a Dead Sensor:
Always returns
NaN
or the same value.Gets excessively hot when powered.
Quick Checklist
Issue | Solution |
---|---|
No data/wrong values | Check pull-up resistor & wiring |
NaN errors | Increase delay, update library |
Erratic jumps | Add capacitor, stabilize power |
Sensor warm | Disconnect immediately (wrong wiring) |
评论
发表评论