martedì 12 gennaio 2016

Costruzione GrowBox per Peperoncini - Parte 4 - Raspberry Pi

La GrowBox sta funzionando, i primi semi non isolati usati come prova hanno germogliato (non tutti) ed alcune piantine stanno iniziando a crescere. La sabbia di fiume con cui ho riempito il fondo aiuta molto a mantenere la temperatura, e a distribuirla uniformemente.

La parte elettronica, che al momento è affidata a timer a cavalieri e termostato da terrario, verrà sostituita con Raspberry Pi.

Modulo Relay a 4 canali e breadbord con sensori di temperatura ed umidità DHT22 con resistenze di pullup.


Al momento per la parte elettronica il sistema si basa su 3 sensori di temperatura ed umidità DHT22 (come da foto) di cui uno potrebbe essere sostituito in futuro da un DS18B20, solo temperatura, ma impermeabile, per andare a misurare la temperatura del terreno in un vaso campione.

Il modulo relays a 4 canali controllerà l'accensione delle luci, del riscaldamento e della ventilazione, anche se sto pensando ad utilizzare il quarto canale per azionare un eventuale sistema di irrigazione a goccia.

Lato software, invece, sto sfruttando (almeno per questi test) il "Raspiviv", un sistema pensato per controllare un terrario, opportunamente modificato per le mie necessità.
Si basa su un server LAMP (linux-apache-mysql-php), permettendomi quindi di avere un log dei dati registrati ed oltre all'automazione (utilizza cron per i task temporizzati) ha anche il controllo remoto dei relays.

I lati negativi sono:
  • Apache: pesantino per il raspberry.
  • MySQL: continui cicli di lettura e scrittura potrebbero accorciare la vita della microSD.
  • Utilizzo di cron per i timer: scomodo per cambiare i tempi di campionamento e di accensione/spegnimento luce-irrigazione.
  • PHP per gestire i GPIO.
  • Soglie di temperatura/umidità hard-coded in alcune pagine PHP.
  • Pin GPIO hard-coded nelle pagine php: ok, questo forse è il punto meno "grave" ma comunque preferirei avere un file di configurazione per gestire eventuali cambi-aggiunte di dispositivi I/O, soprattutto finchè resto su breadboard e Pi Cobbler.

Il sistema, comunque, è ottimo, già pronto e per il primo avvio necessita di "poche" azioni.

Sto realizzando un demone che, tramite thread separati, gestisca la temporizzazione sia delle letture dei sensori (con annessa scrittura sul db, probabilmente SQLite) che controllo dei relays, con le impostazioni scritte in un file di configurazione esterno, facilmente editabile (magari anche da interfaccia web) che comprenda questi parametri che sono soggetti, almeno fino a stabilizzazione, a frequenti modifiche.

La parte web, a questo punto, verrebbe utilizzata solamente per la visualizzazione dei dati. 

A presto (spero) per nuovi aggiornamenti!