error: 'dht11' does not name a type

Ho copiato dal forum questo codice

#include <dht11.h> //For DHT11
#include <OneWire.h>  //For DS18B20

const byte DHT11_PIN=8;           //DHT11 Signal pin on digital 8
const byte DS18B20_Pin = 2;       //DS18B20 Signal pin on digital 2
          
dht11 DHT;
OneWire ds(DS18B20_Pin); // on digital pin 2
float temperature;
int chk;                      

void setup()
{
 delay(1000);  // sempre meglio mettere qui un delay
 Serial.begin(9600); 
 Serial.println();
}

void loop()
{
 chk = DHT.read(DHT11_PIN);               // READ DATA DHT11
 switch (chk)
 {
   case DHTLIB_OK:           //Serial.print("OK,\t % "); 
        // DISPLAY DATA
        Serial.print("Umidita dentro casa : \t ");
        Serial.print(DHT.humidity,1);
        Serial.println(" %");  
        Serial.print("Temp. dentro casa : \t ");
        Serial.print(DHT.temperature,1);
        Serial.println(" C");
        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;
 }
 //delay(1000);                             //End DHT11
 temperature = getTemp();           //Start DS18B20
 Serial.print("Temp. acqua :            ");
 Serial.print(temperature);
 Serial.println(" C");
 Serial.println(" ");
 delay(1000); //just here to slow down the output so it is easier to read
}

float getTemp()     
{  //returns the temperature from one DS18S20 in DEG Celsius
... questa rimane invariata
}

pero mi da questi errori... come mai?

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Mac OS X), Board: "Arduino Mega 2560 or Mega ADK"
sketch_nov22a:7: error: 'dht11' does not name a type
sketch_nov22a.ino: In function 'void loop()':
sketch_nov22a:21: error: 'DHT' was not declared in this scope
sketch_nov22a:24: error: 'DHTLIB_OK' was not declared in this scope
sketch_nov22a:33: error: 'DHTLIB_ERROR_CHECKSUM' was not declared in this scope
sketch_nov22a:36: error: 'DHTLIB_ERROR_TIMEOUT' was not declared in this scope
sketch_nov22a.ino: In function 'float getTemp()':
sketch_nov22a:54: error: expected primary-expression before '...' token
sketch_nov22a:54: error: expected `;' before '...' token

abbiate pazienza ... grazie

Hai scaricato la libreria dht11 all'interno della directory library di Arduino?

si... sono sicuro in quanto con quest'altro sketch funziona correttamente

int pin=4;
DHT11 dht11(pin); 
void setup()
{
  Serial.begin(9600);
 while (!Serial) {
     ; // wait for serial port to connect. Needed for Leonardo only
   }
}

void loop()
{
 int err;
 float temp, humi;
 if((err=dht11.read(humi, temp))==0)
 {
   Serial.print("temperature:");
   Serial.print(temp);
   Serial.print(" humidity:");
   Serial.print(humi);
   Serial.println();
 }
 else
 {
   Serial.println();
   Serial.print("Error No :");
   Serial.print(err);
   Serial.println();    
 }
 delay(DHT11_RETRY_DELAY); //delay for reread

Per voi sarà una banalità ma io, che ho appena iniziato, non capisco dove sia la differenza .. grazie

Guarda che MAIUSCOLE e minuscole contano ! In un caso hai istanziato la classe dht11 in un altro la classe DHT11 ... scopri tu quella che è esatta ... :smiling_imp:

Guglielmo

... grazie... era facile...

La soluzione che ho adottato è quella di installare una libreria compatibile con lo sketch, piuttosto che modificare il codice....

Visto che questo sketch non funziona non è che me ne potete postare uno che permetta ad arduino di comunicare con i due sensori in maniera intelligente? Mi fareste un gran favore. ;D