Ardu-Aquarium Controller v. 3.3.1

riciweb:

PaoloP:
Bello l'avatar. :grin:

E' già, un paio di mesi fa, mi è venuto in mente questo disegno, ma siccome ha molto a che fare con il logo ufficiale di arduino, non sapevo se utilizzarlo o meno, così ho chiesto allo staff, tramite Leo72, il permesso di utilizzarlo... dopo un mesetto circa, siccome nessuno ha dato cenno, ho scritto anche a Banzi direttamente e siccome anche da lui nessun cenno ho applicato il silenzio assenso... :grin:

il logo per la community è una specie di cuore, venne presentato tempo fa e poi non se ne seppe più nulla. Su twitter ho chiesto al gruppo e mi risposero (ormai mesi fà) che a giorni sarebbe uscito quello nuovo..

intendo questo:

Uhm ... scusa, perche' usare neon ? ... specie se c'e' il problema della degradazione dell'emissione col tempo ?

Ormai fanno led dedicati ad acquari e vivai, che incorporano sia i chip bianchi sia i blu per la parte di crescita delle piante ... e se pilotati nel corretto range, dovrebbero avere tipo 50.000 ore di durata e nessuna degradazione ... ad esempio,

http://www.ebay.com/itm/Square-Actinic-Hybrid-10W-Cool-White-7000K-Blue-460nm-High-Power-LED-Light-Bulb-/221218141784?pt=LH_DefaultDomain_0&hash=item3381a0f658

http://www.ebay.com/itm/Square-Actinic-Hybrid-10W-Cool-White-7000K-Blue-460nm-High-Power-LED-Light-Bulb-/221218146558?pt=LH_DefaultDomain_0&hash=item3381a108fe

http://www.ebay.com/itm/10W-Square-Cool-White-10000K-Royal-Blue-450nm-455nm-High-Power-LED-Light-Bulb-/221224123946?pt=LH_DefaultDomain_0&hash=item3381fc3e2a

e simili ... inoltre con un piccolo sacrificio nella luminosita', tipo pilotarli ad 8.5 / 9W invece che a dieci, la durata prevista quasi raddoppia ... si puo usare ad esempio un driver da 100W riducendo la corrente di uscita perche' ne dia circa 80, e ci sono pure driver che gia includono una regolazione di corrente ed anche un'ingresso PWM per farti il fading, come ad esempio questo http://www.ebay.com/itm/100W-Watts-High-Power-LED-Driver-Boost-Step-up-Topology-Garden-Street-Light-/380464623990?pt=LH_DefaultDomain_0&hash=item5895757176

riciweb:
Ciao,
niente paura, anche io 2 anni fa ero nelle tue stesse condizioni, inizia ad arduinare, googla, studia e quando proprio non arrivi, sul forum c'è sempre qualcuno disposto a dare una mano.
Leggo che vuoi pilotare 4 linee, mentre nel mio progetto ne gestisco 3, ma anche quì tranquillo, con il restiling del vecchio sketch che sto facendo aggiungendo oltre tutto nuove funzioni, aggiungere una linea sarà un gioco da ragazzi :wink:
Dai rimboccati le maniche e comincia.

Ciao a tutti Riccardo. :slight_smile:

Grazie della disponibilità e dell'incoraggiamento Riccardo, ho appena ordinato il necessario per iniziare ed appena arriva si comincia a fare danni :stuck_out_tongue: se posso approfittare del aiuto di voi del forum sarà un favore enorme, poter studiare e modificare uno sketch gia esistente permette di apprendere il corretto modo di procedere avendo subito riscontro e piccole soddisfazioni

a presto speriamo
guido

Buona sera a tutti ...
mi sono assentato per un pò per via del lavoro, che mi a portato via un casino di tempo e per il resto ho provato a fare prove sopra a prove
per far funzionare quel benedetto LCD che avevo ( e ripeto CHE AVEVO )...
Perchè allla fine ci ho rinunciato e lo ho rimandato dal venditore nel frattempo ne ho acquistato un altro da un altro venditore ma questa volta con 16 pin invece che 18, non penso che era il problema dei pin ma penso che mi era già arrivato difettoso l'intero LCD.
Cmq ora riesco a leggere tutto perfettamente ho provato a premere i bottoni per vedere se era tutto apposto ma qui è uscito fuori un altro problemino il pulsante ESC funziona perfettamente ma gli altri no e dopo tantissime volte che li premo ripetitivamente funzionano come gli pare a loro,
da cosa potrebbe dipendere?
nel frattempo ho provveduto a fare la centrallina dei relè
e volevo sapere da dove prende la corrente 220v ?
mi mancano di collegare le sonde di temperature ma ancora non riesco a capire come collegarlle?

