Grow-Box

Buonasera a tutti,

dopo ben 2-3 o forse 4 anni di assenza torno a scrivere. Forse molti di voi non si ricorderanno neanche di me, ma vabbè penso che con questo progetto che ho in mente riuscirò ad essere più presente sul forum.

Detto questo vi presento il mio nuovo progetto:

Data la mia passione per il peperoncino, ho deciso di costruire una microserra per poter far germinare le piante anche se la temperatura esterna non lo permette (a questo servono le serre).

I parametri che devo tenere sotto controllo sono:

  • Luce: fornita da due lampade led (che non posso mostrarvi perchè sono prototipi protetti da segreto industriale :zipper_mouth_face:) Nei primi giorni dovranno stare accese 16 ore mentre dopo ne basteranno 12.
  • Temperatura: La luce delle lampade in se non scalda molto quindi il calore, che misurerò tramite 2 termoresistenze, viene fornito dai dissipatori sopra le lampade alloggiati in una scatola in plexyglass. Nella scatola sottostante dove stanno le piante e la temperatura sarà misurata da un SHT11.
    Tramite un sistema di ventole potrò decidere se dissipare il calore verso l'esterno o mandarlo nella scatola delle piante.
  • Umidità: Userò lo stesso SHT11 anche per misurare l'umidità dell'aria interna. Inoltre userò un YL69-YL38 per misurare l'umidità del suolo
  • CO2: userò un MQ-7 per tenere i parametri di co2 sotto controllo, infatti se è presente troppa CO2 le piante rischiano di diventare bianche e allungate.

Userò anche un RTC che mi servirà per avere intervalli orari regolari e un display in cui visualizzerò la data e l'ora e i vari parametri.
Quasi dimenticavo che ho anche una micropompa a 12Vdc e delle punte di spruzzini per annaffiare con acqua nebulizzata, che mi faranno aumentare l'umidità dell'aria e del suolo.

Come alimentatore per le lampade ho optato per un 36V-1.5A mentre per le ventole e il resto ho deciso di usare un alimentatore da 12V-5A (che se dovesse rimanere corto sarà rimpiazzato da uno da 10A).
Devo decidere se disaccoppiare le tensioni che alimentano le lampade led o lasciare che la massa sia comune in tutto il circuito (non ho paura di usare dei fotoaccoppiatori, specialmente se mi salvano il resto del circuito in caso di corti).

Ho già disegnato lo schema per il pilotaggio dei led e delle ventole che posterò più avanti quando saranno completi.

Ho rinforzato il coperchio con una lamina di alluminio in modo tale che possa dissipare il calore, devo ancora farci i buchi per l'aria per le ventole e per il passaggio dei cavi.

Per ora mi sono già interfacciato con il sensore di umidità del suolo e il rilevatore di CO2.
Ho creato e testato il driver per la striscia led, che mi da alla potenza massima un assorbimento di potenza pari a 13.5Wx2 lampade.
Ho creato e testato il driver per le ventole.

Devo fare delle prove sulla pompa perchè da sola alla massima potenza assorbe 5A e ho uno "spruzzo" nebulizzato al massimo, la soglia di accettabilità dello "spruzzo" con soltanto uno spruzzino la raggiungo a 1.6A. Devo vedere con 3 spruzzini cosa viene fuori.
Non avendo quindi dati certi sulla pompa accetto qualsiasi consiglio, pensavo di pilotarla con un singolo mosfet che tanto non mi serve farla girare in 2 direzioni. Non avendo degli alimentatori regolati in corrente pensavo di mettere una resistenza di lettura (magari corrazzata) per regolare il PWM in funzione della corrente che passa nel motore.

Ho voluto condividere questo progetto perchè magari interessa a qualcuno e magari qualcuno ha da darmi qualche consiglio (anche lascia perdere)...

Io non ti conosco, il tuo ultimo post era del 15 luglio 2010 mentre io mi sono iscritto il 29 ottobre di quell'anno :wink:
Bella come idea. Ma condividerai anche schema e codice?

Ciao, sono un nuovo utente, ero interessato al tuo progetto perchè vorrei crearne uno simile, mi servirebbe sapere come fare l'acqua nebulizzata, e il nome della pompa che hai utilizzato, grazie :smiley:

Calamaro:

  • Luce: fornita da due lampade led....
  • Temperatura: La luce delle lampade in se non scalda molto quindi il calore, ..., viene fornito dai dissipatori sopra le lampade alloggiati in una scatola in plexyglass. Nella scatola sottostante dove stanno le piante ...
    Tramite un sistema di ventole potrò decidere se dissipare il calore verso l'esterno o mandarlo nella scatola delle piante.

