giovedì 22 settembre 2011

Sviluppo Software Python per Garduino

Screenshot del software per Garduino
Oggi mi sono dedicato allo sviluppo Software per Garduino. I grafici che si posso vedere nella sezione Stats sono ottenuti da un piccolo programma scritto in Python che legge i dati sulla porta seriale e li raffigura sul grafico grazie ad una particolare libreria (MatlibPlot).
Oltre a riportare in basso anche l'ultimo valore registrato (Umidità del terreno, Luce e Temperatura), lo stato delle luci artificiali e il tempo di accensione di Garduino ho aggiunto 3 pulsanti che permettono:

  • L'accensione o lo spegnimento delle luci artificiali indipendentemente dal calcolo operato da Garduino, disattivando quindi il conto automatico delle ore di luce supplementari
  • L'attivazione del regime di luce automatica. Con questo pulsante la luce sarà accesa o spenta in maniera automatica a seconda dei calcoli effettuati da Garduino.
  • L'attivazione del sistema di irrigazione, che può quindi essere controllato direttamente via software.
Grazie a questo lavoro software esterno rispetto ad arduino è possibile riportare i dati in maniere leggibili senza pesare sul sistema.
Inoltre poichè Garduino ha bisogno di essere avviato la prima volta all'alba in modo che inizi a contare le ore di luce al sorgere del sole è possibile impostare un TaskScheduling che avvia il programma ad una determinata ora (l'ora dell'alba). Questa funzionalità verrà inserita direttamente nel programma Python:
riavviare con un pulsante Garduino oppure impostare una data ed un'ora per un riavvio programmato.
Va aggiunto al software Python la funzionalità di poter salvare i dati acquisiti, magari in maniera automatica per poter elaborare statistiche complete sul ciclo di vita di una pianta e bypassare eventuali riavvii di Arduino senza perdere dati. questo procedimento può essere utile anche per loggare tutti questi dati su un'eventuale SD Card con l'aggiunta di un semplice modulo ad Arduino.

Non appena il software arriverà ad una versione abbastanza performante provvederò alla pubblicazione dei Source e all'inserimento del download dell'eseguibile.

Leggere le statistiche


Come si legge il grafico delle statistiche???

  1. Il verde scuro indica il livello di luce ricevuto dalla fotocellula
  2. Il rosso indica la temperatura esterna della serra
  3. Il blu indica il livello di umidità del terreno
  4. Ciano indica la temperatura interna della serra
  5. Il viola indica la luce artificiale
1. La luce
I valori standard sono
> 800 in esposizione alla luce solare  con picchi maggiori di 1000
< 600 circa 400-500 con la luce artificiale accesa.
< 200 luci ambientali

La configurazione del sistema è fatta in modo che la luce artificiale non venga percepita in maniera diretta dalla lampada in modo tale che si possa distinguere a livello software la luce artificiale da quella naturale. Il sistema si preoccuperà infatti di contare le ore di luce naturale per completarle con quelle artificiali fino alla quota richiesta.

2. Temperatura
I valori sono:
100  -->  -19,15 °C
200 -->   -4,49 °C
300 -->   6,03 °C
400 -->  15,15 °C
500 -->  23,93 °C
600 -->  33,10 °C
700 -->  43,52 °C

Nel caso in cui la temperatura esterna scenda al di sotto dei 10 gradi il sistema accenderà un led di sicurezza per la segnalazione. Se è notte le piante vengono coperte da una tenda.

3. Umidità nel terreno.
Il sistema è tarato per mantenere l'umidità al di sopra di 840 - 845. Nel momento in cui il livello scende sotto questo valore attiva la pompa che riporta il livelli a 850 - 855. E' possibile attivare la possibilità di irrigare le piante soltanto di notte o di giorno.


4. La luce artificiale 
E' un valore di default e non una vera e propria misurazione, poichè la fotocellula non è diretta verso la luce artificiale. è stabile sui 700.

5. Il tempo
Nel grafico viene visualizzata l'ultima mezz'ora. Ogni 100 unità corrispondo a a16 minuti e 40 secondi.








martedì 20 settembre 2011

Apre techgardening

Salve a tutti!! Sto aprendo questo blog per descrivere le mie esperienze con il giardinaggio tecnologico. Grazie ad Arduino, un piccolo microcontrollore di fabbricazione italiana praticamente interfacciabile al mondo sto sperimentando la coltivazione indoor di ortaggi anche in inverno con l'aiuto della tecnologia. La configurazione che sto utilizzando infatti permette di monitorare i livelli di luminosità, umidità del terreno e temperatura dell'ambiente in cui vive la pianta e compiere azioni conseguenti in modo da rendere ideali le condizioni di vita della pianta. Al momento (sono ancora in fase di testing) sto coltivando in vaso la Bietola (Swiss Chard) e devo dire che già dopo pochi giorni ho avuto le mie prime soddisfazioni osservando il dimezzamento dei tempi di germinazione ed una rapida crescita nei primi giorni. Il sistema da cui ho preso spunto si chiama Garduino ed in pratica, oltre a monitorare tutti i dati sopra indicati, opera così:
Dopo aver impostato una giornata ideale di 14 ore di luce il sistema si preoccupa di contare le ore di luce naturale e nel momento in cui il sole tramonta applica una luce artificiale supplementare per raggiungere le 14 ore desiderate. Stesso principio viene utilizzato per l'irrigazione: nel momento in cui il livello di umidità del terreno scende oltre una certa soglia il sistema attiva una pompa ad immersione che irriga la pianta fino a riportare l'umidità del terreno al livello desiderato. Nei prossimi giorni provvederò a postare fotografie, schemi elettrici e i codici che mi stanno permettendo tutto ciò, oltre ad un mare di idee che utilizzerò per una futura applicazione all'aperto.