domenica 12 gennaio 2014

Psicrometro/2

Psicrometro/2

 - Meteo Arduino partiamo da zero - n° 4m -

 

- 12/01/2014 -

Segue dal post precedente la sperimentazione per costruire la nostra stazione meteo.

Qui troverete lo Sketch per arduino che permette la misura di Umidità Relativa dell'aria.


Follows from the previous post experimentation to build our weather station.
Here you will find the sketch for Arduino that allows the measurement of Relative humidity of the air.

 

 

 

Ecco la tabella!

Questa è una tabella per Psicrometro.

Questa tabella si trova su wikipedia e mi è servita da guida per proseguire il lavoro, in alto si trovano le temperature "Bulbo bagnato" = Tbu = Tw, a sinistra in rosso le temperature "Bulbo secco" = Tbs = Ts.
Qui sopra vi è solo una parte della tabella ma da wiki la potete scaricare per intero.

Ma visto che utilizziamo Arduino ed abbiamo Ts, Tw, in due variabili perchè non calcolarsi l'umidità relativa UR?

Non è così semplice io ho trovato questa soluzione:

Da " formula di Sprung per Psicrometro    e = Ew - A*p*(Ts-Tw)."  con p = Pressione atmosferica, Ts = Temp. bulbo secco, Tw = Temp. bulbo umido.
 A = coefficente di Ferrel = ( 0.00066 * (1 + 0.00155* Tw)

Ecco qui sotto alcuni valori calcolati con la formula di sopra Tw, Ts, UR.

 Temp umido (Tw): 12.0
Temp secco (Ts): 18.0
Umidita relativa: 48.15985

Temp umido (Tw): 15.0
Temp secco (Ts): 21.0
Umidita relativa: 52.068474

Temp umido (Tw): 18.0
Temp secco (Ts): 24.0
Umidita relativa: 55.35537

Temp umido (Tw): 21.0
Temp secco (Ts): 27.0
Umidita relativa: 58.14215

Temp umido (Tw): 24.0
Temp secco (Ts): 30.0
Umidita relativa: 60.52441

Temp umido (Tw): 27.0
Temp secco (Ts): 33.0
Umidita relativa: 62.57767

 
Ho calcolato questi valori e li ho confrontati con una tabella per Psicrometro, i risultati sono comparabili.

es: Tw 21 -- Ts 27 umidità calcolata = 58.14  da tabella = 58, ho provato con molti altri valori ed ottenuto valori concordanti.


 Vediamo adesso lo sketch.


/* Sergio & Adriano Prenleloup

***Psicrometro con LM35*****
***** Versione 1.03 ********
***** 12/01/2014    ********

Prova di costruzione di Psicrometro a bulbo bagnato
con due LM35
Le formule e le costanti utilizzate per i calcoli 
le troverete nel mio blog avventurarduino.blogspot.it

//  per approfondire guardate questo link
http://it.wikipedia.org/wiki/Umidit%C3%A0_relativa

Le formule per Psicrometro lette su 
"Marco Dell'Isola, Fausto Arpino- La Misura dell'umidità"


*/
// ************** Costanti e variabili globali ***********
float fatt = (3.3/1024)*100; //converte da Volt a Temperatura
int PinTs = 0; // PinAnolog0 lettura bulbo secco
int PinTw = 1; // PinAnalog1 lettura bulbo umido

// vedi wikipedia al link indicato sopra
float base = 10.0; // base log.
float a = 7.5;     // wikipedia
float b = 237.7;   // wikipedia
float c = 6.11;    //wikipedia
float Pr = 1013.25; //pressione atmosferica
// *********************************************************
//pressione di vapore acqueo saturo alla temperatura ( Ts o Tw)
// vedi wikipedia alink indicato
float calcoloPressione(float temp)
{
 return c * pow(base, (a * temp) / (b + temp));  
}
//costante strumentale Psicrometro da formula Sprung
// coefficente di Ferrel ( 0.00066*(1+0.00155*Tw)
float correzione(float Tw, float Ts)
 {
  return 0.00066 * (1 + 0.00155* Tw) * Pr * (Ts - Tw);
  }

//Calcola il valore pressione di vapore acqueo saturo alla temperatura ( Ts o Tw) 
float calcolaUmidita(float Ts, float Tw)
{
  float Es = calcoloPressione(Ts); // pressione vapor saturo con Ts
  float Ew = calcoloPressione(Tw); // pressione vapor saturo con Tw
 
  float correzioneSprung = correzione(Tw, Ts); 

  float e = Ew - correzioneSprung; // Formula di Sprung
  float UmiditaRelativa = e / Es * 100;// calcola umidita Relativa
  
  return UmiditaRelativa;// ritorna l'umidità relativa
                         // alle due temperature rilevate
                         // dal sensore LM35 secco
                         // e dal sensore LM35 umido
}

void setup()
{
analogReference(EXTERNAL); // in questa versione si porta sul pin AREF 
                           // i 3,3V prelavati da Arduino
Serial.begin(9600);   //attiva la porta seriale

}

void loop()
{
  //lettura  sensori
    
   int tempTs = analogRead(PinTs);// legge bulbo secco
    float Ts = (tempTs* fatt); // calcola Ts temperatura bulbo secco
    
   int tempTw = analogRead(PinTw);// legge bulbo umido
   float Tw = (tempTw *fatt);   // calcola Tw temperatura bulbo umido
 
  double UR = calcolaUmidita(Ts, Tw); // calcola UR umidita relativa
  
  // visualizza sul monitor i valori rilevati e calcolati 
  
  Serial.print("TempSecco = ");
  Serial.print(Ts);
  Serial.println();
  Serial.print("TempUmido = ");
  Serial.print(Tw);
  Serial.println();

  Serial.print("Umidità relativa = ");
  Serial.print(UR);
  Serial.println();
  
  Serial.print("*************");
  Serial.println();
  
  delay(2000);// attesa per altra lettura
} 


Risultati
Con questo Psicrometro si ottengono valori attendibili, rimane il problema meccanico di ventilare il bulbo bagnato ma una piccola ventolina da Pc è perfettamente utilizzabile.
Rimane ancora il problema di rendere umido il bulbo con garza o cotone.
I dati rilevati e confrontati con il sensore DHT22 sono molto vicini.

Scarica qui lo sketch

Questo è il video dello Psicrometro in funzione.

Come potrete vedere dal video accanto allo Psicrometro c'è un Igrometro  con DTH22 e altro Arduino sul display di questo si legge un'umidità del 68% , e l'umidità calcolata dallo Psicrometro è di 66% non credo ci sipotesse aspettare di meglio.




Questa è la schermata del monitor seriale dello Psicrometro.

 

E' pronto il prossimo post sull'Igrometro con DHT22.


Dove vedremo la maggior praticità nell'uso di questo sensore, probabilmente nella nostra stazione meteo utilizzeremo il DHT22.

Grazie per la visione, se avete dubbi o domande scrivete, se rilevate piccole o grandi inesattezze scrivete.


al prossimo post.... meteo ......to the next post ....


3 commenti:

  1. Ciao se possibile puoi scrivermi su Mirco 65 @ Gmail. Com?
    Ero interessato nel costruire un sensore con punti di rugiada per verificare umidità temperatura cantina sensore con punto di rugiada e sensore esterno di umidità e temperatura
    In questo modo vorrei comandare che quando possibile il sistema ventili la cantina se umidità e temperature esterne sono accettabili altrimenti quando necessario far partire il deumidificatore per evitare le muffe...
    È possibile secondo te?

    RispondiElimina
  2. Un grande Grazie a Sergio e Adriano, per il vostro progetto, la vostra generosità e per la vostra spiegazione. Stavo cercando qualcosa di simile al vostro lavoro ... ed è comparso il vostro progetto. Spero di poterlo adattare alle mie esigenze. Grazie ancora

    RispondiElimina
    Risposte
    1. Grazie a te e scusa del ritardo nella mia risposta ma ho avuto problemi e solo in questi giorni ho ripreso a controllare il blog.
      Saluti

      Elimina

Vi ringrazio per la lettura e vi invito al prossimo post.
Se il post vi è stato utile, vi è piaciuto oppure no, scrivete un commento.

Un saluto a tutti.
Sergio

Copyright - Condizioni d’uso - Disclaimer
http://avventurarduino.blogspot.it/2012/10/inizia-lavventura-arduino-12-settembre.html