Bello. Non mi è tanto chiaro (forse si capirà meglio con foto complete) il discorso dello scaldare con i dissipatori delle lampade.
La parte sopra ci saranno i dissipatori delle lampade a led? E le strisce di alluminio? Sono quelli i dissipatori per le lampade?

@Leo72 certamente sennò non avrei mai postato il mio progetto sul forum :wink:

@Giuky prova a cercare rs-360 sul più grande sito di aste online :roll_eyes: dovrebbe costare sui 4 euro +ss. Ovviamente non è il top, una buona alternativa potrebbe essere una pompa da PC-Modding per il raffreddamento ad acqua ma non ho idea di quanto costino.

@Nid69ita Queste lampade hanno come case un profilato in alluminio cavo nel quale è alloggiata una striscia di led blu ad alta potenza. La luce blu batte su una lastra di fosforo davanti ai led che diventa fluorescente e irradia luce bianca.
Il case di alluminio funziona da dissipatore per i led, con della pasta termica cercherò di accoppiare termicamente il case delle lampade alla lamiera metallica in modo da avere più superficie per dissipare.
Essendo i case nella "camera superiore" scalderanno quella zona quindi con delle ventole dovrò freddarla per portare alla temperatura ottimale sia le piante che i led nelle lampade.
e' una paranoia mia avere tutta questa dissipazione ma ho paura che si brucino.

Ho quasi terminato lo chassis superiore, quindi a breve riuscirò con delle foto a farmi capire meglio.

