Realizziamo una stazione meteo che protegge le tende dalle intemperie

Stazione meteo a protezione tende

Non molto tempo fa vi avevamo parlato di uno dei premi in palio nel nostro contest Review4U 2.0, Archimede, e ve lo avevamo presentato come uno starter kit nato e cresciuto con l'idea di diventare una piattaforma per la domotica. Oggi lo vediamo al lavoro in un'applicazione davvero interessante: una stazione meteo.

Se avevate avuto la curiosità di vederlo all'opera, questo è l'articolo che fa per voi e che stavate aspettando.
Oggi Archimede verrà impiegato per realizzare un prototipo di centralina meteo. Essa si occuperà di lavorare su diversi fronti: dall'acquisizione dei normali parametri quali temperatura, tasso di umidità, pressione ma anche velocità del vento e sua direzione, anche quantità di pioggia, controllo ed azionamento dei motori delle tende parasole.

Sembrerebbe un'applicazione banale ma tutto nasce da una considerazione abbastanza semplice: se piove non c'è il sole. E come tutte le idee geniali, Archimede si propone di diventare una piattaforma di automazione per un processo che naturalmente tutti noi concepiamo come indispensabile: chiudere le tende parasole quando non servono ed evitare che si bagnino.
C'è un'altra circostanza in cui è indispensabile che la chiusura delle tende avvenga: quando c'è troppo vento e rischiano di strapparsi. Vogliamo, quindi, andare a gestire i motori di controllo del movimento della tenda per ritirarla in tempo e salvaguardarla dalle intemperie.

Per fare questo possiamo semplicemente scrivere una routine di questo tipo:

// Se il vento è più forte di 25 km/h oppure piove
   if(anemometer.WindSpeed > 25 || pluviometer.RainQuantity > 0)
   {
        // ritraggo le tende parasole generando un impulso di un secondo sul relè
        awning.On(1000);
   }

Naturalmente il tempo indicato tra parentesi è pari ad un secondo e questo intervallo di tempo risulta certamente discrezionale del programmatore e va adattato a seconda del tipo di tenda di cui stiamo parlando. Non si possono poi non considerare le dimensioni e la potenza del motore.

Certamente qui si tratta di un esempio ipotetico che però può essere ampliato ed anche adattato alle singole esigenze del problema specifico.
Il concetto alla base di questo kit ma anche dell'articolo di oggi è dimostrare come sia possibile un approccio sistemico ai problemi più disparati tra loro grazie all'utilizzo di un kit molto versatile.
L'utente inizia ad interagire con il mondo reale sfruttando la programmazione ad oggetti in linguaggio C#.
Niente male, vero?

Il progetto, e qui stiamo parlando di software, è costituito, come vedremo tra poco, da un programma che contiene la logica del funzionamento, program.cs, qualche funzione di utilità (utility.cs) ed una classe che implementa un bus digitale I2C (softwareI2C.cs).

Infatti, nei files allegati, che completano la documentazione del progetto, abbiamo tre elementi molto importanti. Un file *.zip, denominato WeatherStation_VS2010Project.zip, e due file di immagine, rispettivamente pinout.jpg e rain gauge.jpg.

Se il primo, come si intuisce facilmente dal nome, contiene tutti i files necessari per l'esecuzione del progetto in ambiente Visual Studio, le immagini allegate servono a dimostrare il pinout della scheda, e quindi rendere più semplici i collegamenti da effetturare, specie per i novizi, e dimostrare come è realizzato il sensore che misurerà la quantità di pioggia caduta. Naturalmente quest'ultimo ha una limitazione fisica, la sua dimensione. Non potrà effettuare certo una scansione di un'area grande a piacere ma piazzato opportunamente e fatto lavorare insieme con l'anemometro certamente contribuirà ad una proficua raccolta di dati.

Un bel vantaggio, non trovate?

Ecco un'immagine che permette di vedere un sensore che indica la direzione del vento:

Ed eccone un'altra in cui vediamo l'anemometro:

Ecco, inoltre, un'immagine del sensore SHT15:

Ed ecco una immagine del barometro digitale di cui abbiamo detto in precedenza:

Il progetto, oltre ad utilizzare le librerie standard del framework, fa riferimento alla libreria Selettronica.NETMF.UPC.ddl. Essa contiene la definizione dei pin della scheda Archimede ed altri che permettono un utilizzo immediato. I sorgenti di questa libreria possono essere scaricati liberamente tra gli allegati a questo articolo.

Quello che troverete è un codice abbastanza ben documentato e commentato che costituirà, ne siamo sicuri, un'ottima base per ogni sviluppo futuro.

L'intero progetto è studiato per essere realizzato sul kit base di Archimede e pertanto utilizza soltanto le risorse disponibili sulla scheda senza che sia necessario l'acquisto di componenti aggiuntivi e quindi, a parte i sensori meteo che non sono forniti con il kit, non avrete bisogno di altro.

I sensori in questione sono:

  • barometro digitale MLP115A collegato su bus I2C;
  • sensore digitale SHT15 con funzione di igrometro e termometro collegato su bus I2C;
  • anemometro;
  • pluviometro;
  • sensore di direzione del vento.

L'anemometro è, di fatto, un interruttore reed che si apre e si chiude ad una frequenza che è proporzionale alla velocità del vento. Il sensore di direzione del vento utilizza una serie di interruttori reed per far sentire alla scheda una variazione di resistenza. Per comprendere al meglio tutto questo è consigliata la lettura del seguente articolo.

Parlavamo prima degli allegati. Ecco, tra i files che troverete c'è anche la documentazione completa dei sensori che sarà necessario impiegare perchè tutto funzioni al meglio. Così avrete già sotto mano tutto ciò che vi occorre per "portare a casa il risultato."

Se avete bisogno di indicazioni su come fare per reperire i sensori potete dare uno sguardo ai seguenti link per il barometro oppure per l'igrometro oppure ancora per la anemometro, il sensore di direzione del vento ed il pluviometro che sono compresi all'interno di comuni stazioni meteo tipo quella che potete trovare qui.

7 Comments

  1. Tiziano.Pigliacelli Tiziano.Pigliacelli 14 ottobre 2013
  2. Emanuele 14 ottobre 2013
  3. Tiziano.Pigliacelli Tiziano.Pigliacelli 14 ottobre 2013
  4. Giorgio B. Giorgio B. 16 ottobre 2013
  5. IvanScordato Ivan Scordato 16 ottobre 2013
  6. Tiziano.Pigliacelli Tiziano.Pigliacelli 16 ottobre 2013
  7. Tiziano.Pigliacelli Tiziano.Pigliacelli 16 ottobre 2013

Leave a Reply