Humiture sensor

Salve a tutti,
sto studiando un progetto in cui è incluso anche un sensore di umidità che dovrà attivare una ventola
al raggiungimento di una soglia di umidità prestabilita e spegnerla al di sotto di un' altra soglia determinata.
Simile a questo.

Ho acquistato un sensore di umidità del sunfounder (vedi immagine allegata).

Chiedo: è un DHT11? Rileva solo l' umidità o anche la temperatura? la libreria da usare è la DHT?
A me serve rilevare solo l' umidità perchè per la temperatura uso un altro sensore l' LM35DZ.
Grazie.

humiture sensor.jpg

Sembra un DHT11, legge temperatura e umidità e fa abbastanza male entrambe le cose. Una libreria adatta la trovi sicuramente nel Library Manager.

Grazie Sukko
ma dove è il library manager?

Arduino IDE

Sketch => #include libreria => Gestione librerie
Click

Ciao,
P.

Salve a tutti ho installato la libreria per il DHT11 (almeno penso sia quella giusta)
ma nel verificare lo sketch mi da un messaggio di errore.

#include <DHT.h>
#define DHTPIN 4     // Pin di Arduino dove è collegato il sensore
#define rele 5       //  Pin di Arduino dove è collegato il relè
float val_umid_max = 75.0 ;  // valore umidità a cui si attiva la ventola
float val_umid_min = 50.0 ;  // valore umidità a cui si spegne la ventola
#define DHTTYPE DHT11   // DHT 11 

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  pinMode(rele, OUTPUT);
  digitalWrite ( rele, HIGH ); // Spegne la ventola
  dht.begin();
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) ) {
    Serial.println("Errore nella lettura del sensore !");
    return;
  }
  Serial.print("Umidita': ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.println(" *C ");

  if (h >= val_umid_max )  {
    digitalWrite(rele, LOW) ;  // Accende la ventola
  }
  else if ( h <= val_umid_min )  {
    digitalWrite(rele, HIGH) ; // Spegne la ventola
  }
}

Quale errore...? :confused:

Arduino:1.8.1 (Windows 10), Scheda:"Arduino/Genuino Uno"

In file included from C:\Users\Flaviano\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0:

C:\Users\Flaviano\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory

#include <Adafruit_Sensor.h>

^

compilation terminated.

exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

Installa anche la libreria Adafruit_Sensor, sempre dal Library Manager.

L' ho installata e ora il mess. di errore è il seguente:

Arduino:1.8.1 (Windows 10), Scheda:"Arduino/Genuino Uno"

Sensore_umidit_:5: error: stray '\302' in program

float val_umid_max = 75.0 ; // valore umidità a cui si attiva la ventola

^

Sensore_umidit_:5: error: stray '\240' in program

Sensore_umidit_:6: error: stray '\302' in program

float val_umid_min = 50.0 ; // valore umidità a cui si spegne la ventola

^

Sensore_umidit_:6: error: stray '\240' in program

Sensore_umidit_:9: error: stray '\302' in program

DHT dht(DHTPIN, DHTTYPE);

^

Sensore_umidit_:9: error: stray '\240' in program

Sensore_umidit_:9: error: stray '\302' in program

Sensore_umidit_:9: error: stray '\240' in program

Sensore_umidit_:9: error: stray '\302' in program

Sensore_umidit_:9: error: stray '\240' in program

Sensore_umidit_:9: error: stray '\302' in program

Sensore_umidit_:9: error: stray '\240' in program

Sensore_umidit_:9: error: stray '\302' in program

Sensore_umidit_:9: error: stray '\240' in program

Sensore_umidit_:12: error: stray '\302' in program

 Serial.begin(9600);

^

Sensore_umidit_:12: error: stray '\240' in program

Sensore_umidit_:13: error: stray '\302' in program

 pinMode(rele, OUTPUT);

^

Sensore_umidit_:13: error: stray '\240' in program

Sensore_umidit_:13: error: stray '\302' in program

Sensore_umidit_:13: error: stray '\240' in program

Sensore_umidit_:13: error: stray '\302' in program

Sensore_umidit_:13: error: stray '\240' in program

Sensore_umidit_:13: error: stray '\302' in program

Sensore_umidit_:13: error: stray '\240' in program

Sensore_umidit_:13: error: stray '\302' in program

Sensore_umidit_:13: error: stray '\240' in program

Sensore_umidit_:14: error: stray '\302' in program

 digitalWrite ( rele, HIGH ); // Spegne la ventola

^

Sensore_umidit_:14: error: stray '\240' in program

