1

I get this error every time. I used the DHT tester file from this library. Which gives me an error.

And then I realized that in my code Arduino recognizes only the readTemperature function, not readHumidity, but it doesn't give any compile error. Also, when I read the sensor, this is the output:

Humidity Sensor Test
Temp: 0C, Humidity: 0%
Temp: 0C, Humidity: 0%
Temp: 0C, Humidity: 0%

My code is here:

//DHT11 Sensor:
#include "DHT.h"
#define DHTPIN 5 // which digital pin we're connected to
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
//I2C LCD:
#include <Wire.h> // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>
// Set the LCD I2C address
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); 
void setup() {
 Serial.begin(9600);
 delay(300);
 lcd.begin(16,2);
 Serial.println("Humidity Sensor Test");
 dht.begin();
 delay(300);
}
void loop() {
 // Reading temperature or humidity takes about 250 milliseconds!
 // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
 int h = dht.readHumidity();
 int t = dht.readTemperature();
 // set the cursor to (0,0):
 lcd.setCursor(0, 0);
 // print from 0 to 9:
 lcd.print("Temp: ");
 lcd.print(t);
 lcd.print("C");
 // set the cursor to (16,1):
 lcd.setCursor(0,1);
 lcd.print("Humidity: ");
 lcd.print(h);
 lcd.print("%");
 Serial.print("Temp: ");
 Serial.print(t);
 Serial.print("C, Humidity: ");
 Serial.print(h);
 Serial.println("%");
 delay(2500);
}

Also I have the 10k resistor between data and Vcc pins. Data is connected to digital pin 5. Has anyone had this problem before?

dda
1,5951 gold badge12 silver badges17 bronze badges
asked Apr 6, 2017 at 0:16
1
  • Please, post the actual sketch your are using. This one doesn't compile and your lcd declaration is wrong. Commented Oct 18, 2017 at 19:21

1 Answer 1

1

There are several versions of the DHT11 library for Arduino out there. This is the one that worked for me: https://github.com/adidax/dht11. Here is a simple sketch to test the sensor with the output going to the serial monitor.

// 5k ohm pull up resistor is used on the data line.
// Sensor operates at 5VDC.
// Data line connects to Arduino Uno pin 3.
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 3
// Sensor calibration. Start with 0 for each.
const int HumidityCorrection = -10; // -10 worked with my sensor.
const int CelsiusTemperatureCorrection = 2; // 2 worked with my sensor.
const float FahrenheitTemperatureCorrection = CelsiusTemperatureCorrection * 1.8;
// Update the serial display every 60 seconds.
const float UpdateSerialDisplay = 60000;
// Celsius to Fahrenheit conversion.
double Fahrenheit(double celsius){
 return 1.8 * celsius + 32;
}
void setup(){
 Serial.begin(9600);
 // Minimum wait for good data recommended is 1 second.
 delay(2000);
 Serial.println("DHT11 TEST PROGRAM ");
 Serial.print("LIBRARY VERSION: ");
 Serial.println(DHT11LIB_VERSION);
}
void loop(){
 Serial.println("");
 int chk = DHT11.read(DHT11PIN);
 switch(chk){
 case DHTLIB_OK: 
 //Serial.println("OK"); 
 break;
 case DHTLIB_ERROR_CHECKSUM: 
 Serial.println("Read sensor: Checksum error"); 
 break;
 case DHTLIB_ERROR_TIMEOUT: 
 Serial.println("Read sensor: Time out error"); 
 break;
 default: 
 Serial.println("Read sensor: Unknown error"); 
 break;
 }
 Serial.print("Humidity: ");
 Serial.print("\t");
 Serial.print(DHT11.humidity + HumidityCorrection);
 Serial.println(" %");
 Serial.print("Temperature: ");
 Serial.print("\t");
 Serial.print(DHT11.temperature + CelsiusTemperatureCorrection);
 Serial.println(" C");
 Serial.print("Temperature: ");
 Serial.print("\t");
 Serial.print(round(Fahrenheit(DHT11.temperature) + FahrenheitTemperatureCorrection));
 Serial.println(" F");
 delay(UpdateSerialDisplay);
}

Once you get this working you can add the LCD code to it. Here is a link to the DHT 11 Humidity & Temperature Sensor manual / data sheet: http://www.micropik.com/PDF/dht11.pdf

answered Sep 18, 2017 at 18:56

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.