Go Down

Topic: 3Serre (Read 6503 times) previous topic - next topic

-d0b-

Dec 03, 2014, 09:18 am Last Edit: Dec 11, 2014, 07:31 pm by -d0b-
Questa primavera, come ormai tante, mi dedicherò all'agricoltura; però sarà diverso infatti avrò la possibilità di costruire 2 serre piu un semenzaio.

Per mia fortuna le serre saranno molto vicine a casa, per cui potrò facilmente approfittare della corrente domestica... ti chiederai perché della corrente? E io ti risponderò: perchè queste serre le voglio monitorare e controllare con Arduino.

Vediamo un po nel dettaglio le 3 serre

. la prima, che d'ora in poi diverrà la serra dei pomodori, avrà dimensioni pari a 6mx2,5m, ospiterà varie piante di pomodori e altre colture; sarà rivestita di nylon.

. la seconda, quella dei peperoncini, è una struttura più rigida di 3mx2,5m.

. la terza è il semenzaio, dove far germogliare i semi dei vari ortaggi; sarà di dimensioni contenute, ipotiziamo una struttura tipo armadio di 1mx1m.


Come detto prima ho intenzione di usare Arduino per controllare e monitorare le condizioni ambientali, parliamo di temperatura e umidità, ma in che modo:

La serra dei pomodori non mi interessa controllare ma solo monitorare, infatti posizionerò 2 sensori tipo DHT11 per monitorare le temperature e, nel caso di anomalie agire "manualmente".

la serra dei peperoncini invece necessita anche un controllo, infatti le temperature e umidita monitorate da un solo DHT11, verranno influenzate da :

. un aspiratore per quando le temperature saliranno sopra il limite massimo
. una stufetta per scaldare quando le temperature scenderanno sotto una determinata temperatura
. un'umidificatore se l'umidità è insufficiente, oppure l'opposto con un deumidificatore

stesso discorso per il semenzaio, sicuramente gli apparati elettrici utilizzati saranno più piccoli.....

Un discorso a parte va fatto per l'irrigazione; verra sempre monitorata da Arduino che, in caso di necessita, azionerà una pompa che irrigherà le piante. L'acqua di irrigazione è in una vasca, la temperatura verra monitorata da un DS18B20 che azionerà una serpentina in caso di basa temperature.


. serra pomodori piu grande con : 2 dht11 + 1 ds18b20
. serra peperoncini piu piccola con : 1 dht11 + 1 ds18b20
. semenzaio con : 1 dht11 + 1 ds18b20

Nn è previsto l'uso di un lcd in quanto verra creata una pagina di controllo e monitoraggio via web.... con calma....


3Serre.doc => per poterlo visionare sul browser senza scaricare all'ultima versione aggiornata


***************************************


3Serre.ino   -    inizio

3Serre_1.ino    -    corretto accensioni e spegnimenti relè    => grazie stefa24

3Serre_2.ino   -    i primi collegamenti

3Serre_3.ino   -    risolto problemi con i ds18b20

-d0b-

.... non posso rispondermi da solo! dai date un occhiatina e ditemi qualcosa

      Grazie

stefa24

ciao
sono solo un appassionato e ho solo dato una occhiata, , monta il tutto e testa, possiamo darti tutto l'aiuto se sottoponi il/i problemi che incontrerai, hai già visto gli altri post di questo forum, questi progetti sono già stati affrontati
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew

-d0b-

verissimo quello che dici

.  aiuto sicuramente qua ne trovi
.  argomento piu volte trattato

quello che spero di trovare qui è un confronto... e sopratutto capire se l'abbozzo di scketch è indirizzato sulla strada giusta....

ad esempio non sono molto sicuro della parte riguardante l'irrigazione... chiaramente realizzandolo e testandolo capirò, ma non sarebbe il caso di inserire qualche ritardo ovvero un delay?

oppure inserire un codice del genere per mettere in sicurezza il relè =>
Code: [Select]
   // Altrimenti se il sensore funziona ma la temperatura interna è uguale o maggiore di 28 °C
  // spegni il relé per sicurezza.
  // Questo codice previene eventuali problemi se ci fossero interferenze sul button pad
  // che modificano i setpoints del termostato alzando troppo la temperatura.
  else if (tin >= temperaturadisicurezza) {         
    digitalWrite(SSR, LOW);             // Set the SSR OFF
    statusSSR = 0;
  }


oppure postare qualcosa di gia fatto da cui scoppiazzare  ::)

uwefed

