Greenhouse Project v 0.5 Final rev5 IDE 1.0

Ecco qua l'aggiornamento del progetto!
Per chi fosse interessato o per chi ne avesse bisogno in futuro.
Il punto a cui sono arrivata sembra abbastanza stabile e, per una serie di ragioni che spiegherò dopo, sembra essere un punto di arrivo con l'attuale configurazione.


Greenhouse Project v 0.4d

Monitoraggio temperatura ed umidità, interne ed esterne, con due sensori DHT22.
Monitoraggio intensità luminosa con sensore TSL235R - pin 5.
Monitoraggio temperatura riscaldatore e acqua di irrigazione con due sensori DS18S20.
Indicazione stato relé su Pin A0.

LCD 2 WIRES: DATAPIN D2 - CLKPIN D3
Aggiunto carattere speciale per il grado centigrado °

File di log nella cartella ROOT, timestamp mensile aaaamm.csv
Loop di 1 secondo, datalogging MILLS ogni 60secondi
Marcatore di avvenuto log su LCD - (2,0)
Codice per calcolare la media delle luminosità all'interno del periodo di log
Diplay ad Lcd della mediaHz quando viene calcolata.


Ho implementato l'hardware ed il software per LCD 2 wires con 74LS164. Una figata.
Funziona esattamente come prima, lo sketch ha le medesime dimensioni e tutto utilizzando solo due pin dell'arduino.

Il datalogging è completato.
Il file di log, con cadenza mensile, è creato nella root. Se assente viene creato ed inizializzato con l'header corretto per il timestamp dei sensori in csv.

I dati dei sensori vengono mostrati sull'LCD con un refresh di 1 secondo e per sfizio ho aggiunto anche il carattere del grado centigrado.
Il log invece viene fatto attraverso un ciclo interno ogni minuto circa.

Il sensore di luminosità TSL235R è impressionante. Ha una sensibilità pazzesca, rileva le minime fluttuazioni di luminosità.
Decisamente mi sento di consigliarlo, sebbene questa sensibilità sia un problema.
Loggando ogni minuto, se all'atto del Log c'è una schiarita, un fulmine od altro... viene segnato un valore che non è, necessariamente, rappresentativo dell'effettiva luminosità.
Per ovviare a questo problema ho scritto due righe di codice che fanno la media della luminosità nel periodo di log. Il datalogging avviene sulla media e non sulla frequenza istantanea.
La media è "intelligente" significa che, se inserite un delay maggiore nel ciclo principale, comunque la media sarà corretta al periodo di log.
Il sensori di temp ed umidità hanno invece una risposta più lenta, quindi un discorso simile è superfluo.

L'indicazione stato relè su A0 è attiva, ma non c'è ancora il codice per il relè.
La configurazione dell'LCD 2 wires libera molti pin che, tuttavia, non credo siano utilizzabili allo stato attuale.
Lo sketch occupa quasi la totalità della memoria SRAM, aggiungere ulteriori funzioni sembra rendere instabile l'arduino. Direi che siamo al limite :slight_smile:
Quindi salvo colpi di genio, direi che questo sketch è il massimo che si possa implementare su un 2009.

E' tuttavia un buon punto di arrivo, sensori, display e datalogging sono una configurazione accettabile per un progetto.
Al momento l'arduino sta funzionando da 24 ore senza interruzione, senza apparenti problemi. Quindi dovrebbe reggere :slight_smile:

Nella mia tabella di marcia c'è ancora il web server.
Considerato il punto di arresto, probabile causa ram overflow, a cui sono arrivata... dovrò prendere una piccola deviazione.

Il progetto quindi si svilupperà nell'ottica multiprocessore con due 328 standalone che comunicano tra loro.
Il master si occuperà di sensori ed lcd, lo slave riceverà i dati e tramite la ethernet shield li loggherà sulla sd e farà da web server.
In questo modo la distribuzione delle librerie sarà ottimizzata.
Il web server richiede la SDFAT che è la stessa necessaria per il datalogging. Mettendo le funzioni insieme, posso eliminare la libreria dal master che supporta sensori ed lcd.

Non ho ancora studiato bene il protocollo di comunicazione che probabilmente sarà I2C anche se stamattina ho trovato una libreria che se funziona... :stuck_out_tongue:
(poi leo mi cazzia)

A seguire fotina e codice completo.
Il codice è ultracommentato e un po' disordinato... abbiate pazienza :slight_smile:

Greenhouse_Project_v_0_4d_LCD2Wires.pde (13.2 KB)