Sensore_umidit_:14: error: stray '\302' in program

Sensore_umidit_:14: error: stray '\240' in program

Sensore_umidit_:14: error: stray '\302' in program

Sensore_umidit_:14: error: stray '\240' in program

Sensore_umidit_:14: error: stray '\302' in program

Sensore_umidit_:14: error: stray '\240' in program

Sensore_umidit_:14: error: stray '\302' in program

Sensore_umidit_:14: error: stray '\240' in program

Sensore_umidit_:15: error: stray '\302' in program

 dht.begin();

^

Sensore_umidit_:15: error: stray '\240' in program

Sensore_umidit_:19: error: stray '\302' in program

 delay(2000);

^

Sensore_umidit_:19: error: stray '\240' in program

Sensore_umidit_:20: error: stray '\302' in program

 float h = dht.readHumidity();

^

Sensore_umidit_:20: error: stray '\240' in program

Sensore_umidit_:21: error: stray '\302' in program

 // Read temperature as Celsius (the default)

^

Sensore_umidit_:21: error: stray '\240' in program

Sensore_umidit_:22: error: stray '\302' in program

 float t = dht.readTemperature();

^

Sensore_umidit_:22: error: stray '\240' in program

Sensore_umidit_:23: error: stray '\302' in program

 // Check if any reads failed and exit early (to try again).

^

Sensore_umidit_:23: error: stray '\240' in program

Sensore_umidit_:24: error: stray '\302' in program

 if (isnan(h) || isnan(t) ) {

^

Sensore_umidit_:24: error: stray '\240' in program

Sensore_umidit_:25: error: stray '\302' in program

  Serial.println("Errore nella lettura del sensore !");

^

Sensore_umidit_:25: error: stray '\240' in program

Sensore_umidit_:25: error: stray '\302' in program

Sensore_umidit_:25: error: stray '\240' in program

Sensore_umidit_:26: error: stray '\302' in program

  return;

^

Sensore_umidit_:26: error: stray '\240' in program

Sensore_umidit_:26: error: stray '\302' in program

Sensore_umidit_:26: error: stray '\240' in program

Sensore_umidit_:27: error: stray '\302' in program

 }

^

Sensore_umidit_:27: error: stray '\240' in program

Sensore_umidit_:28: error: stray '\302' in program

 Serial.print("Umidita': ");

^

Sensore_umidit_:28: error: stray '\240' in program

Sensore_umidit_:29: error: stray '\302' in program

 Serial.print(h);

^

Sensore_umidit_:29: error: stray '\240' in program

Sensore_umidit_:30: error: stray '\302' in program

 Serial.print(" %\t");

^

Sensore_umidit_:30: error: stray '\240' in program

Sensore_umidit_:31: error: stray '\302' in program

 Serial.print("Temperatura: ");

^

Sensore_umidit_:31: error: stray '\240' in program

Sensore_umidit_:32: error: stray '\302' in program

 Serial.print(t);

^

Sensore_umidit_:32: error: stray '\240' in program

Sensore_umidit_:33: error: stray '\302' in program

 Serial.println(" *C ");

^

Sensore_umidit_:33: error: stray '\240' in program

Sensore_umidit_:35: error: stray '\302' in program

 if (h >= val_umid_max ) {

^

Sensore_umidit_:35: error: stray '\240' in program

Sensore_umidit_:35: error: stray '\302' in program

Sensore_umidit_:35: error: stray '\240' in program

Sensore_umidit_:36: error: stray '\302' in program

  digitalWrite(rele, LOW) ; // Accende la ventola

^

Sensore_umidit_:36: error: stray '\240' in program

Sensore_umidit_:36: error: stray '\302' in program

Sensore_umidit_:36: error: stray '\240' in program

Sensore_umidit_:36: error: stray '\302' in program

Sensore_umidit_:36: error: stray '\240' in program

Sensore_umidit_:36: error: stray '\302' in program

Sensore_umidit_:36: error: stray '\240' in program

Sensore_umidit_:36: error: stray '\302' in program

Sensore_umidit_:36: error: stray '\240' in program

Sensore_umidit_:36: error: stray '\302' in program

Sensore_umidit_:36: error: stray '\240' in program

Sensore_umidit_:36: error: stray '\302' in program

Sensore_umidit_:36: error: stray '\240' in program

Sensore_umidit_:37: error: stray '\302' in program

 }

^

Sensore_umidit_:37: error: stray '\240' in program