Non Ti aiuto perché in precedenza hai dimostrato di non avere conoscenze per progettare qualcosa con i 230V e che non hai ascoltato i suggerimenti che ti abbiamo dati ritornado sempre con la stessa cosa che Ti avevamo giá detto che non andava bene.
Lascia stare, Ti fai solo male e arrostisci Le piante delle serre se non fai un corto a causa del acqua di irigazione.

Ciao Uwe


-d0b-

 :D evvero sono al quanto ignorante....  Però non è vero che non ascolto i consigni, infatti ho deciso di acquistare dei relè allo stato solido... Per  restare in questa di discussione spero che tu possa cambiare idea e , sopratutto, che le persone  non si faccia no influenzare dal tuo giudizio

stefa24

questa parte di codice e simili
Code: [Select]
digitalWrite(relay13, HIGH); // accensione serpentina h2o peperoncini
 digitalWrite(relay13, LOW);} // spegnimento serpentina h2o peperoncini

accendi e spegni in modo praticamente istantaneo non sono sicuro che si riesca a ottenere il riscaldamento, prova a studiarti il pwm, inoltre per fare una cosa precisa dovresti introdurre i PID
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew

-d0b-

#7
Dec 07, 2014, 12:31 pm Last Edit: Dec 07, 2014, 12:37 pm by -d0b-
correzioe fatta ... grazie stefa...


prima

Code: [Select]
// ************************************************************************************************
// Operazioni dei Relè
// ************************************************************************************************          

//////////////////////////// Temperature Aria + Umidità  
  //////// pomodori
  if (((t1+t2)/2) >= tMAXf) {
    digitalWrite(relay1, HIGH);   // accensione aspiratore
    digitalWrite(relay1, LOW);}   // spegnimento aspiratore
    
  if (((t1+t2)/2) <= tMINf) {
    digitalWrite(relay2, HIGH);   // accensione stufa
    digitalWrite(relay2, LOW);}   // spegnimento stufa    

   if (((h1+h2)/2) <= hMINf) {
    digitalWrite(relay3, HIGH);   // accensione umidificatore
    digitalWrite(relay3, LOW);}   // spegmiento umidificatore
      
  //////// peperoncini
  if (t3 >= tMAXm) {
    digitalWrite(relay6, HIGH);   // accensione aspiratore
    digitalWrite(relay6, LOW);}   // spegnimento aspiratore
    
  if (t3 <= tMINm) {
    digitalWrite(relay7, HIGH);   // accensione stufa
    digitalWrite(relay7, LOW);}   // spegnimento stufa    

   if (h3 <= hMINm) {
    digitalWrite(relay8, HIGH);   // accensione umidificatore
    digitalWrite(relay8, LOW);}   // spegmiento umidificatore
    
  //////// semenzaio
  if (t4 >= tMAXr) {
    digitalWrite(relay7, HIGH);   // accensione aspiratore
    digitalWrite(relay7, LOW);}   // spegnimento aspiratore
    
  if (t4 <= tMINr) {
    digitalWrite(relay8, HIGH);   // accensione stufa
    digitalWrite(relay8, LOW);}   // spegnimento stufa    

   if (h4 <= hMINr) {
    digitalWrite(relay9, HIGH);   // accensione umidificatore
    digitalWrite(relay9, LOW);}   // spegmiento umidificatore
    
////////////////////////////// Irrigazione

 if (SoilHf < 60) {     // imposto variabile sensore umidita terreno pomodori
 digitalWrite(relay5, LOW);    // spegnimento pompa h2o pomodori
 delay(8000);
 digitalWrite(relay5, HIGH);}   // accensione pompa h2o pomodori

 if (SoilHm < 60) {     // imposto variabile sensore umidita terreno peperoncini
 digitalWrite(relay9, LOW);    // spegnimento pompa h2o peperoncini
 delay(8000);
 digitalWrite(relay9, HIGH);}   // accensione pompa h2o peperoncini

////// riscaldamento h2o

 if (th2of < 18) {         ///imposto la temperatura minima h2o pomodori
    digitalWrite(relay4, HIGH);   // accensione serpentina h2o pomodori
    digitalWrite(relay4, LOW);}  // spegnimento serpentina h2o pomodori
    
  if (th2om < 20) {         ///imposto la temperatura minima h2o peperoncini
    digitalWrite(relay13, HIGH);    // accensione serpentina h2o peperoncini
    digitalWrite(relay13, LOW);}   // spegnimento serpentina h2o peperoncini  

   if (th2or < 20) {         ///imposto la temperatura minima h2o semenzaio
    digitalWrite(relay14, HIGH);     // accensione serpentina h2o semenzaio
    digitalWrite(relay14, LOW);}     // spegmiento serpentina h2o semenzaio


dopo :

Code: [Select]
 // ************************************************************************************************
