Go Down

Topic: error: 'dht11' does not name a type (Read 2324 times) previous topic - next topic

-d0b-

Nov 22, 2014, 05:05 pm Last Edit: Nov 22, 2014, 05:05 pm by -d0b-
Ho copiato dal forum questo codice
Code: [Select]
#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?

Code: [Select]
 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

cyberhs

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

-d0b-

si... sono sicuro in quanto con quest'altro sketch funziona correttamente
Code: [Select]

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

gpb01

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 ...  :smiley-evil:


Guglielmo
Search is Your friend ... or I am Your enemy !

-d0b-

... 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

Go Up