http://tomasella.altervista.org/it/elettronica/microcontrollori/acquario/

Gestione automatica di un acquario

stiamo lavorando per voi..

Sezione in costruzione...
...verrà completata appena possibile.
Scusate per il disagio.



Quello che presento in questa pagina è un complesso e completo progetto che sfrutta un PIC16F876 per gestire in maniera automatica un acquario. È nato dalla richiesta esplicita di di un ragazzo che aveva l'esigenza di controllare la temperatura interna dell'acquario con due distinti sensori, ognuno dei quali fa accendere un riscaldatore nel caso in cui la temperatura scenda al di sotto del livello stabilito. Il circuito integra un orologio digitale quarzato (Real Time Clock) e il firmware permette di gestire, oltre ai sensori e ai relè relativi ai riscaldatori, ulteriori quattro relè, i quali sono associati rispettivamente alla luce, all'ossigenatore, all'erogatore di CO2 e al distributore di mangime. Ognuno di questi relè è associato a tre timer giornalieri indipendenti e disattivabili singolarmente. È altresì possibile accendere e spegnere le luci con azionamento manuale, tramite un apposito menu.

Il circuito elettrico si compone di uno stadio di alimentazione che, per mezzo di un fusibile, un trasformatore 230/9Vac 8VA, un ponte di Graetz ed un condensatore elettrolitico, converte la tensione di rete in una tensione continua di circa 12V, con la quale vengono alimentati i relè. Successivamente, uno stadio lineare composto da un LM7805 e dai relativi condensatori di contorno, genera una tensione stabilizzata di 5V a partire da quegli stessi 12V.

schema elettrico completo del circuito di controllo dell'acquario

Lo stadio di alimentazione appena descritto, si occupa di alimentare il PIC16F876, che è il cuore del circuito, il display LCD 2x16 e l'RTC, nonchè i sensori di temperatura. Per evitare che si renda necessario impostare l'ora ogni qualvolta venga a mancare l'alimentazione, è stata utilizzata una batteria tampone da 3V tipo CR2032 (quelle delle schede madri dei PC, per intenderci).

Come detto in precedenza, il cuore del circuito è il PIC16F876 prodotto dalla Microchip, che impiega un quarzo a 4MHz. L'RTC è il DS1337 della Dallas (ora Maxim) con relativo quarzo a 32.768kHz, il quale comunica con il PIC tramite un bus I2C (standard di comunicazione proprietario della Philips). I sensori di temperatura sono dei DS1820, anch'essi della Dallas, che utilizza il bus 1-wire (proprietario della Maxim). Completano il circuito i sei relè (con relativi transistor) ed il display alfanumerico da 2 righe per 16 caratteri ciascuna.

foto del display durante il normale funzionamento del circuito

Durante il funzionamento normale, il display visualizza, nella prima riga, l'ora e la data corrente e, nella seconda riga, la temperatura di entrambi i sensori, nonché la media fra i due. La pressione prolungata del pulsante "menu" per circa tre secondi permette di accedere ad un menu, dal quale si possono impostare l'ora e la data corrente, regolare le soglie di intervento dei riscaldatori, definire le fasce orarie dei timer e accendere o spegnere manualmente le luci.

Per offrire un maggior livello di sicurezza per i pesci, è stato previsto un blocco dei riscaldatori nel caso in cui la temperatura non rientri nei livelli impostati entro un'ora dall'accensione dei riscaldatori. Tale controllo viene effettuato nei due riscaldatori in modo indipendente, al fine di prevenire eventuali errori dovuti a letture errate della temperatura o altri malfunzionamenti non previsti. Tale errore del sistema viene segnalato tramite il lampeggìo del valore di temperatura corrispondente al riscaldatore, ed è possibile effettuarne il reset tramite una voce apposita che compare nel menu solamente nel caso in cui si sia verificato un errore.

Naturalmente è possibile utilizzare solamente un sensore (e un riscaldatore, o due riscaldatori in parallelo pilotati da un unico relè), trascurando la lettura dell'altro sensore e della media fra le temperature.

Il firmware è stato sviluppato dal sottoscritto interamente in linguaggio assembly. Si compone di poco meno di duemila istruzioni, le quali integrano le routine di gestione del display, dell'RTC e dei sensori (tutte controllate via firmware), nonché quelle per il controllo della temperatura, dei riscaldatori, dei timer e per l'impostazione di orari e soglie.

Il circuito è stato pensato in modo che i sensori vengano collegati tramite un cavetto lungo 1.5-2 metri. Ciascun cavetto utilizzato è del tipo telefonico a 4 fili, sul quale è stato saldato il sensore e isolato dall'acqua tramite guaina termorestringente e colla epossidica bicomponente. Analogamente, il display e i due pulsanti sono stati posizionati ad una distanza di 1.5 metri dal circuito, tramite una prolunga VGA.

foto del circuito stampato del circuito di controllo dell'acquario

Questa è la foto (fatta con lo scanner) del circuito stampato da me realizzato. Purtroppo la foto non rende giustizia alla qualità del pcb ottenuto, soprattutto perchè i colori ne risultano falsati. Noterete comunque la buona qualità delle piste, anche le più sottili, come quelle dell'RTC in versione SMD o quelle che passano fra i pad del microcontrollore.

piano di montaggio del circuito di controllo dell'acquario

Questo è il piano di montaggio che è necessario seguire per collegare i sensori e gli utilizzatori.



torna all'inizio     Stampa



Progetto creato nel marzo del 2010.

Ultimo aggiornamento avvenuto il 16/04/2010.

Valid HTML 4.01 Transitional    Valid CSS