// Operazioni dei Relè
// ************************************************************************************************          

//////////////////////////// Temperature Aria + Umidità  
  //////// pomodori
  if (((t1+t2)/2) >= tMAXf) {
    digitalWrite(relay1, HIGH);   // accensione aspiratore
  if (((t1+t2)/2) <= tMAXf) {    
    digitalWrite(relay1, LOW);}   // spegnimento aspiratore
    
  if (((t1+t2)/2) <= tMINf) {
    digitalWrite(relay2, HIGH);   // accensione stufa
  if (((t1+t2)/2) >= tMINf) {    
    digitalWrite(relay2, LOW);}   // spegnimento stufa    

   if (((h1+h2)/2) <= hMINf) {
    digitalWrite(relay3, HIGH);   // accensione umidificatore
   if (((h1+h2)/2) >= hMINf) {
    digitalWrite(relay3, LOW);}   // spegmiento umidificatore
      
  //////// peperoncini
  if (t3 >= tMAXm) {
    digitalWrite(relay6, HIGH);   // accensione aspiratore  
  if (t3 <= tMAXm) {
    digitalWrite(relay6, LOW);}   // spegnimento aspiratore
    
  if (t3 <= tMINm) {
    digitalWrite(relay7, HIGH);   // accensione stufa
  if (t3 >= tMINm) {  
    digitalWrite(relay7, LOW);}   // spegnimento stufa    

   if (h3 <= hMINm) {
    digitalWrite(relay8, HIGH);   // accensione umidificatore
   if (h3 >= hMINm) {    
    digitalWrite(relay8, LOW);}   // spegmiento umidificatore
    
  //////// semenzaio
  if (t4 >= tMAXr) {
    digitalWrite(relay7, HIGH);   // accensione aspiratore
  if (t4 <= tMAXr) {    
    digitalWrite(relay7, LOW);}   // spegnimento aspiratore
    
  if (t4 <= tMINr) {
    digitalWrite(relay8, HIGH);   // accensione stufa
  if (t4 >= tMINr) {    
    digitalWrite(relay8, LOW);}   // spegnimento stufa    

   if (h4 <= hMINr) {
    digitalWrite(relay9, HIGH);   // accensione umidificatore
   if (h4 >= hMINr) {    
    digitalWrite(relay9, LOW);}   // spegmiento umidificatore
    
////////////////////////////// Irrigazione

 if (SoilHf < 60) {     // imposto variabile sensore umidita terreno pomodori
 digitalWrite(relay5, HIGH);    // accensione pompa h2o pomodori
 delay(8000);          // imposto tempo irrigazione dopo il quale la pompa si spegne..... esempio => pompa da 1000 l/h  ...  pianta bisogno 2l h2o ...  1 minuto pompa = 0,25 l ... apertura 8 minuti = 2l
 digitalWrite(relay5, LOW);}   // spegnimento pompa h2o pomodori

 if (SoilHm < 60) {     // imposto variabile sensore umidita terreno peperoncini
 digitalWrite(relay9, HIGH);    // accensione pompa h2o peperoncini
 delay(10000);
 digitalWrite(relay9, LOW);}   // spegnimento pompa h2o peperoncini

////////////////////////////// Riscaldamento h2o

 if (th2of < 18) {         ///imposto la temperatura minima h2o pomodori
    digitalWrite(relay4, HIGH);   // accensione serpentina h2o pomodori
 if (th2of > 20) {         ///imposto la temperatura massima h2o pomodori    
    digitalWrite(relay4, LOW);}  // spegnimento serpentina h2o pomodori
    
 if (th2om < 20) {         ///imposto la temperatura minima h2o peperoncini
    digitalWrite(relay13, HIGH);    // accensione serpentina h2o peperoncini
 if (th2om > 22) {         ///imposto la temperatura massima h2o peperoncini    
    digitalWrite(relay13, LOW);}   // spegnimento serpentina h2o peperoncini  

 if (th2or < 20) {         ///imposto la temperatura minima h2o semenzaio  
    digitalWrite(relay14, HIGH);     // accensione serpentina h2o semenzaio  
 if (th2or > 22) {         ///imposto la temperatura massima h2o semenzaio
   digitalWrite(relay14, LOW);}     // spegmiento serpentina h2o semenzaio
  


ora penso sia corretto

Per l'irrigazione penso di far cosi:

Code: [Select]
 
////////////////////////////// Irrigazione

 if (SoilHf < 0) {     // imposto variabile sensore umidita terreno pomodori
 digitalWrite(relay5, HIGH);    // accensione pompa h2o pomodori
 delay(8000);          // imposto tempo irrigazione dopo il quale la pompa si spegne..... esempio => pompa da 1000 l/h  ...  pianta bisogno 2l h2o ...  1 minuto pompa = 0,25 l ... apertura 8 minuti = 2l
 digitalWrite(relay5, LOW);}   // spegnimento pompa h2o pomodori

 if (SoilHm < 0) {     // imposto variabile sensore umidita terreno peperoncini
 digitalWrite(relay9, HIGH);    // accensione pompa h2o peperoncini
 delay(10000);
 digitalWrite(relay9, LOW);}   // spegnimento pompa h2o peperoncini


Quando il sensore rivela umidita del tereno pari a zero... quindi secchissimo... parte la pompa che rimane accesa tot periodo... ad esempio pompa da 500l/h ... pompa in un minuto circa 8 litri quindi se la pianta ha bisogno di 2l ad irrigazione la tengo accesa 15 secondi ... è solo un esempio ... puo essere giusto il ragionamento?

stefa24

#8
Dec 07, 2014, 12:40 pm Last Edit: Dec 07, 2014, 12:48 pm by stefa24
Si il ragionamento è giusto, hai già uno schema se no inizia a farlo se non vuoi perderti, inoltre puoi iniziare a testare lo sketch facendo i collegamenti su bradboard NO 220V usando i led per simulare l'accensione dei rele, dei potenziometri per i sensori di umidità terreno, non ricordo cosa buttano fuori i dth e i ds ma penso che anche quelli siano simulabili, prima di passare ai collegamenti, soprattutto per la 220V.

Voglio ricordare che la 220V è pericolosa e che nessuno su questo forum si assume la responsabilità di quello che uno andrà a fare
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew

-d0b-

#9
Dec 07, 2014, 01:11 pm Last Edit: Dec 07, 2014, 01:49 pm by -d0b-
Si la 220 è pericolosa... da bocia sai quante scosse ho preso con il tagliaerba ahahahah per fortuna esisteva gia il salvavita hahahahahaha....

In sti giorni penserò anche ad uno schema... i collegamenti visto che non ho grandi esperienze in saldature, vorrei usare dei mammut da 2,5 mm


mentre per collegare i sensori umidita terra dei jack



mentre per i sensori dht e ds18b20 non saprei magari usare queste morsettier per audio... facili da attaccare e staccare.... il collegamento è piu facile quindi posso modificare il percorso del cavo sensore in maniera molto semplice adattandolo alle mie necessità ancora sconosciute... comunque sono graditi i consigli perchè non so se sia molto corretta la cosa...   :smiley-eek:


stefa24

prima lo schema, poi  provi i collegamenti con una breadboard, le puoi collegare insieme e fartela grande quanto vuoi e su quella come detto simuli lo sketch
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew

-d0b-

#11
Dec 08, 2014, 07:56 pm Last Edit: Dec 09, 2014, 08:35 am by -d0b-
eccoci... ho provato i collegamenti.. fritzz non lo uso.

ecco il risultato => lo sketch è questo 3Serre_2.ino

le foto:


queste scaricatele da dropbox

. vista dall'alto
. Vista led

ho alcuni problemi con i ds18b20.... poi li metto apposto.....

i led che non si accendono sono, da sinistra:

. quinto led  =>  pompa acqua pomodori non parte in quanto sensore assente
. nono led  =>  secondo sensore ds18b20b          !!!! non funzionante da rivedere !!!!!!
. decimo led  => pompa acqua peperoncino non parte in quanto sensore assente


mancano 2 sensori sono temp e umi del semenzaio ma manca proprio il sensore dht11...

suggerimenti please

stefa24

metterei dei potenziometri per regolare i valori min e max di umidità e temperatura per adattare i valori alle condizioni ottimali
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew

-d0b-

Quote
metterei dei potenziometri per regolare i valori min e max di umidità e temperatura per adattare i valori alle condizioni ottimali
 
...giusto consiglio... comunque vorrei evitare di montare i potenziometri, infatti terminato la messa a punto dello sketch base vorrei aggiungere un modulo wifi e creare una pagina in html che mi permetta di controllare e settare i valori ottimali  :-* questa è un idea, non so se sia possibile....


Quote
inoltre per fare una cosa precisa dovresti introdurre i PID 
Qua invece sto studiando, ho capito che la libreria PID serve per colmare eventuali imprecisioni dei sensori eccc eccc ... ma due dritte, magari un collegamento ad un'altra discussione oppure, 2 parole a riguardo del PID e di questo sketch magari con un esempio? grazie
 

stefa24

i pid non li ho ancor studiati, so che vengono usati per evitare oscillazioni intorno al valore di riferimento, ma forse nel tuo caso sono superflui
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew

Go Up