Sensore_umidit_:38: error: stray '\302' in program

 else if ( h <= val_umid_min ) {

^

Sensore_umidit_:38: error: stray '\240' in program

Sensore_umidit_:38: error: stray '\302' in program

Sensore_umidit_:38: error: stray '\240' in program

Sensore_umidit_:39: error: stray '\302' in program

  digitalWrite(rele, HIGH) ; // Spegne la ventola

^

Sensore_umidit_:39: error: stray '\240' in program

Sensore_umidit_:39: error: stray '\302' in program

Sensore_umidit_:39: error: stray '\240' in program

Sensore_umidit_:39: error: stray '\302' in program

Sensore_umidit_:39: error: stray '\240' in program

Sensore_umidit_:39: error: stray '\302' in program

Sensore_umidit_:39: error: stray '\240' in program

Sensore_umidit_:39: error: stray '\302' in program

Sensore_umidit_:39: error: stray '\240' in program

Sensore_umidit_:39: error: stray '\302' in program

Sensore_umidit_:39: error: stray '\240' in program

Sensore_umidit_:40: error: stray '\302' in program

 }

^

Sensore_umidit_:40: error: stray '\240' in program

exit status 1
stray '\302' in program

Exception in thread "cc.arduino.packages.discoverers.network.NetworkChecker" java.lang.Error: IP Helper Library GetIpAddrTable function failed
at java.net.NetworkInterface.getByInetAddress0(Native Method)
at java.net.NetworkInterface.getByInetAddress(NetworkInterface.java:325)
at javax.jmdns.impl.HostInfo.(HostInfo.java:128)
at javax.jmdns.impl.HostInfo.newHostInfo(HostInfo.java:104)
at javax.jmdns.impl.JmDNSImpl.(JmDNSImpl.java:407)
at javax.jmdns.JmDNS.create(JmDNS.java:81)
at cc.arduino.packages.discoverers.NetworkDiscovery.inetAddressAdded(NetworkDiscovery.java:211)
at cc.arduino.packages.discoverers.network.NetworkChecker.run(NetworkChecker.java:67)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

Penso sia colpa delle lettere accentate e di altri caratteri "strani" che hai sparso per il programma.

Prova a copiarlo tutto, incollalo nel blocco note, ricopialo e reincollalo in Arduino, dopo aver tolto le accentate.

Sukko ripubblico il codice, non c'è nessuna lettera accentata, l' ho anche riportato
nel blocco note ma rimane uguale, nessuna lettera accentata.

#include <Adafruit_Sensor.h>
#include <DHT.h>
#define DHTPIN 4     // Pin di Arduino dove è collegato il sensore
#define rele 5       //  Pin di Arduino dove è collegato il relè
float val_umid_max = 75.0 ;  // valore umidità a cui si attiva la ventola
float val_umid_min = 50.0 ;  // valore umidità a cui si spegne la ventola
#define DHTTYPE DHT11   // DHT 11 

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  pinMode(rele, OUTPUT);
  digitalWrite ( rele, HIGH ); // Spegne la ventola
  dht.begin();
}

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) ) {
    Serial.println("Errore nella lettura del sensore !");
    return;
  }
  Serial.print("Umidita': ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.println(" *C ");

  if (h >= val_umid_max )  {
    digitalWrite(rele, LOW) ;  // Accende la ventola
  }
  else if ( h <= val_umid_min )  {
    digitalWrite(rele, HIGH) ; // Spegne la ventola
  }
}
//  Pin di Arduino dove è collegato il relè
// valore umidità a cui si attiva la ventola

Ma quelli sono solo commenti...non vengono considerati...devo toglierli?

Prova a togliere le accentate!

Forse mi sbaglio, ma ... "isnan" non e' un'istruzione javascript ? ... che ci azzecca con Arduino ?

No, esiste anche in C.

Etemenanki:
Forse mi sbaglio, ma ... "isnan" non e' un'istruzione javascript ? ... che ci azzecca con Arduino ?

... non solum sed etiam ... QUI :wink:

Guglielmo

In C si, ma per Arduino ide ? ... non c'era un qualche problema tempo fa su quei comandi, o e' poi stato risolto ?

EDIT: trovato, era del 2015, quindi probabilmente ormai e' gia strarisolto ... ricordavo male io ... :smiley:

Etemenanki:
In C si, ma per Arduino ide ? ...

Non credo che all'IDE interessi più du tanto ... la compilazione la fa poi gcc :wink:

Guglielmo

Ok, ma isnan (comando a me sconosciuto fino a oggi) può essere sostituito
con un altro di uso più comune?
Guglielmo a cosa pensa sia da attribuire l' errore di compilazione che mi restituisce
la verifica dello sketch?