grazie
simon

gutty:
Grazie della disponibilità e dell'incoraggiamento Riccardo, ho appena ordinato il necessario per iniziare ed appena arriva si comincia a fare danni :stuck_out_tongue: se posso approfittare del aiuto di voi del forum sarà un favore enorme, poter studiare e modificare uno sketch gia esistente permette di apprendere il corretto modo di procedere avendo subito riscontro e piccole soddisfazioni
a presto speriamo
guido

Nei limiti dello scarso tempo che ho a disposizione ti rinnovo la mia disponibilità nell'aiutarti :slight_smile:

simon77blitz:
Buona sera a tutti ...
mi sono assentato per un pò per via del lavoro, che mi a portato via un casino di tempo e per il resto ho provato a fare prove sopra a prove
per far funzionare quel benedetto LCD che avevo ( e ripeto CHE AVEVO )...
Perchè allla fine ci ho rinunciato e lo ho rimandato dal venditore nel frattempo ne ho acquistato un altro da un altro venditore ma questa volta con 16 pin invece che 18, non penso che era il problema dei pin ma penso che mi era già arrivato difettoso l'intero LCD.
Cmq ora riesco a leggere tutto perfettamente ho provato a premere i bottoni per vedere se era tutto apposto ma qui è uscito fuori un altro problemino il pulsante ESC funziona perfettamente ma gli altri no e dopo tantissime volte che li premo ripetitivamente funzionano come gli pare a loro,
da cosa potrebbe dipendere?
nel frattempo ho provveduto a fare la centrallina dei relè
e volevo sapere da dove prende la corrente 220v ?
mi mancano di collegare le sonde di temperature ma ancora non riesco a capire come collegarlle?
grazie
simon

Non è che hai dei falsi contatti sulla bread, ultimamente gira roba veramente scadente...
Se riesci posta una foto ben dettagliata del pcf dei tasti e dei sui collegamenti, così gli do un'occhiata...

Per la scheda relé, in soldoni considera i rele come degli interruttori, nel nostro caso bipolari, quindi in entrata colleghi la 230VAC a due dei quattro morsetti davanti ad ogni relè puoi usare queste combinazioni:
IN 1 e 3 OUT 2 e 4 e viceversa
IN 1 e 4 OUT 2 e 3 e viceversa
(nel caso di correnti polarizzate ovviamente farai attenzione ai segni)

quando il relé viene eccitato, l'interruttore/lamelle chiude il contatto e la corrente fluisce ai due morsetti rimanenti.
Spiegazione molto terra terra, ma spero efficace...

Ciao a tutti Riccardo.

eccomi qua penso di aver finito almeno la scheda relè,
ho cercato di farlla il più piccola possibile,ho aggiunto un connettore a due vie per la 220 (230VAC) e qualche piccola modifica ,
mancherebbe solo di finire di saldare alcune cosette ma penso che in generale dovrebbe essere tutto ok.
Per quanto riguarda i pulsanti ancora non sono riuscito a capire il perchè funzioni bene solo il pulsante ESC e gli altri funzionano a tratti a furia di premerli svariate volte e quando funzionano fanno come gli pare.
un altra cosa ancora non sono riuscito a capire il sensore di temperatura come collegarllo ma vediamo un pò, farò prove sopra a prove e ancora
per il PH come funziona?
scusate tutte queste domande
e veramente sei grande Riccardo
e lo siete tutti
provo a mettere qualche foto ma per i bottoni non so se riuscirete a capirci qualcosa ma ci spero

grazie a tutti
simone

scusatemi non riesco a caricare le foto mi da error

simon77blitz:
un altra cosa ancora non sono riuscito a capire il sensore di temperatura come collegarllo ma vediamo un pò, farò prove sopra a prove e

