sabato 20 ottobre 2012

E' nata la carota bianca

Cos'è la carota bianca? E' un'applicazione dei trasmettitori Jeenode dei quali ho parlato nei post precedenti.  Si tratta di un sensore di umidità del terreno (Soil Moisture), usato soprattutto per i sistemi automatici di irrigazione. Immaginate infatti di avere un orto o un giardino, piuttosto grande; avete bisogno di irrigare in modo diverso varie parti, perché magari consumano acqua non con la stessa velocità oppure vi sono piante che necessitano differenti quantità di acqua. Non possiamo però tirare fili per tutto il giardino per collegare i vari sensori alla centralina. L'idea è quindi quella di usare dei sensori che trasmettono il contenuto in acqua del terreno, con una precisione anche scarsa ma sufficiente a determinare quando quella parte di orto ha bisogno di essere irrigata.
 La carota bianca si presenta come un tubo di PVC con attaccato un cilindretto di gesso, questa parte è quella che va piantata nel terreno, con l'accortezza che sia ben a contatto con la terra. La parte in PVC che rimane fuori contiene il Jeenode con le batterie. All'interno del cilindretto di gesso vi sono due chiodi zincati, ma possono essere anche di acciaio inox, che fungono da elettrodi. Infatti quello che si misura è la resistenza elettrica tra i due chiodi, variabile in funzione della quantità di acqua presente nel terreno, che imbibisce il cilindro di gesso.
Ai due chiodi viene applicata una tensione di 5 V solo per il periodo della misura, quindi pochi secondi ogni tanto. Al fine di evitare polarizzazioni dei due elettrodi e eliminare per quanto possibile l'influenza di eventuali effetti galvanici, la tensione di 5 V tra i due chiodi  viene invertita ad ogni misura, grazie al fatto che il partitore resistivo è collegato a due uscite digitali del Jeenode. La resistenza, calcolata nelle due polarizzazioni, viene poi mediata.  La seconda foto mostra quello che c'è dentro il tubo di PVC. Il tubo è chiuso dalle due parti mediante due tappi assieme alle guarnizioni di gomma presenti all'interno del tubo.
Vorrei sottolineare il fatto che il tubo, le guarnizioni e i tappi sono materiali comunemente usati per gli impianti idraulici, si trovano quindi a bassissimo prezzo in qualsiasi negozio che fornisce questo tipo di materiali. Il compito del Jeenode è quello di trasmettere periodicamente il valore della resistenza tra i due chiodi alla centralina che acquisisce il  dato, lo memorizza ed in base a questo decide se azionare l'irrigatore relativo a quella zona dell'orto.
Il sensore necessita una taratura usando lo stesso terreno in cui dovrà funzionare. Un metodo di taratura generalmente usato consiste nell'essicare e pesare un campione di terreno, che sarà poi posto intorno al sensore, anch'esso secco. Poi si aggiungono quantità note di acqua e si misura la resistenza con lo stesso Jeenode.
Siccome il Jeenode dispone di 4 ingressi/uscite, alla misura di umidità può essere affiancata una misura di temperatura del terreno o qualche altro parametro utile.
 Chi ha voglia di costruire e provare questi sistemi può chiedermi dettagli e suggerimi la propria esperienza.  Naturalmente voglio ringraziare le persone che mi hanno ispirato attraverso i loro siti internet:
http://hackaday.com/2010/03/15/soil-moisture-sensing/
http://www.cheapvegetablegardener.com/2009/11/how-to-make-cheap-soil-moisture-sensor-2.html

domenica 14 ottobre 2012

Data-logger via radio pronto!

Progetto finito!  Adesso una scheda Arduino con shield data-logger di Adafruit e display LCD 16 x 1 è in grado di ricevere i dati da un Jeenode che funziona da ricevitore e un Jeenode da trasmettitore.
Il Jeenode trasmettitore invia lo stato dei 4 ingressi analogici ogni volta che uno qualsiasi di questi cambia valore o comunque ogni tempo prestabilito. I dati inviati al Jeenode ricevitore via radio sono subito passati all'Arduino logger via interfaccia seriale che provvede a mostrarli sul display e scriverli sulla SD card.

Il prossimo passo sarà quello di collegare al Jeenode trasmettitore, un sensore di umidità del terreno e uno di temperatura. Inserire il tutto in un contenitore stagno a basso costo e infilarlo nel terreno.  Con questa soluzione è possibile gestire l'irrigazione di un orto abbastanza grande, se si pensa che i Jeenode tirano fino a 250 metri e se ne possono usare un certo numero sparsi per l'orto.  Un centralina poi può gestire l'apertura di valvole per l'irrigazione di settori diversi.

venerdì 12 ottobre 2012

Trasferimento dati da Jeenode a Arduino

Oggi sono finalmente riuscito a far parlare Jeenode (vedi post precedente) con Arduino. Per chi non conosce questi interessanti tranceiver, che permettono di trasmettere dati via banda 868 MHz a circa 250 m, rammento che il software di gestione della trasmissione via radio utilizza l'interfaccia seriale hardware del ATMEGA, la stessa di Arduino. Quindi se si vuole mandare i dati ad una scheda Arduino, dopo averli ricevuti via radio da un Jeenode, bisogna usare un'altra interfaccia seriale, usando la libreria SerialSoftware, fornita con l'ambiente Arduino.  Una cosa interessante che ho scoperto è che se si usano due interfacce seriali nello stesso sketch, anche se fanno capo a pin diversi, bisogna usare la stessa baud rate. Con un po' di fatica quindi sono riuscito a realizzare la comunicazione tra Jeenode e Arduino.  In breve avviene così:

Jeenode 1 trasmette via radio a Jeenode 2 lo stato dei suoi 4 input analogici ( da 0 a 1023), usando lo sketch che minimizza il consumo di energia, fornito dalla stessa Jeelab.

Jeenode 2 appena riceve un pacchetto contenente i 4 dati + un'intestazione con lo ID del Jeenode 1, lo trasmette via seriale a Arduino.  Jeenode 2 usa lo sketch RF12demo fornito da Jeelab, dove ho aggiunto alcune istruzioni affinchè si possa usare l'interfaccia seriale software, attestata sui piedini 4 e 5 di Arduino, corrispondenti alle porte 1 e 2 di Jeenode.

Su Arduino ho messo un piccolo sketch che riceve i dati da Jeenode 2 via seriale, usando anche qui una seriale software attestata su 4 e 5. L'uso di una seriale software anche qui mi consente di utilizzare la seriale hardware per interagire con la IDE.

Prossima mossa sarà quella di usare uno shield data-logger di adafruit per memorizzare i dati ricevuti da Jeenode.


venerdì 5 ottobre 2012

Arduino e suono

Attivare musica, frasi e suoni con Arduino e poco altro.

Immaginate di aprire il frigorifero perché in preda ad una voglia sfrenata di uno spuntino fuori orario, appena aprite la porta una voce grida "CHIUDI QUELLA PORTA BRUTTO CICCIONE". Oppure un antifurto che anziché far partire la sirena, genera un forte latrato di cane o più latrati di cani diversi con una sequenza casuale.  Ancora, brani musicali scelti in base al cardiofrequenzimetro che indossiamo quando andiamo a correre.

Tutto questo è fattibile usando un accessorio di Arduino (shield) ideato da www.adafruit.com, il WaveShield, che permette di caricare, su una SD card da 1 Gb, brani in formato .WAV e poi eseguirli tramite comandi impartiti dal programma caricato su Arduino.  Le possibilità sono infinite. Lo shield ha un'uscita audio che può essere collegata ad un piccolo altoparlante oppure all'ingresso di un normale amplificatore.

Le 2 board, assieme alla batteria e all'altoparlante possono essere alloggiate in una economica scatola per collegamenti elettrici, vedi foto. Dalla scatola escono i collegamenti per gli input analogici di Arduino, in modo che sia possibile collegare sensori esterni di vario tipo. Ad esempio per l'applicazione del frigorifero ho usato un fotoresistore che modifica la sua resistenza a seconda della luce esterna. Se il tutto viene sistemato sul coperchio della scatola, è più facile poi caricare nuovi programmi su Arduino con il cavo USB.
 



mercoledì 3 ottobre 2012

Bastone Radar per non vedenti

Questo bastone "vede" gli ostacoli distanti fino a 6 metri.

Un'altra applicazione di Arduino, assieme ad un sensore di distanza ad ultrasuoni e ad un micro-vibratore simile a quelli usati nei cellulari.
Il sensore ad ultrasuoni rileva un ostacolo compreso tra 6 e 1 metro. La distanza è "tradotta" da Arduino in una vibrazione con frequenza diversa che viene trasmessa al manico del bastone.

Un guanto che "sente" la flessione delle dita e la trasmette a distanza.

Un'applicazione wireless per trasmettere a distanza la posizione delle dita di una mano

Questo dispositivo permette di trasmettere a distanza la posizione delle dita di una mano. Ogni dito del guanto ha un sensore di flessione autocostruito. Questi sensori molto facili da realizzare sono fatti di Velostat, un foglio sottile di materiale plastico conduttore, che ha la caratteristica di variare la propria resistenza se compresso o piegato. I sensori sono realizzati con tre striscioline di Velostat sovrapposte e due sottili fili di rame sulle facce esterne. La flessione del dito provoca una variazione di resistenza molto ampia. Come costruire questi sensori e molto altro, potete trovarlo su www.kobakant.at.



L'acquisizione e la trasmissione dello stato dei sensori, l'ho realizzata con una coppia di Jeenode www.jeelabs.org. Questi utilissimi oggetti sono costituiti da un ATmega328p che in pratica è lo stesso integrato usato da Arduino accoppiato ad un tranceiver RFM12B che trasmette sulla banda degli 868 MHz. 

Si programma con la stessa interfaccia IDE di Arduino ed è dotato di librerie che permettono la facile trasmissione di dati da un nodo all'altro. I due nodi da me usati, uno per la trasmissione dei sensori di flessione, l'altro per la ricezione, "tirano" fino a circa 250 m in linea d'aria, mentre in casa riescono tranquillamente a superare anche due pareti. L'assorbimento di corrente da parte dei Jeenode è molto limitato, usando opportuni accorgimenti nel software.  Questi Jeenode rappresentano un'interessante soluzione a tutti i problemi di domotica, smart metering e inoltre sono a basso costo.


Nella foto qui sopra si puo' vedere l'accensione di un led sul nodo ricevitore, dovuto alla flessione del dito medio.


Nella foto a sinistra si vedono i due moduli Jeenode usati per questo progetto.
Si può notare l'antenna (filo rosso) e i cavetti di alimentazione. Il nodo ricevente è quello a sinistra con i 4 led che si accendono in corrispondenza dei piegamenti delle 4 dita. Il noto trasmittente, a destra, è stato scollegato dal guanto. Il chip che si vede è l'ATmega, mentre quello in alto con il pallino giallo è il tranceiver. I due nodi si programmano con un cavo USB-TTL da connettere ai 6 pin in basso.
E' una grande emozione vedere che dei numeri generati da un nodo vengono trasmessi all'altro anche a distanza di 200 metri. E' forse la stessa cosa che ha provato Marconi??