leggere valori da dht11

Ciao ragazzi, sono appena arrivato nel mondo arduino.
Stavo seguendo un tutorial su come leggere la temperatura da una sonda dht11 e mi è apaprso un errore procedendo alla verifica del codice. Allora ho provato a seguire un altro codice e l'errore non si è presentato. posso chiedere a voi dove sta la differenza tra questi due?

1 codice (errore)

#include <dht11.h>
dht11 DHT;
#define DHT11_PIN 4

void setup(){
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop(){
  int chk;
  Serial.print("DHT11, \t");
  chk = DHT.read(DHT11_PIN);    // READ DATA
  switch (chk){
    case DHTLIB_OK:  
                Serial.print("OK,\t"); 
                break;
    case DHTLIB_ERROR_CHECKSUM: 
                Serial.print("Checksum error,\t"); 
                break;
    case DHTLIB_ERROR_TIMEOUT: 
                Serial.print("Time out error,\t"); 
                break;
    default: 
                Serial.print("Unknown error,\t"); 
                break;
  }
 // DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  delay(1000);
}

2 codice (funzionante)

/*-----( Import needed libraries )-----*/
#include <dht11.h>

/*-----( Declare objects )-----*/
dht11 DHT11;

/*-----( Declare Constants, Pin Numbers )-----*/
#define DHT11PIN 2

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);
  Serial.println("DHT11 TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT11LIB_VERSION);
  Serial.println();
}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  Serial.println("\n");

  int chk = DHT11.read(DHT11PIN);

  Serial.print("Read sensor: ");
  switch (chk)
  {
    case 0: Serial.println("OK"); break;
    case -1: Serial.println("Checksum error"); break;
    case -2: Serial.println("Time out error"); break;
    default: Serial.println("Unknown error"); break;
  }

  Serial.print("Humidity (%): ");
  Serial.println((float)DHT11.humidity, 2);

  Serial.print("Temperature (oC): ");
  Serial.println((float)DHT11.temperature, 2);

  delay(2000);
}/* --(end main loop )-- */

in particolare nella parte di codice dello swith case...

Probabilmente le parole tipo DHTLIB_OK sono delle define che dovrebbero stare nella dth11.h
Qualcosa del genere.

#define DHTLIB_OK 0
#define DHTLIB_ERROR_CHECKSUM -1

Di solito le funzioni in C si fa che ritornino 0 quando tutto okay, -1 -2 -3 etc. per segnalare i vari tipi di errori e si creano delle define (specie di costanti) con dei nomi singnificativi, tipo DHTLIB_ERROR_CHECKSUM

Anche se fossero nella libreria per questioni di visibilità non verrebbero sostituite nel file .ino e quindi il compilatore darebbe errore non conoscendole.