per quanto riguarda la pompa sto avendo dei problemi nel pilotaggio... ho bruciato un mosfet di potenza :(!

questo è lo schema per il pilotaggio delle lampade, il valore dell'induttanza è errato.
Lo schema di pilotaggio della pompa è uguale solo che non c'è la resistenza tra massa e drain e dovrei mettere un diodo di protezione ai capi del motore... solo che mi si bruciano tutti :smiley:
I mosfet che uso sono 47N60 che hanno una VDS di 600V e reggono una ID di 47A... non capisco come io possa averne bruciato uno...

Buongiorno a tutti

ho modificato il coperchio inserendo 2 ventole e finendo di siliconare la plastica alla lamiera.

Ora ho un problema, magari voi con il codice sicuramente siete migliori di me
ho semplificato al massimo lo schema per il pilotaggio della pompa:
ecco le foto:
(scusa massimo ma le prove le faccio su un tarocco almeno se lo brucio amen)

Questo oggettino blu è una sonda di corrente LEM CKSR 6-NP e appunto serve a leggere la corrente che circola in un determinato segmento di circuito. Io l'ho collegata tra Massa e il SOURCE del Mosfet.
La sonda lem l'ho calibrata usando il mio alimentatore, cortocircuitandolo e fornendo valori di corrente predefiniti e poi andando al leggere cosa mi buttava fuori. Ho collegato la vref a massa.

Ampere letti su Alimentatore | 1 | 2 | 2.5 | 3 | 5 |
lettura sensore |20 |40| 52 | 63|105|

da qui l'equazione della retta lett.sens=21.25*Ampere - 1.25

Il mio problema ora è questo, scrivere un codice per cui la corrente del motore deve autobilanciarsi sugli 1.6A e se di colpo sale spengere la pompa perchè sicuramente manca acqua.

Con il pwm riesco benissimo a controllare la corrente della pompa e con analogWrite(9,25); riesco a tenere una corrente stabile sugli 1.6 ma vorrei un sistema un po' più dinamico ovvero io gli do la corrente e lui mi setta il pwm di conseguenza.

Non butto giù il mio codice perchè non vorrei influenzarvi con strade sbagliate :sweat_smile:
Magari se aveste anche solo una guida per realizzare una cosa del genere ve ne sarei grato.

Perdonate la confusione sulla mia scrivania :slight_smile:

Grande Calamaro, bentornato!
A quel tempo nel forum ITA ce n'erano pochi, di utenti :slight_smile: , e tutti buoni

x iscrizione.

Calamaro:
Il mio problema ora è questo, scrivere un codice per cui la corrente del motore deve autobilanciarsi sugli 1.6A e se di colpo sale spengere la pompa perchè sicuramente manca acqua.

Con il pwm riesco benissimo a controllare la corrente della pompa e con analogWrite(9,25); riesco a tenere una corrente stabile sugli 1.6 ma vorrei un sistema un po' più dinamico ovvero io gli do la corrente e lui mi setta il pwm di conseguenza.

Ma tu vuoi un sistema automatico, giusto?
Quindi devi inventarti qualcosa che possa fare la lettura della corrente assorbita. Potresti usare un op-amp in modo da avere una tensione proporzionale alla corrente che scorre su una R usata per misurare la corrente assorbita. Se la tensione sale, vuol dire che il motore sta assorbendo perché gira a vuoto e tu di conseguenza abbassi il PWM.

Spero di aver capito il tuo problema :sweat_smile:

pitusso:
Grande Calamaro, bentornato!
A quel tempo nel forum ITA ce n'erano pochi, di utenti :slight_smile: , e tutti buoni

Grazie mille :wink:

leo72:

Calamaro:
Il mio problema ora è questo, scrivere un codice per cui la corrente del motore deve autobilanciarsi sugli 1.6A e se di colpo sale spengere la pompa perchè sicuramente manca acqua.

Con il pwm riesco benissimo a controllare la corrente della pompa e con analogWrite(9,25); riesco a tenere una corrente stabile sugli 1.6 ma vorrei un sistema un po' più dinamico ovvero io gli do la corrente e lui mi setta il pwm di conseguenza.

Ma tu vuoi un sistema automatico, giusto?
Quindi devi inventarti qualcosa che possa fare la lettura della corrente assorbita. Potresti usare un op-amp in modo da avere una tensione proporzionale alla corrente che scorre su una R usata per misurare la corrente assorbita. Se la tensione sale, vuol dire che il motore sta assorbendo perché gira a vuoto e tu di conseguenza abbassi il PWM.

Spero di aver capito il tuo problema :sweat_smile:

Si vorrei fare un sistema automatico ma forse mi spiego meglio con uno schema...

Avevo pensato alla resistenza ma facendo 2 calcoli avrei dovuto trovare una resistenza bassissima perchè sennò tutta la caduta di tensione sarebbe andata lì dato che la resistenza interna del motore è 0.5Ohm.
Rovistando qua e la ho trovato questa sonda di corrente

di cui ho postato il link per il datasheet (l'altro è sbagliato), nella configurazione in cui l'ho collegata io, ovvero con un solo giro di primario, ho una resistenza di 0.18ohm.:

Questa configurazione ha portato i suoi frutti infatti ho simulato una calibrazione per la sonda per vedere cosa legge arduino e da li ho tirato fuori l'equazione per la retta di conversione "lettura sensore (ampere)"

Il mio problema adesso è scrivere una "Funzione Annaffia" che preveda l'accensione della pompa con una Im di start di 2 Ampere, poi, fin quando non ha finito di annaffiare, e controlla che la corrente non salga sopra gli 1.6A perchè se assorbisse troppo mi manderebbe in botta tutto il sistema. Il controllo di corrente è una precauzione per evitare che la pompa tiri tutti gli Ampere dell'alimentatore da 12V con cui alimento il sistema "intellettuale e sensoristico".

Ciao Calamaro, bentornato!
Che peperoncini hai intenzione di mettere nella tua growbox?
Anche io mi sto attrezzando con habanero, infinity chilli yellow ed infine con il temutissimo trinidad scorpion... per quest'ultimo so che serviranno i guanti di lattice solo per maneggiarli
Più in là ci scambiamo i semi? :sweat_smile:

Il fusto che si allunga e il colore bianco della piantina so che dipendono dalla luce e non dalla CO2, in pratica la piantina dopo la germinazione si allunga per cercare di catturare più luce.... confermi?

Stai facendo un ottimo lavoro

pelletta:
Ciao Calamaro, bentornato!
Che peperoncini hai intenzione di mettere nella tua growbox?
Anche io mi sto attrezzando con habanero, infinity chilli yellow ed infine con il temutissimo trinidad scorpion... per quest'ultimo so che serviranno i guanti di lattice solo per maneggiarli
Più in là ci scambiamo i semi? :sweat_smile:

Mah per ora Habanero credo, ho provato i trinidad ma non hanno un buon sapore però puoi usarli per innestare gli altri...

Il fusto che si allunga e il colore bianco della piantina so che dipendono dalla luce e non dalla CO2, in pratica la piantina dopo la germinazione si allunga per cercare di catturare più luce.... confermi?

Stai facendo un ottimo lavoro

Si soprattutto per quello, ma ho letto che anche un'eccessiva quantità di CO2 può renderle bianche.
Ho perso la luna ormai per seminarle e per farle germinare, spero comunque che venga fuori qualcosa se le metto domani mattina e poi in serra...

Puoi fregartene altamente delle fasi lunari se coltivi indoor :wink:

il mosfet continua a bruciarsi ? il diodo di ricircolo deve comunque sopportare uno stress non indifferente, quale stai usando ? puo' essere necessario alettare sia mosfet che diodo, hai valutato anche la temperatura ? quanto assorbe la pompa ? piazza l'oscilloscopio ai capi del mosfet e controlla di che spike stiamo parlando, e' vero che un mosfet da 600V e' tosto, ma con quelle correnti la tensione dello spike all'apertura potrebbe superara la Vds.
Ti si rompe in fase di apertura o mentre funziona la pompa ?

Inoltre ti consiglio di cercare Giarduino, un rpogetto che e' nella sezione Megatopic, dove e' stata appunto automatizzata una serra, magari trovi altri spunti.

Grazie per i consigli Testato :wink:

Testato:
il mosfet continua a bruciarsi ? il diodo di ricircolo deve comunque sopportare uno stress non indifferente, quale stai usando ?

sto usando un k1560g3 che sopporta una Vr di 600V e una If di 15A, mentre se collegassi entrambi gli Anodi sarebbe di 30A

puo' essere necessario alettare sia mosfet che diodo, hai valutato anche la temperatura ? quanto assorbe la pompa ? piazza l'oscilloscopio ai capi del mosfet e controlla di che spike stiamo parlando, e' vero che un mosfet da 600V e' tosto, ma con quelle correnti la tensione dello spike all'apertura potrebbe superara la Vds.
Ti si rompe in fase di apertura o mentre funziona la pompa ?

Mi si rompeva perchè sono un nabbo e avevo collegato il diodo alla rovescia quindi quando il mosfet apriva il motore veniva bypassato e tutta la corrente passava attraverso il mosfet.
Sabato pomeriggio sono stato in "lab" e con l'oscilloscopio ho misurato la tensione di spike che è di circa 40V, però è talmente in un lasso di tempo piccolo che non credo che danneggi più di tanto il mosfet...
Tu come la elimineresti?

Ecco la foto del circuito finito:
(come vedi ho seguito il tuo consiglio e ho messo un dissipatore sotto mosfet e diodo. Il foglio giallo è un silpad che isola elettricamente ma accoppia termicamente.)

Il potenziometro mi serve per regolare il PWM e vedere cosa mi legge la sonda:

const int pinPot = A0;
const int pinSonda = A1;
const int analogOutPin = 9; //se uso il pin 6 ho un pwm di 1kHz

int sensorValue = 0;     
int outputValue = 0;      
int sonda = 0;
void setup() {
  Serial.begin(9600); 
}

void loop() {

  sensorValue = analogRead(pinPot);            
  sonda = analogRead(pinSonda);
  outputValue = map(sensorValue, 0, 1023, 0, 255);  
  analogWrite(analogOutPin, outputValue);           

  Serial.print("sensor = " );                       
  Serial.print(sensorValue); 
  Serial.print("\t sonda = ");      
  Serial.print(sonda);     
  Serial.print("\t output = ");      
  Serial.println(outputValue);   

  delay(2);                     
}

Ora che ho ricontrollato tutto e ho finito il circuito ho un'altro problema, o meglio me ne sono accorto con l'oscilloscopio.
La corrente che mi legge la sonda ha una forma d'onda che dovevo prevedere, ma essendo molto arrugginito non ho previsto.

Adesso il problema è questo:
quando ho un pwm basso ha una forma come in pwm->20 mentre più alzo il pwm la corrente assume una forma sempre più piatta fino ad arrivare a questa forma:

(scusate ma essendo un Prl non ho salvato la forma d'onda a basso PWM... spero di rimediare lunedì o quando avrò 10min liberi)

Arduino mi legge ad esempio 580 per il picco poi legge sempre 0 e per risolvere questo problema avevo pensato di dimensionare un sample and hold in uscita alla sonda che mi dia un valore medio per fare la mia lettura...
Oppure posso creare una funzione che faccia tipo 10 campioni in 2ms poi mi fa la media e a quel punto ho un'idea più precisa di quanta sia la corrente.

Poi detto tra noi, secondo me sto dedicando troppo tempo a questa pompa, io avrei solo bisogno di scrivere una funzione che:

Quando arriva l'ora di annaffiare mi da una Im di start di 2 ampere e poi mi dia una corrente fissa di 1.6A stando attento che non salga di colpo che vuol dire che la pompa gira a vuoto e che non tiri MAI 5A perchè mi manderebbe in protezione l'alimentatore facendo spengere arduino e perdendo quindi il controllo del sistema Grow-Box.

Tornando a problemi più "contadini" ieri ho messo i semi a bagno nella camomilla perchè ho letto che favorisce la germinazione.
Ho attinto un po' di acqua dalla fonte vicino casa mia perchè ci vuole un'acqua che non sia dura e ora vado a preparare la Germ-box per la germinazione.

Calamaro:
Sabato pomeriggio sono stato in "lab" e con l'oscilloscopio ho misurato la tensione di spike che è di circa 40V, però è talmente in un lasso di tempo piccolo che non credo che danneggi più di tanto il mosfet...
Tu come la elimineresti?

40V sono pochissimi, sicuro che non ti sei perso lo spike ? non puo' essere di soli 40V. E' vero che parliamo di tempi bassissimi ma il mosfet si puo' rompere ugualmente perche' quando si supera la Vds si rompe in brevissimo tempo.
Visto che cmq la rottura era dovuta ad altro per ora lascerei stare il tutto, credo sia gia' oltremodo sovradimensionato
Toglierei il condensatore in parallelo al diodo, perche' visto che piloti in pwm il carico il condensatore ha bassa impedenza in AC. su circuiti DC il diodo basta

Per il discorso forma d'onda la fai trppo facile secondo me. Il LEM ha una sua curva di risposta che tu hai ricavato ma che credo tu abbia fatto con una corrente DC giusto ?
Cosa succede alla corrente in AC o in regime pulsato ? segue la forma d'onda della tensione, e nel caso di un carico induttivo si ci mette di mezzo anche lo sfasamento.
Come fai con un analogread a sapere quanti ampere passano nel motore ? peraltro tu vari la forma d'onda tramite il dutycycle, il che fa variare anche il metodo di calcolo.
Non ho letto il datasheet della tua sonda, internamente fa il calcolo RMS ? lo sa fare su fome d'onda varioabili ? non credo

nel datasheet c'è scritto:

Applications
?AC variable speed and servo motor drives
?Static converters for DC motor drives
?Battery supplied applications
?Uninterruptible Power Supplies (UPS)
?Switched Mode Power Supplies (SMPS)
?Power supplies for welding applications
?Solar inverters

Ora le faccio fare un po' di Burn-In e vediamo se si brucia. :sweat_smile:

mi sono letto la tesi di laurea di un ragazzo che si prefiggeva uno scopo simile soltanto che lui ha fatto un'analisi con Matlab simulink ecc ecc roba che secondo me è inutile se si parla di una pompa per annaffiare.

Lunedì guardo di fare misure più precise e sensate e ricapitolando sono:

Misura dello spike
Misura della corrente dovrebbe esserci una sonda di corrente da qualche parte
Misura della tensione sull'uscita della sonda

Altrimenti tu come risolveresti questo problema? Dici che il controllo sulla corrente è inutile?

In alternativa posso fare delle misurazioni, tracciare una retta e stimare la corrente, la sonda ormai l'ho messa e la lascerei anche se ridondante a questo punto.

Mi piace questa discussione :smiley:

PS mentre scrivevo ho fatto girare 5 min il motore a 5 ampere, tutto freddo tranne il motore... Ora lo lascio un oretta a 2.5A e vediamo cosa viene fuori...

Non è che tecnicamente non puoi usare quel sensore, ma servono calcoli matematici che se non ga la sonda devi fare tu.
Per conoscere il balore rms di corrente devi valutare o misurare il cosfi, valutare o misurare, campionando, la forma d onda. Dipende dalla precisione che cerchi.
Se cerchi Dalubar contascatti sul forum trovi un progetto che usa una Lem sulla 230V

Aggiornamento

Per misurare la temperatura delle due lampade ho creato questo circuito:

Con questo SW

int pinK1 = 8;
int pinTempLampade = A0;
int tempLamp1 = 0;
int tempLamp2 = 0;
int mediaTemp = 0;

void setup() {
  Serial.begin(9600); 
}

void loop() {
  
  digitalWrite(pinK1,LOW);
  tempLamp1 = analogRead(pinTempLampade);
  delay(50);
  digitalWrite(pinK1,HIGH);
  tempLamp2 = analogRead(pinTempLampade);
  mediaTemp = (tempLamp1 + tempLamp2)/2;
  delay(50);
  Serial.print("L1 = " );                       
  Serial.print(tempLamp1); 
  Serial.print(" L2 = ");      
  Serial.print(tempLamp2);     
  Serial.print(" Media = ");      
  Serial.println(mediaTemp);
}

ed il risultato è questo:

per il resto delle prove non sono riuscite a farle, queste sono giornate di fuoco... =(

EDIT
Correggetemi pure se ho sbagliato qualcosa :sweat_smile:

Non capisco questa scelta, illuminami

  • occupi due pin
  • piloti un relè meccanico a 200 Hz

Perché non connettere semplicemente i due sensori ad A0-A1 ?