![]() |
Acquario gestito da Arduino
Ciao a tutti,
per prima cosa vorrei ringraziare tutti gli utenti per i contributi che danno che sono sempre fonte d'ispirazione per miglioramenti e nuove idee per le nostre vasche. Dopo tanto prendere ho deciso di dare anche io il mio piccolo contributo. Ho realizzato un controllore per la mia vasca (una Lido120 marina) interamente con Arduino. Le funzioni attualmente previste sono:
Inoltre è possibile gestire ogni elemento manualmente (quindi accendere o spegnere luci, skimmer, pompe, ecc ecc manualmente). Il tutto è gestibile tramite uno schermo LCD e una tastiera con 8 pulsanti (4 sono per la navigazione nel menu, quindi su-giù-ok-esc e 4 per funzioni rapide, al momento ne utilizzo solo 3 cioè Luci man on/off, feed e pompa osmoregolatore man on/off). Tramite il menù è possibile impostare i seguenti parametri:
Sono previste 3 modalità per le pompe: funzionamento contemporaneo, funzionamento alternato con tempo impostabile e funzionamento alternato con tempo impostabile sempre accesso (ovvero ignora il timer per le pompe e continua il ciclo sempre). Sono previste 3 modalità feed: manuale, ovvero manualmente tramite menù o funzione rapida vengono spente pompe di corrente, skimmer e filtro per un tempo impostabile); semi-automatico, ovvero come prima ma viene attivata anche la mangiatoia; automatica, come prima ma il tutto avviene automaticamente all'orario prestabilito. Per quanto riguarda la gestione della temperatura si imposta una temp desiderata (ideale) e un delta per l'attivazione delle ventole o riscaldatore. Per esempio se la mia temperatura ideale è di 27 gradi e il mio delta è un grado avviene quanto segue: se la temperatura scende al di sotto dei 26 gradi si accende il riscaldatore fino a raggiungimento dei 27 gradi, viceversa se la temperatura sale al di sopra dei 28 gradi si accendono le ventole fino ai 27 gradi. Questo per evitare l'accensione contemporanea di ventole e riscaldatore. La funzione Cambio acqua è divisa i 2 parti: la prima spegne tutta la tecnica in vasca per permettermi di effettuare la pulizia e lo svuotamento dell'acqua, la seconda attiva una presa di servizio a cui a necessità collego una pompa per il rabbocco dell'acqua da una tanica. Al completamento del rabbocco tutta la tecnica viene riattivata. Nel pomeriggio cercherò di postare qualche foto della mia creatura, con i dettagli della costruzione. Siccome ho avuto qualche difficoltà nel reperimento delle informazioni e delle tecniche da utilizzare, sia per quanto riguarda la parte hardware che software, sopratutto in italiano, se qualcuno fosse interessato a info più dettagliate chiedete pure e sarò felice di rispondere. Tengo a precisare che il bello di una realizzazione del genere è proprio quello di capire e sperimentare come funzionano le cose, quindi tendenzialmente non sarei disposto a postare l'itero codice che utilizzo per la programmazione di arduino, però ripeto che sarò felicissimo di dare le giuste "imbeccate" a chi le volesse (sempre che anche io sia in grado #17). Grazie per l'attenzione che mi avete dedicato. Ciaoooooooooo |
quanto costa? lo hai realizzato tu?
|
Ciao anche io ho fatto lo stesso, con Arduino Mega e LCD 16x2. Al momento controllo:
Anche io ho implementato ovviamente il controllo manuale su tutte le funzioni e la funzione Feed, ma la mia è molto più semplice della tua (disattivo solo le pompe di movimento), come controlli la mangiatoia? Come hai sviluppato il rabbocco? inizialmente avevo usato gli interruttori galleggianti ma sono troppo poco affidabili e sto passando ad un sensore di distanza (ho visto troppo tardi il sensore ottico di livello). Mi piacerebbe anche sviluppare un sensore di salinità...hai trovato qualcosa di interessante in giro? Ah in questo periodo, tempo permettendo, sto finendo di testare la versione 3 del mio Aquacontroller, che usa una interfaccia grafica touch screen. ciao |
complimenti, sarebbero sicuramente gradite anche delle foto da integrare all'artico....
ciao |
Nessuno che posta foto e da spiegazioni maggiori?
|
Compliementi !!!
Una domanda subito per partire ... metterai a disposizione il codice oppure dato che ci hai "investito" giorni e notti terrai tutto per te? Interessante il sistema del cambio acqua .. fai qualche foto delle valvole e del sistema che hai utilizzato? Per i sensori ho utilizzato pure io quelli a galeggiante ma integrato con quello a distanza della scharp o una colonna di contatto con galleggiante riflettente è più che altro da allarme. Il sensore a pressione è una figata; Avete usato anche la scheda di rete per il controllo da remoto oppure no? Per i sensorio io li ho già presi tutti fatti che comunicano i IC2, c'est plus facile!! Hanno ph redox salinità |
Ciao, complimenti per la realizzazione, aspetto anch' io le foto e se cortesementi mi dici quali rele hai utilizzato. grazie
Paolo |
molto interessante aspettiamo con interesse le foto e altre info tecniche
per curiosità ti sei rifornito da loro http://www.robot-italy.com/?visto che li trovo molto forniti e sono a Roma,vorrei chiederti altre cose ma sicuramente ti invierò un MP |
complimenti
|
seguo con molto interesse! :-)
|
anch'io seguo...
|
seguo pure io pure io! #28
|
io l'ho ordinato dovrebbe arrivarmi tra un paio di settimane...
|
Sono 2anni che cerco delle info maggiori....ma trovo ben poco
Dunque molto interessante by... Gino |
se ci metti qualche foto e passaggi di costruzione ci facciamo un bel articolo per il portale
|
Ciao, comincio io, allora, nella speranza di suscitare interesse e che qualcuno suggerisca a me come andare avanti...
Lista della spesa:
La realizzazione del mio aquacontroller (v2.1 al momento) mi è costata circa 4 mesi di lavoro nel tempo libero, per prove, fallimenti, vittorie, tutte fatte "offline" mentre acquistavo le parti della vasca e prima della sua partenza. Ora è in funzione da 6 mesi, durante i quali non sono mancati aggiornamenti e modifiche. La versione iniziale non consentiva di modificare gli orari, che andavano impostati hard-coded via USB, ho cambiato ben tre diversi sensori di temperatura prima (LM35, termistore e poi DS18B20) prima di trovare quello migliore, ho fatto l'esperienza degli interruttori galleggianti, poi abortita a causa della scarsa affidabilità...insomma c'è sempre stato da divertirsi. Nella realizzazione del circuito ho cercato di collegarmi ove possibile ai pin di arduino con un connettore maschio, ma in alcuni casi, ad esempio per Vcc e GND che sono comuni a molte parti, ho preferito saldare un filo direttamente all'Arduino e poi utilizzare del morsetti internamente alla scatola. Nella versione 3 userò maggiormente le saldature per problemi logistici (poco spazio rimasto libero con lo shield TFT) La realizzazione è "semplice", sotto una immagine a pancia in giù: http://s7.postimage.org/f7767fmdj/IM...028_221934.jpg 1. lo shield LCD si monta sull'Arduino, non si può sbagliare 2. il RTC si collega a Vcc, GND e ai pin SDA e SCL che nel Mega sono i pin digitali 20 e 21. 3. Si sceglie poi un pin per il sensore di temperatura (io ho scelto il 19) e ci si collega il segnale, mentre gli altri due fili del sensore vanno collegati a Vcc e GND. Attenzione a mettere una resistenza di pullup da 4,7k tra Vcc e segnale. Io l'ho saldata direttamente sui fili in prossimità del morsetto interno. http://s17.postimage.org/o0meluoi3/ds18b20.jpg 4. Il sensore di distanza va collegato a Vcc, GND, e il segnale ad un pin analogico, io ho scelto il 15. Durante i miei test ho evidenziato alle volte una certa variabilità nella misurazione e ho inserito un piccolo condensatore tra Vo e GND, ma poi l'ho tolto, e compenso via codice l'eventuale variabilità, andando a considerare solo due letture consecutive prima di attivare il rabbocco. http://s13.postimage.org/prmw3jeib/sharp.jpg Quando l'ho acquistato speravo che il sensore ad infrarossi vedesse la superficie dell'acqua. Prove empiriche suggeriscono che così non funziona, e allora ho dovuto ricorrere ad un galleggiante. Ho montato il sensore su un tubo di pvc attaccato alla parete della sump, e all'interno c'è un galleggiante (un tappo di silicone) che viene letto dal sensore. http://s13.postimage.org/vq0pdrxgz/I...028_223242.jpg 5. Armarsi di molta pazienza e collegare tutti i pin per il pilotaggio dei relais al connettore VGA. IO ho usato sull'arduino i pin da 39 a 53, comodi per la posizione. Ho saldato gli 8 fili ad un connettore maschio, con una striscia di basetta millefori per dare stabilità e poi l'altro capo alla fila superiore e inferiore del connettore VGA. GLi altri due collegamenti sono per Vcc e GND, in totale 10 pin collegati al connettore. 6. Stessa procedura di cui sopra per la connessione del banco relais al connettore che collegherà la scatola con le prese. La scatola stessa va "bucata" sul fondo per poter alloggiare il banco relais, perchè altrimenti non si chiude. Si buca poi a misura (io l'ho fatto sopra) per il passaggio del connettore e si montano le prese collegandone ciascuna ad un relais (moolta pazienza qui) http://s9.postimage.org/8s9pj2y6z/IM...028_223103.jpg Serve anche una apertura per l'ingresso dell'alimentazione al banco relais. Questa alimentazione, che io fornisco con un alimentatore USB, potrebbe non servire utilizzando direttamente quella presa dall'Arduino. Esiste un jumper sul banco relais che sceglie se avere alimentazione esterna o usare quella dell'arduino, ma mi sono accorto che usando l'arduino l'assorbimento di corrente era eccessivo e mi si scaldava troppo. Da qui la scelta di una seconda alimentazione esterna. http://s15.postimage.org/wkadxdh2v/I...028_223056.jpg 7. Io ho anche realizzato una piccola scatola su misura per il mio controller. L'ho fatta utilizzando del Forex (regalatomi da un amico tipografo) da 5mm. Facile da tagliare con un taglierino, leggero e resistente. http://s14.postimage.org/kp3q3b6x9/I...028_222536.jpg http://s10.postimage.org/ic9momww5/I...028_223040.jpg Veniamo ora al software. Arduino si programma con la sua applicazione. Io uso l'applicazione arduino 0023, scaricabile gratuitamente. Nel mio software faccio largo uso della libreria Alarm, usata per settare tutti gli orari di accensione/spegimento. Servono poi altre librerie aggiutive per la gestione dei componenti esterni: codice:
#include <LCD4Bit_mod.h> //gestione del display Nella parte iniziale del codice troviamo tutte le variabili e le costanti utilizzate dal programma. Sono principalmente di quattro categorie:
la funzione setup() inizializza le variabili recuperandole dalla memoria EEPROM. Alla prima partenza mette dei valori di default. Il ciclo loop() pilota il menu: attende input dall'utente sul tastierino e consente la navigazione tra le funzioni disponibili, invocando poi specifici sottomenu alla bisogna. Abbiamo poi una serie di funzioni che settano i flag vari per l'accensione o lo spegnimento dei dispositivi, e che sono invocate dagli allarmi oppure dalle funzioni manuali. La funzione SetStatus() viene richiamata ogni 10 secondi, fa le verifiche sullo stato dei sensori (termico e distanza) e imposta i relativi dispositivi, dopodichè a second adello stato di tutti i flag accende o spegne il relais relativo. Il rabbocco viene avviato solo se per due volte consecutive il lettore di distanza misura un livello troppo basso, e ogni volta solo per 10 secondi. Forse così faccio male alla pompa ma sono ragionevolmente sicuro di non fare overfill. Il cooler invece viene attivato se la temperatura supera una certa soglia hi_temp e disattivato quando è sotto un'altra soglia lo_temp, per avere una sorta di ciclo di isteresi. Neon, HQI e lunari hanno solo un accensione e spegnimento al giorno, mentre le pompe al momento si switchano ogni 6 ore. Potenzialmente si potrebbe fare un sistema tipo wavemaker, accorciando l'intervallo tra SetStatus successivi, ma sinceramente non so se serve veramente e credo rovini le pompe quindi per ora soprassiedo. il programma lo potete trovare qui: http://code.google.com/p/aquacontrol...e/#svn%2Ftrunk L'ho descritto molto velocemente, ma se qualcuno vuole fare approfondimenti o ha domande specifiche sono a disposizione. Piani per il futuro ne ho tanti, sto ancora testando il corretto funzionamento del rabbocco, e ho quasi pronta la versione 3 dell'aquacontroller, con un display TFT touch. Inoltre vorrei aggiungere sensore di ph e salinità (suggerimenti??) e infine collegarlo al web per poter leggere lo stato e eventualmente pilotarlo da remoto. Ieri poi mi sono accorto che manca anche il cambio dell'ora, che ho dovuto fare riprogrammandolo da PC. |
Forse cosi sono spronato a riprovare invece di tenere Arduino chiuso nell'armadio, grazieeeee
|
Quote:
|
Azz complimenti appena arriva ci provo
|
Per le sonde Ph, ORP e altre collegabili ad arduino potresti andare su www.atlas-scientific.com che trovi anche su e-bay
|
Quote:
|
Quote:
interessante, grazie! Ci do' un'occhiata, certo che i prezzi non sono da realizzo, un kit conduttività è sui 150$ |
...sei un geniaccio!!#25#25 purtroppo io ho comprato l'arduino uno ma come tanti altri ce l'ho parcheggiato nell'armadio in attesa,ma aldilà di tutto ti fa onore il fatto che tu abbia messo a disposizione di tutti noi "comuni mortali":-D il tuo tempo e il tuo sapere....cosa ormai rara.#25#25
....seguo gli sviluppi.#28 |
[QUOTE=cuginosgrizzo;1061901075]Ciao, comincio io, allora, nella speranza di suscitare interesse e che qualcuno suggerisca a me come andare avanti...
Lista della spesa:
Scusa ma non capisco perchè compri un prodotto fatto in Italia in Cina http://www.robot-italy.com/it/arduino.html qui trovi tutto e di più è un negozio Italiano(a Roma)e se hai dei problemi con ciò che ricevi hai la garanzia Cmq bel lavoro complimenti il bello di Arduino è che si può ampliare per ogni esigenza senza spendere cifre esagerate |
seguo con molto interesse...
Solo una domanda, Non hai usato altro che 1wire e niente I2C,Con questi in utilizzo riduci le porte e il tutto potrebbe stare su un arduino uno... |
Il giorno che qualcuno si metterà li a creare "arduini" su richiesta si farà i soldoni...
Uno come me, x esempio.. sto cercando da una vita un dispositivo a basso costo che mi gestisca il parco led a più canali alba/tramonto, non ho minimamente il tempo di mettermi a pasticciare su sto oggetto grandioso, ma il muro più grosso è la programmazione, che proprio è zero, e zero è anche il tempo da potergli dedicare... Ho cercato più volte qualcuno che gentilmente mi assemblasse e programmasse Arduino, che poi a me, essendo dolce, servirebbero molte meno cose, mi son rivolto in alcuni grossi forum di elettronica, ma ho sempre e solo trovato saccenti maleducati ed esaltati, che alla domanda "pagando il dovuto qualcuno mi assembla e programma Arduni" risposte ottenute.. "o ti sbatti" o "ti arrangi" e allora a sti signori, andate a stendere che continuo con i cari vecchi timer meccanici #07 e mi scordo purtroppo alba/tramonto con i led |
Quote:
|
Complimenti bel lavoro borntodive! ;-)
...e anche a te cuginosgrizzo ;-) |
#70bravo molto bravo continua cosi ,dando una mano a tutti gli utenti fai cosa molto gradita
|
Ciao,
@ludwig: compro dalla cina perchè, spedizione inclusa, trovo prezzi che sono quasi la metà. Il circuito di arduino è open source, la qualità magari non è la stessa (siamo sicuri?) e posso anche avere hardware ridondato in caso di problemi... @Davide_m: hai ragione, uso I2C, one wire e i pin digitali in uscita per pilotare i relais. In totale sono 1 ingresso analogico, i due I2C, un ingresso digitale e 8 uscite digitali. Poi c'è lo shield LCD+Keypad, che usa altri 8 pin digitali e uno analogico. Con l'arduino uno non ci stava. E la versione 3 che sto preparando ancora meno, usa la maggior parte dei pin dell'arduino mega.... Sono soddisfatto dei risultati della versione 2 che è online, tra poco metto "in produzione" la versione 3, vi farò poi avere il codice che è un po' più complicato del precedente. ciao |
Quote:
|
@cuginosgrizzo: perchè come sensore hai scelto un DS18B20 invece dell' LM35DZ?
Il primo ha lettura a 0,5°C mentre il secondo solo a 0,1° |
@billykid591: bel prodotto quel display touch seriale, ma ho visto prezzi sui 200$, il che me li taglia fuori decisamente per il mio controller low cost.
@gep: ho provato per primo l'LM35, ma tra il fatto che andava impermeabilizzato e quello che non ottenevo letture stabili, ho rinunciato. L' altro invece plug and play, ha funzionato al primo colpo... Inviato dal mio GT-I9000 usando Tapatalk |
Quote:
|
Quote:
Hai inserito acqua d'osmosi nella fialetta o l'hai solo sigillata col silicone? |
LM35 ti da valori sballati perchè va schermato in quanto analogico, quindi molto sensibile ai disturbi e campi magnetici che lo circondano.
Altro problema che non puoi superare una certa distanza tra il componente e l'arduino. Tutto questo invece non avviene con il ds18b20 Ma personalmente mi sono trovato bene sia con l'uno che con l'altro avendo le dovute accortenze. E' ovvio dire che con lm35 va usata una porta analogica che in genere non la usiamo quasi mai, per l'altro invece va impegnata una digitale che puo servire ad altri scopi. Comunque per sopperire ad una lettura sfalsata puoi integrare la lettura con la funzione di lettura media, del tipo che ogni 50 letture in un determinato tempo ti visualizza solo la lettura media che sarà quella giusta. ;-) |
-69-69-69 mi inchino al vostro ingegno!
....certo però potreste fare un'articolo in cui ci infarinate un pò su come programmare sto arduino...per noi schiappe ovviamente!:-D:-D:-D:-D:-D |
Quote:
|
bravi dai proseguite
|
Guardate che belle porzioni di codice da analizzare ... descrizione dei sensori ecc ....
http://apduino.org/projects/apduinos...orted_Hardware |
Tutti gli orari sono GMT +2. Attualmente sono le 14:23. |
Powered by vBulletin versione 3.8.9
Copyright ©: 2000 - 2025, Jelsoft Enterprises Ltd.
Traduzione italiana Team: AcquaPortal
User Alert System provided by
Advanced User Tagging v3.2.5 Patch Level 2 (Lite) -
vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Copyright Zero Pixel Srl