Io nn sono assolutamente un esperto, però il sensore di temperatura io lo faccio funzionare così (l'ho estratto da una pagina internet per avere un manualino a portata di mano)

Appunti DS1820.pdf (121 KB)

Ciao a tutti,
oggi pubblico i risultati, a mio avviso, di un bel lavoro di revisione di tutto lo sketch, che ha rivoluzionato i menù, l’uso delle variabili al suo interno ed a cui sono state aggiunte un paio di funzionalità in più per la gestione delle luci.
Cominciando dalla revisione dello sketch, per chi vorrà perdere qualche minuto a guardarselo, grazie agli insegnamenti e le idee di “Leouz”, abbiamo completamente abbandonato l’uso dei puntatori passati alle procedure grazie all’adozione di una struct contenente tutte le variabili utili alla gestione delle linee luci, questo ha permesso di richiamare tutte le procedure di gestione ed acquisizione dati della plaffoniera, semplicemente passando l’indice del vettore della struct corrispondente, siamo passati poi all’uso dei menù a scorrimento ed infine è stata eliminata la libreria dell’RTC la “DS1307”, ed è statoa migliorata la funzione statoluci che permette in caso di mancanza di corrente o di modifica dei dati della plafoniera di far ripartire le luci sempre dal punto giusto, tutto ciò è stato fatto per risparmiare più flash possibile ed avere spazio per le future funzioni, c’è ancora molto da fare, ma un po’ alla volta ci si arriva.
E' stato inserito anche un range di +/- 1,5°, di temperatura al di fuori del quale, scatta un allarme sonoro disattivabile premendo il tasto ESC, ed in più nella schermata principale la temperatura lampeggia.
Abbiamo poi aggiunto la possibilità di impostare il modo di funzionamento delle linee:

In pratica ora è possibile accendere o spengere le luci in modo manuale, oppure lasciarle funzionare in modalità automatica con i fotoperiodi impostati, in caso di accensione o spegnimento manuale, entrambe le azioni avvengono in modo graduale (circa 30” in caso di luminosità impostata al massimo) per non disorientare/spanventare gli amati pesciolini.
Inoltre ora è possibile, qualunque sia la modalità di funzionamento delle linee, impostare la luminosità massima delle singole linee agendo sul numero di rampe del fading.

In InfoLuci ora oltre allo stato di funzionamento delle linee se sono on o off e la percentuale di fading al momento, viene anche visualizzata la modalità di funzionamento impostata: “A” per automatica “M” per manuale, la percentuale che viene visualizzata, esprime la luminosità della linea in relazione a quella massima impostata per la stessa.

Mi viene da dire che la parte gestione luci ora è completa di tutte le funzionalità necessarie ad un acquariofilo, semmai ulteriori migliorie del software, ma se qualcuno avesse suggerimenti ben vengano.
Sembrerebbe per il momento che non ci siano errori e lo sketch viene compilato senza errori anche con IDE 1.0.5 anzi con quest’ultimo lo sketch compilato è pure leggermente più piccolo di poco ma lo è.

Abbiamo anche migliorato in precisione l’esecuzione dei fading, niente di che, ma almeno sapete tutto ciò che è stato fatto.

Come sempre, in allegato a questo post l'ultima versione dello sketch e nel 4° post iniziale le spegazioni più dettagliate, ed anche lì lo sketch aggiornato.
A breve riprenderò in mano anche il discorso dei sensori di livello per l'implemetazione della funzione di osmoregolazione e per schedulare i cambi automatici dell'acqua, cose messe momentaneamente da parte perché era in corso la revisione che ho presentato oggi. (troppa carne sul fuoco :sweat_smile:)

acquarium_controller_v_3.ino (43.8 KB)

Spettacolare. :grin:

se al pusto delle freccie su/giiu. metti un potenziometetro infinito, vedrai che scorrere i menù e i valori sarà molto più comodo e immediato. potresti metterlo come integrazione alla pulsantiera :slight_smile:

PaoloP:
Spettacolare. :grin:

Grazie PaoloP...
Quando te la fai l'acquario??? ]:smiley:

lesto:
se al pusto delle freccie su/giiu. metti un potenziometetro infinito, vedrai che scorrere i menù e i valori sarà molto più comodo e immediato. potresti metterlo come integrazione alla pulsantiera :slight_smile:

Ci penso, l'idea mi solletica, ma credo che aspetterò di aver finito tutte le funzioni prima di aggiungere altro codice...
Attualmente lo sketch compilato è a 22,6K e considerando che effettivi sono disponibili 28k teneto conto dei 4k del bootloader capisci che sto un pò con i byte/acqua alla gola... :cold_sweat:
Grazie per il suggerimento ad ogni modo.

Ciao a tutti Riccardo

riciweb:
Quando te la fai l'acquario??? ]:smiley:

Si.. si... mi manca solo quello in casa!! :astonished:

ma scusate con questo sistema l'acquario diventa praticamente indipendente? se no cosa manca?
se non erro bisogna gestire la temperatura, l'ossigenazione, il ricircolo dell'acqua, la salinazione, il rilascio del cibo... poi?

edit: le luci

come 4k di bootloader, di che Arduino stai parlando?

Quoto.
Solo sull'Arduino MEGA il bootloader occupa 4 kB, sulla vecchia 2009 ne occupava 2 mentre sulla UNO ne occupa solo 0,5.

lesto:
ma scusate con questo sistema l'acquario diventa praticamente indipendente? se no cosa manca?
se non erro bisogna gestire la temperatura, l'ossigenazione, il ricircolo dell'acqua, la salinazione, il rilascio del cibo... poi?

edit: le luci

Questo progetto, nella mia testa ha diversi scopi, il primo in assoluto è rendere la gestione di un acquario il più possibile semplice e facile, premesso ciò, qualunque acquariofilo di esperienza ti può dire che i parametri da tenere sotto controllo in acquario e le cose che è possibile automatizzare, sono innumerevoli, di fatto in effetti gli acquari che richiedo la maggior competenza, il maggior numero di cose da controllare ed automatizzare, sono gli acquari marini, ma non è a tanto che questo progetto vuole arrivare, di fatto alla fine del percorso, questo sara un controller per un acquario base o se vuoi un "Hello world" dell'automazione degli acquari", quindi arrivati al controllo completo della plafoniera, del ph, della conducibilità e all'automazione dei cambi dell'acqua ecco che l'acquariofilo avrà la vita molto ma molto più semplice.
Cio non toglie che poi chiunque potra prenderlo e personalizzarlo a suo piacere, ad esempio un'altro bel controllo da fare sarebbe sulla portata del ritorno in acqua dal filtro per monitorare lo stato di intasamento delllo stesso e manutenzionarlo solo se necessario... potrei andare avanti decine di pagine ad elencarti cose che si possono fare in un acquario...

leo72:

[quote author=Michele Menniti link=topic=141419.msg1264344#msg1264344 date=1370266332]
come 4k di bootloader, di che Arduino stai parlando?

Quoto.
Solo sull'Arduino MEGA il bootloader occupa 4 kB, sulla vecchia 2009 ne occupava 2 mentre sulla UNO ne occupa solo 0,5.
[/quote]

Devo sempre scrivere qualche Riccardata, ma in questo caso sono contento di averla scritta così grazie a voi ho corretto un mia convinzione sbagliata :blush:, o mi è rimasta in testa la reference del Leonardo o non so che dire, in ogni caso è un vero sollievo scoprire che il bootloader sulla UNO è 0,5k scusate maaaa doppio wau carpiato con avvitamentooooooo XD XD XD XD
Pensavo di essere messo maluccio, non che ora abbia da scialare, ma va molto meglio!!!

Scusatemi :blush:

Riccardo

Sì, anche la Leonardo ha un bootloader da 4 kB.

Chiedo scusa :~, ma nel revisionare lo sketch, mi sono sfuggiti alcuni errorini (non che non ce ne siano altri ma questi erano scandalosi), quindi riposto il file depurato dal buon "Leouz" anche da alcuni while bloccanti.
Con l'occasione ringrazio anche "danidiscus", "Dandovino" ed a breve anche "cmarcello", che sono sempre lì pronti a testare le mie cialtronate… :grin:

PS: Ho sostituito i file anche nei post precedenti, scusate ancora :blush:.

acquarium_controller_v_3.ino (43.8 KB)

leo72:

[quote author=Michele Menniti link=topic=141419.msg1264344#msg1264344 date=1370266332]
come 4k di bootloader, di che Arduino stai parlando?

Quoto.
Solo sull'Arduino MEGA il bootloader occupa 4 kB, sulla vecchia 2009 ne occupava 2 mentre sulla UNO ne occupa solo 0,5.
[/quote]
appunto e la MEGA avrebbe 128 o 256k di memoria.... quindi quei 4k diverrebbero ininfluenti :wink: