Cercasi Volontari Per Automazione Camera Fermentazione "Birra" Con Arduino

Bene visto che ho notato dal numero di visite del topic per Automazione cotta BirraDuino che qui abbiamo molti appassionati
della brassatura di Birra casalinga nella linea di voler automatizzare tutto il processo con poca spesa

Sono qui a chiedere se ci sono volontari per realizzare un software/firmware non so come sia più apropiaot chiamarlo e contestualmente HW
per automatizzare una camera di femrentazione che ovviamente oltre che per la birra può essere usata per altro :smiley:

Chi ha capacita di programmazione Arduino o di elettronica e vuole partecipare per dare una mano ben venga
IO data la mia incacapita di programmare mi do volontario per i test :wink:

La mia idea è:

Come hardware :

Sensore Audio che serve per monitorare il gorgogliamento durante la fermentazione
http://www.ebay.it/itm/1X-Sound-detection-sensor-module-sound-sensor-Intelligent-vehicle-for-arduino-/330824691323?pt=LH_DefaultDomain_0&hash=item4d06b02e7b
Volendo se ne puo usare anche uno ottico

Due Sensori Umidita Temenratura DHT11
http://www.ebay.it/itm/330828752668?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Inmancabile Lettore Scrittore SD per I Log e qui Usiamo una Schield LAN SD tipo la classica basata su W5100
http://www.ebay.it/itm/Ethernet-Shield-W5100-Micro-SD-Card-SlotFor-Arduino-2009-UNO-Mega-1280-2560-G6-/200946432597?pt=LH_DefaultDomain_0&hash=item2ec9573a55

Ovviamente come Cuore di tutto un Arduino Mega 2560

Come interfaccia per il mondo esterno un bel Lcd HD44780 20x4
Tipo questo http://www.ebay.it/itm/400448319287?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Ovviamente il Modulo RTC serve per avere un log affidabile con data ora e giorno esatti :smiley:
http://www.ebay.it/itm/200804974594?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

E un ACS712 current sensor module Cosi possiamo anche valutare quando ha consumato e ci è costato in soldini un ciclo di femrentazione :smiley:
http://www.ebay.it/itm/270977916829?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Per lo stadio di Potenza pilotaggio celle Peltier usare IRLB3034PBF HEXFET Power MOSFET TO-220
http://www.ebay.it/itm/261034379362?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
Oppure delle schede x motori già fatte tipo queste H-Bridge PWM
http://www.ebay.it/itm/230965079712?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649

La cosa che deve fare è :

Gestione con protocollo PID Temperatura
Con 4 uscite PWM e Due rele e un uscita Buzzer

Cosi strutturato selezione per gestione o con celle peltier quindi in caso gestione inversione polarita o separati in due moduli
in caso uno vuole gestire inversioen con due canali diversi e due sezioni nella camera

O gestione classica mista resistenza gestita in PWM e gruppo frigo gestito da rele e ovviamente gruppo ventole per il ricircolo aria

Gestito o in PWM velocita regolabile o da Rele

Per questo 4 canali PWM e Due canali Rele

La retroilluminazione del LCD appena si preme un Tasto come pulsanti userei il classico schema a 4 tasti come in BirraDuino "< > Ok Esc"

Il Log dovrebbe prendere:
I dati termentatura fermentazione inpostata umidita e temepratura rilevata interna ed eterna camera di femrnetazione e cadenza sonora del gorgogliamento.
Il Buzzer puo tornare utile come allarme se non riesce a seguire la temperatura impostata e Allarme Porta Aperta

Che ne dite è fattibile Ovviamente si farebbe una Schield semplice mappando solo i Pin necessari senza saldare tutti gli streep I/O non usati.

Per il gorgolio si pensa anche ad un analizzatore tipo ottico il massimo sarebbe se esiste un sensore di OG elettronico

Volendo si puo aggiungere per chi se la sente anche un sensore direttamente nel mosto uno tipo il classico DS18B20

Cosi da avere in Analisi Tem Umidita Interna esterna e del mosto quindi tre temeprature in analisi
Anche se in teoria quella interna e del mosto dovrebbero essere uguali ma in femrentazione lettura diretta sicuramente è meglio
ma non tutti se la sentono di mettere una sonda dentro il mosto io personalmente eviterei ma dato che di I/O ne abbiamo si puo provedere.

Allego anche una bozza di schema a blocchi che ho ipotizzato spero che sono risucto a spiegare quello che mi piacerebbe fare :smiley:

Ma se per iniziare già riusciamo a fargli fare quello che fa sto giocattolino per in gestione PWM sarebbe gia un ottimo Inizio :smiley:

http://www.ebay.it/itm/DC-12V-Temperature-Controller-of-Thermoelectric-Cooler-Peltier-/251351887469?pt=LH_DefaultDomain_0&hash=item3a85bd6e6d

Grazie

Grazie Savio per apertura del thread

mi presento rapidamente ..mi chiamo Davide sono un maker, un DIY enthuisast , un appassionato di tecnologia e smanetto con Arduino e similari...oltre che essere un Homebrewer da lunga data.
Sul forum di area birra con il nick Mysobry http://forum.areabirra.it/user/8346-mysobry/ contribuisco attivamente nella sezione auto costruzione su vari progetti e in particolare ho fatto una serie di esperienze con le celle di Peltier , ragione per cui mi sono proposto nel thread i questione per sviluppare questa parte.

Veniamo al tema in oggetto
Savio e' partito in 4 a illustrare dal punto di vista HW e di interfacce tutto quello che vorremmo mettere nel progetto ...provo a descrivere un po' di piu' la logica da implementare via SW , perlomeno per la parte di controllo temperatura facendo un riassunto delle varie puntate sul forum di areabirra
http://forum.areabirra.it/topic/15426-cercasi-volontari-per-automazione-camera-fermentazione-con-arduino/

di seguito uno schema a blocchi (parziale)

La logica di controllo PID dovrebbe generare un segnale proporzionale alla differenza tra set point e temperatura misurata in ingresso al blocco PWM che dovrebbe variare di conseguenza il duty cycle da 0 a 100% di un segnale ttl a una frequenza possibilmente regolabile.
Tale segnale dovrebbe pilotare il modulo di potenza h-bridge

In parallelo un analogo controllo si dovrebbe applicare a uno a piu' ventole in modo da avere una velocità di rotazione congrua con la potenza applicata. In questo caso il segnale PWM può pilotare direttamente un mosfet

1) come gestire inversione caldo freddo
i moduli di potenzaH-bridge (nello schema un modulo della Pollu) hanno un ingresso "direction" usato per invertire la rotazione del motore e quindi il flusso della corrente
tale ingresso dovrebbe essere pilotato dalla logica PID in qualche modo ovvero avvicinandosi set point il duty cycle dovrebbe ridursi a zero, cambiare stato del pin direction e poi aumentare di conseguenza duty cycle invertendo quindi da caldo a freddo
Immagino vada messa comunque qualche isteresi per evitare di far oscilare le celle da caldo a freddo in prossimità del set point

2) Frequenza del PWM
Nell'ipotesi di cui sopra la frequenza del PWM e' dalta direttamente da Arduino che genera il segnale. C'e' modo di controllare la frequenza del PWM. E' importante trovare frequenze giuste perche' efficienza delle celle e' legata a tale parametro (qualche centinaio di Hz massimo qualche Khz). La frequenza delle uscite PWM di arduino nativamente sulla AnalgWrite() dovrebbe essere di 490Hz per cui potrebbe andare bene ma inserire un parametro nel SW per la eventuale modifica in fase di test potrebbe essere importante

Infine ci sono moduli H-bridge che in realta' non sono pilotati direttamente dal segnale PWM ma hanno ingressi seriali e una logica di controllo dedicata. In tale caso il controller dovrebbe mandare tramite interfaccia seriale dei "comandi" al modulo h-bridge che genera il segnale PWM di controllo. Tipicamente la frequenza e' controllabile tramite comandi seriali.

vedi questo modulo della pololu

Ho quindi provato a lavorare un minimo sul codice e su un prototipo facendo queste due ipotesi
-Frequenza del PWM gestita dal controller (arduino)
-Inversione caldo freddo con un PIN high/low[/li][/list]

e mi sono scontrato con i primi problemi nel orgnizzare il SW

Sicuramente le librerie PID vanno adattate in quanto uscita delle librerie e' gia' un PWM ovvero un valore da dare in ingresso alla AnalogWrite ma per gestire termostato in una sola direzione (o caldo o freddo)

Occorre infatti definire a priori la "direction"
PID(&Input, &Output, &Setpoint, Kp, Ki, Kd, Direction)

raggiunto poi il set point mi aspetto che Output=0 (oppure 255) e quindi bisognerebbe reinizializzare il PID nella direzione opposta
in mezza a tutto cio' va inserito una isteresi nei pressi del set point onde evitare di oscillare direct/reverse
di fatto e' come se avessimo due PID che lavorano in direzione opposta , oppure due loop innestati: il primo che decide caldo/freddo (e applica uscita a digitalWrite()) il secondo che calcola output in funzione del algoritmo PID (e applica uscita alla AnalogWrite())

Nel caso di controllo con frigo e resistenza basta l'uscita digitale

oltre al segnale PWM e alla DIR occorre capire anche come gestire il BRAKE

la combinazione DIR e BRAKE in high/low ha vari effetti. In particolare tale PIN e' usato per arresatre il motore riducendo effetto inerzia..non ho idea effetto su una cella di Peltier come carico.

Bisogna quindi decidere se all'inversione di polarita' semplicemente modificare DIR da HIGH a LOW oppure fare un passaggio intermedio con BRAKE a HIGH.

Il controllo monodirezionale tanto per testare le librerie PID con il seguente set up ha dato risultati stabili usando una ventola come semplice oggetto da controllare (SENZA cella)
-Arduino Uno
-Motor Shield con due uscite H-bridge
-Ventola DC 12v (e' piu' facile vedere senso di rotazione del motore che caldo/freddo sulla cella)
-Sensore LM35 di temperatura

la lentezza di convergenza e' da ricercarsi nell setting delle tre magiche costanti Kp,Ki, Kd inizializzate come segue
myPID(&Input, &Output, &Setpoint,2,5,1, REVERSE);

 /*
 
 Il programma misura la temperatura tramite il sensore LM35 e lo usa come ingresso 
 al PID
 L'uscita del PID pilota la motor Shield (H-Bridge)
 
 Vengono utilizzati i seguenti pin per LM35
 Pin +5V         -> Alimentazione
 Pin GND         -> Alimentazione
 Pin Analogico 3 -> lettura LM35
 
 
 La scala dell'LM 35 è T = K * V
 dove:
 K = 100 [°C/V] coeff.angolare della scala
 V = tensione generata dall'LM35 (10mV/°C)
 T = temperatura in °C
 
 
/* Numero del pin analogico sul quale è collegato l'LM35  */
#define LM35_pin 3
 
#include <PID_v1.h>
 
/* Definizioni globali */
float vref = 1.1;
double Setpoint, Input, Output;
                    // Vref dell'ADC (quell'interno è di 1,1V)
const int 
PWM_A   = 3,
DIR_A   = 12,
BRAKE_A = 9,
SNS_A   = A0;
 
 
/* Impostazione dell'hardware */
 
//Inizializzazione del PID, impostazione a DIRECT (stufa)
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);
 
void setup() 
{
  analogReference( INTERNAL );  // per l'ADC usiamo il Vref interno da 1,1V (migliore precisione)
  Input = analogRead( LM35_pin );       // Prima lettura "a vuoto" (serve per l'assestamento dell'ADC)
  Setpoint = 29;                    //definizione del set point
  Serial.begin(9600);
  Serial.println("Temperatura    PIDout    Corrente\n");
  
  //turn the PID on
  myPID.SetMode(AUTOMATIC);
  
  // Configurazione PIN direzione e freno
  pinMode(BRAKE_A, OUTPUT);  // Brake pin on channel A
  pinMode(DIR_A, OUTPUT);    // Direction pin on channel A
 }
 
void loop()
{
  float temp = readTemp();  // legge il valore della temperatura e la memorizza nella var. temp.
  Input = temp;              //temperatura passata in ingresso a PID
  myPID.Compute(); 
  
  digitalWrite(BRAKE_A, LOW);  // freno disabilitato
  digitalWrite(DIR_A, HIGH);   // rotazione in avanti
  
  analogWrite(PWM_A, Output); //PWM con segnale in uscita pari a uscita PID
  
  Serial.print( temp);    // invia i valori alla seriale
  Serial.print("\t");
  Serial.print(Output);
  Serial.print("\t");
  Serial.print(analogRead(SNS_A));
  Serial.print("\n");
  
  delay (500);
}
 
/* Legge la temperatura */
float readTemp()
{
  float temp = 0.0;       // valore convertito in temperatura (°C)
  int val = 0;            // valore quantizzato dall'ADC [0..1023]
  int nread = 5;          // numero di letture (da 5 a )
  float somma = 0.0;      // somma delle letture
  for (int i=0; i<nread; i++)
  {
    val = analogRead( LM35_pin );              // legge il dato della tensione sul pin 'LM35_pin' 
    temp = ( 100.0 *  vref * val ) / 1024.0;   // lo converte in °C
    somma += temp;                             // aggiunge alla somma delle temperature lette   
  }   
  return ( somma / nread );                     // ne calcola il valore medio 
}

ho provato negli scorsi giorni a collegare all'uscita della motor shield effettivamente una cella (inserita in un sandwitch con due dissipatori) ma non ho avuto tempo di fare le verifiche di stabilita' del controllo MONODIREZIONALE

Fatto cio' per avere un nucleo stabile resta da risolvere il mio dilemma...come gestisco il controllo BIDIREZIONALE ??
qualcuno riesce a darmi una idea come gestire i due PID o i due loop caldo / freddo

grazie
Davide

saviothecnic:
Bene visto che ho notato dal numero di visite del topic per Automazione cotta BirraDuino che qui abbiamo molti appassionati
della brassatura di Birra casalinga nella linea di voler automatizzare tutto il processo con poca spesa

Io mi offro volontario per il beta testing della birra prodotta :grin:

astrobeed:
Io mi offro volontario per il beta testing della birra prodotta :grin:

Marco Fa il Bravo un guru come te dacci una Mano seria e ti faccio una cotta di Birra a tuo Gusto :wink:
Altro che Vine Cup :grin:

astrobeed:

saviothecnic:
Bene visto che ho notato dal numero di visite del topic per Automazione cotta BirraDuino che qui abbiamo molti appassionati
della brassatura di Birra casalinga nella linea di voler automatizzare tutto il processo con poca spesa

Io mi offro volontario per il beta testing della birra prodotta :grin:

penso che se il progetto ha successo e il SW gira bene la riconoscenza della comunità' degli homebrewer sara' tale che ti verrà' cirrosi :wink:

Torno a essere serio ..si fa per dire e vi illustro attuale set up su cui sto sviluppando e debugando

-Arduino UNO
-Motor Shield
-Sensore temperatura LM35 inserito nell'aletta di uno dei due dissipatori
-Cella da 40W inserita in mezzo a due disspatori dotati di ventola
-Alimentatore 5A 12V (pilota la motor shield e le ventole)

per ora le ventole sono connesse tutte e due al +12V e girano al massimo ..ci preoccupiamo dopo del controllo di velocità in funzione della temperatura (altro punto open visto che le ventole in questione mal digeriscono il segnale PWM di arduino...in questo caso a frequenza troppo bassa...e sono quindi rumorose a bassi giri..meglio controllarle in tensione 0-12)

siccome la cella assorbe piu' di 2A che e' il max che eroga uscita di uno dei due canali H-bridge per raddoppiare potenza ho semplicemente messo in parallelo elettricamente uscite di potenza e ingressi (PWM 1 con 2 , enable 1 con 2, BRAKE 1 con 2) come da data sheet del L298.
Si puo' fare anche SW replicando i comandi ma piu' "pericoloso" viste comunque le latenze nella esecuzione dei comandi.

Riapplicato il PID di cui sopra in modo unidirezionale, ovvero in modalita' "frigo", e ho qualche problema di stabillta'....il sistema partendo da T ambiente sembra raggiungere set point (fissato a 10 gradi) riducendo via via potenza applicata alla cella ma poi diverge e torna a crescere fino ad applicare il max nella direzione del freddo. Non credo sia un problema particolare ma solo di tuning costanti P,I,D

Se qualcuno mi imbastisce un codice per controllare il PIN DIRECTION e gestire inversione caldo/freddo ho tutto il set up per provarlo e vedere se e' stabile !!

di seguito il controllo unidrezionale in modalità frigo

/*

 Il programma misura la temperatura tramite il sensore LM35 e lo usa come ingresso 
 al PID
 L'uscita del PID pilota la motor Shield (H-Bridge)connessa a una cella di peltier
 
 Vengono utilizzati i seguenti pin per LM35
 Pin +5V         -> Alimentazione
 Pin GND         -> Alimentazione
 Pin Analogico 3 -> lettura LM35
 
 
 La scala dell'LM 35 è T = K * V
 dove:
 K = 100 [°C/V] coeff.angolare della scala
 V = tensione generata dall'LM35 (10mV/°C)
 T = temperatura in °C
 
 
/* Numero del pin analogico sul quale è collegato l'LM35  */
#define LM35_pin 3

#include <PID_v1.h>

/* Definizioni globali */
float vref = 1.1;
double Setpoint, Input, Output;
	                     // Vref dell'ADC (quell'interno è di 1,1V)
const int 
PWM_A   = 3,
DIR_A   = 12,
BRAKE_A = 9,
SNS_A   = A0;


/* Impostazione dell'hardware */

//Inizializzazione del PID, impostazione a DIRECT (stufa)
PID myPID(&Input, &Output, &Setpoint,2,5,1, REVERSE);

void setup() 
{
  analogReference( INTERNAL );  // per l'ADC usiamo il Vref interno da 1,1V (migliore precisione)
  Input = analogRead( LM35_pin );       // Prima lettura "a vuoto" (serve per l'assestamento dell'ADC)
  Setpoint = 19;                    //definizione del set point
  Serial.begin(9600);
  Serial.println("Temperatura    PIDout    Corrente\n");
  
  //turn the PID on
  myPID.SetMode(AUTOMATIC);
  
  // Configurazione PIN direzione e freno
  pinMode(BRAKE_A, OUTPUT);  // Brake pin on channel A
  pinMode(DIR_A, OUTPUT);    // Direction pin on channel A
 }

void loop()
{
  float temp = readTemp();  // legge il valore della temperatura e la memorizza nella var. temp.
  Input = temp;              //temperatura passata in ingresso a PID
  myPID.Compute(); 
  
  digitalWrite(BRAKE_A, LOW);  // freno disabilitato
  digitalWrite(DIR_A, HIGH);   // modalita' FRIGO
  
  analogWrite(PWM_A, Output); //PWM con segnale in uscita pari a uscita PID
  
  Serial.print( temp);    // invia i valori alla seriale
  Serial.print("\t");
  Serial.print((Output/255*100));
  Serial.print("\t");
  Serial.print(analogRead(SNS_A));
  Serial.print("\n");
  
  delay (3000);
}

/* Legge la temperatura */
float readTemp()
{
  float temp = 0.0;       // valore convertito in temperatura (°C)
  int val = 0;            // valore quantizzato dall'ADC [0..1023]
  int nread = 5;          // numero di letture (da 5 a 8)
  float somma = 0.0;      // somma delle letture
  for (int i=0; i<nread; i++)
  {
    val = analogRead( LM35_pin );              // legge il dato della tensione sul pin 'LM35_pin' 
    temp = ( 100.0 *  vref * val ) / 1024.0;   // lo converte in °C
    somma += temp;                             // aggiunge alla somma delle temperature lette   
  }   
  return ( somma / nread );                     // ne calcola il valore medio 
}

...ancora un commento su approccio e test pro sviluppo

ovviamente messa a punto la catena di controllo fondamentale PID-PWM-H-Bridge per la gestione termostata e stabile della parte termica si costruisce intorno al "core" l'insieme delle funzioni descritte da Savio

-uscite a rele (gruppo frigo + resistenza)
-display
-log dei dati
-real time clock
-gorgogliatore
-buzzer

etc etc

arzaman:
ovviamente messa a punto la catena di controllo fondamentale PID-PWM-H-Bridge per la gestione termostata e stabile della parte termica si costruisce intorno al "core" l'insieme delle funzioni descritte da Savio etc etc

Be Davide l'avevo premesso già io nella frase finale ad inizio TOPIC

"Ma se per iniziare già riusciamo a fargli fare quello che fa sto giocattolino però in gestione PWM sarebbe gia un ottimo Inizio"

Quindi concordo con TE un passo per volta "Iniziamo a fare un termoregolatore PID PWM per Celle Peltier con Arduino"

Quindi concordo con il tuo pensiero Iniziamo a realizzare un termoregolatore per celle peltier
che le gestisca PWM sia La cella che le Ventole Dissipatrici e variazione in PID per inversione polarita
quindi caldo freddo della peltier

Poi magari si passa a qualche suggerito per autocostruirsi la perte HW della potenza PWM PID della Peltier
e poi man mano si aggiungono tutte le altre chicche che ho suggerito ad inizio topic :wink:
Magari qualche utente del forum ha gia qualche pezzo si soft fatto per le altre opzioni e basterà solo aggiungerlo :smiley:

Ovviamente Ok usare Arduino UNO R3 per questa parte Iniziale "TermoreGolatore" ma poi date le varie Funzioni aggiuntive
è obligatorio passare al Arduino Mega 2650 come ho suggerito ad inizio Topic

Grazie

saviothecnic:

arzaman:
ovviamente messa a punto la catena di controllo fondamentale PID-PWM-H-Bridge per la gestione termostata e stabile della parte termica si costruisce intorno al "core" l'insieme delle funzioni descritte da Savio etc etc

Quindi concordo con il tuo pensiero Iniziamo a realizzare un termoregolatore per celle peltier
che le gestisca PWM sia La cella che le Ventole Dissipatrici e variazione in PID per inversione polarita
quindi caldo freddo della peltier

Savio come si diceva a naja..allineati e coperti !!
e ora non resta che aspettare qualche dritta dagli esperti SW e di Arduino del forum...se no finisce che ce la cantiamo e suoniamo noi come sul forum della birra XD XD

E si attendiamo i Guru intanto Astrobeed fa il bravo tiraci giu uno schemino per lilotare 4 celle con relativo ingresos inversione
con IRLB3034PBF cosi io giocherello un po con la parte HW per la parte Soft inutile dare info a me io giocherello sulla HW :stuck_out_tongue:
Ma ovviamnete servono più dritte software per Amico Brassatore Davide :smiley:

Per Davide ovviamente hai gia fatto un cerca nel forum in articoli tipo questi

http://forum.arduino.cc/index.php?topic=162237.0

http://forum.arduino.cc/index.php?action=dlattach;topic=189155.0;attach=54756;image

http://forum.arduino.cc/index.php?topic=181060.0

http://forum.arduino.cc/index.php?topic=180177.0

Da appassionato di birra... mi iscrivo.
Burp!

Come ho già affermato in privato a Savio, non conosco bene il processo di fermentazione, ma quello che vorrei capire è se è indispensabile un PID per il controllo della temperatura e se è veramente necessario usare un sistema di riscaldamento/raffreddamento.

Il dimensionamento della cella di Peltier (40W possono essere sufficienti per una piccola quantità, ma lo saranno per quantità maggiori di birra?) è da valutare con attenzione: in alternativa è anche possibile pensare di usare un piccolo compressore frigorifero (tipo quelli usati cui camper) che ha un grado di efficienza molto più elevato.

Se mi indicate un sito in cui si parli in dettaglio del processo, posso dare una mano.

cyberhs:
Come ho già affermato in privato a Savio, non conosco bene il processo di fermentazione, ma quello che vorrei capire è se è indispensabile un PID per il controllo della temperatura e se è veramente necessario usare un sistema di riscaldamento/raffreddamento.

Il dimensionamento della cella di Peltier (40W possono essere sufficienti per una piccola quantità, ma lo saranno per quantità maggiori di birra?) è da valutare con attenzione: in alternativa è anche possibile pensare di usare un piccolo compressore frigorifero (tipo quelli usati cui camper) che ha un grado di efficienza molto più elevato.

Se mi indicate un sito in cui si parli in dettaglio del processo, posso dare una mano.

Ciao cyberhs grazie per il supporto ! :slight_smile:

come suggerimento prescinderei dallo specifico processo di fermentazione (almeno in questa fase iniziale) ..se poi vuoi dettagli no problem ma il processo che vogliamo realizzare e' abbastanza semplice e definibile in questo modo

realizzare una camera termostatata che mantenga la temperatura impostata costante indipendentemente dalle variabili esterne (temperatura ambiente) e interne (la fermentazione produce calore)
Come requisito termico aggiuntivo "nice to have" si vuole effettuare la gestione nel tempo del profilo di temperatura (ramp/soak) ovvero variare nel tempo il set point con opportuni profili

se poi ci metto la birra a fermentare, le uova a incubare, lo yogurt o altro direi che poco importa...importante e' mantenere temperatura stabile rispetto al set point

questo dovrebbe rispondere alle tue domande
PID direi di si...il controllo deve essere preciso e stabile. Le grandezze termodinamiche in gioco sono lentamente varianti e in range limitati...la temperatura ambiente magari varia giorno/notte di qualche grado. Oppure varia estate (in cui devo raffreddare) o inverno (in cui devo riscaldare). L'energia prodotta in fermentazione da dissipare e' piccola.
Questo tipo di processo "lento" aiuta in quanto non c'e' necessita' di inseguire grandi variazioni termiche in poco tempo ...se temperatura va a regime in qualche ora e' ok ...e quindi non e' necessaria molta potenza.

I range di temperatura target ipotizzabili sono da 10 a 25 gradi (dubito di poter "lagherizzare" con le celle ovvero andare a 2-3 gradi) con temperature esterne di una cantina o appartamento diciamo...5-25 gradi.

Inversione caldo/freddo ...direi di si, anche se credo per molti l'applicazione e' prevalentemente FRIGO (temperatura ambiente nelle case di solito > temperatura fermentazione) pero' il bello di Arduino e delle celle (ma anche nella opzione firgo + resistenza) e' proprio la possibilita' di avere sia caldo che freddo (se no basta comune firgo e termoregolatore :D). Inoltre potrebbe esserci un requisito di usare cella come camera calda per la rifermentazione , fase successiva all'imbottigliamento dove le temperature sono intorno ai 25 gradi

sul tema celle , efficienza, potenza ...c'e' discussione infinita...e ci sono pro e contro rispetto all'approccio compressore+ resistenza. La nostra idea e' di avere tutte e due le opzioni sulla shield. Il tema di avere un controllo PID piu' h-bridge e' invariante al tipo di gruppo termico

solo una ultima nota
il set up che vi ho illustrato e' solo "sperimentale" e di prototipazione giusto un mini-sistema per provare PID+PWM+ H-bridge e retroazione con sensore il tutto...per capire se e' stabile e come fare il doppio controllo con inversione.

Il sistema finale ognuno se lo crea a suo piacere...e se vai sul forum della birra vedrai che abbiamo molta fantasia !

Davide

Grazie Cyberhs per l' aiuto proposto che sicuramente ci sarà utilissimo :smiley:

:Edit Ho notato che ho scritto in contemporanea a Davide quindi qualcosa si ripete nella mia discussione sotto :stuck_out_tongue:

Intanto ti premetto che ci sono vari modi di realzizare una camera di fermentazione

Il primo è come ho fatto io in questo modo modificando un frigo pilotando alternativamente compressore o resistenza
https://plus.google.com/photos/117096022619927896725/albums/5718015302058914513?banner=pwa

Conta che nella fermentazione ci sono anche birre sorpatutto se si vuole farle in stagioni diverse che vanno
lagerizzate ovvero Temepratura sui 5 8°C oppure l' abbattimento prima di imbottigliare 24h a 3°C
La fermentazione puo essere bassa o alta quindi lieviti che lavorano bene a 24 28°C e lieviti che lavorano bene a 8 16°C
Tutto dipende dal tipo di birra che vuoi fare :smiley:

Quindi SI serve un sistema che pilota sia caldo che freddo

Per chi ha poco spazio un altro modo di gestire la camera di fermentazione è come ha datto Davide

Ovvero inserire nel femrentatore una serpentina e far girare al suo interno un liquido che passando per uno scambiatore
a celle peltier per scambio diretto essendo immersa la serpentina Inox nel mosto termoregola la temepratura
della fermentazione.

Questo ha il vantaggio di fare poco rumore ottimo per molti che non avendo spazio fanno la fermentazione
magari proprio nella loro cameredda da letto o nel angoletto in salone siamo parlando smepre di brassatori casalinghi.
Non produttori industriali di Birra quindi è normale trovare queste situazioni.

E quindi un compresosre che parte di notte puo dar fastidio :stuck_out_tongue: Oltre il fatot che usare le celle rende il tutto molto compatto.
Un unico elemento per caldo e freddo.

Ma il progetto come da topic iniziale vuole nascere come modulo unico che abbia sia la possibilità
di comandare un gruppo frigo classico Quindi resitezna e compressore o un più silenzioso e compatto gruppo a celle peltier.

Ovviamente in entrambi i casi quello che manca rispetto a prendere il termoregolatore tipo quello che ho Linkato
e che adesso uso è oltre ad avere un controllo più fine del tutto di poter dataloggare il tutto
Per avere un grafico del andamento temperatura/tempo cosi da valutare a fine fermentazione
se tutto il processo è stato lineare come da programma.

Spesso una fermentazioen va male e non si sa se è per colta della temepratura instabile o altri fattori
e dataloggare questo fa comodo :wink:

Mentre dal lato termoregolatore per celle peltier ci sta poco in giro
E quel poco che ci sta o sono cose grezze comandi secchi a relè on/off niente gestione ventole di ricircolo ecc ecc
E per cose piu fini in pwm chiedono un bel po di soldini senza manco fare quello che ci serve :frowning:

Ecco due link delle realizzazioni di Davide che appunto ha scelto la soluzione Peltier
soluzione che anche io vorrei adottare dato che realizzare un cassone per il troncoconico da 30lt
che è proprio lo stesso che usa lui non è il massimo :smiley:

http://arzaman.com/wordpress/?p=805

http://forum.areabirra.it/topic/14038-nuovo-fermentatore-controllato-in-temperatura/

Si nota come per realizzare il tutto ha dovuto adattare controller per acquari o rafreddamento pc
e varie schede adattate tra loro che hanno un bel costo solo il controller per acquari sta oltre 100€
Quando un Mega costa la meta e come potenzialita credo che non se lo vede prorpio ]:smiley:

Grazie

Ho buttato giù uno schema relativo alla cella Peltier.

Al posto del ponte H, ho preferito usare un più semplice relè a due scambi.

Cosa ne pensate?

Interessante. :grin:

Sempre a proposito della cella Peltier, poiché la sua efficienza si basa su un'ottima trasmissione del calore o del freddo, bisognerebbe adottare sia sul lato caldo che sul lato freddo di un sistema a liquido, cioè qualcosa di simile ai dissipatori usati per i microprocessori (dissipatore cavo, serbatoio liquido refrigerante, pompa) collegato ad una serpentina immersa nel fermentatore.

Ecco che qui subentra un problema: bisognerebbe anche adottare un valvola a tre vie per commutare il flusso freddo/caldo nella serpentina.

Per cui propongo una soluzione intermedia: usare la cella solo per generare il freddo ed usare un semplice riscaldatore ad immersione per riscaldare il composto.

Ciao l'idea di usare un relè DPDT doppio polo e doppio contatto è sicuramente buona, semplice ed economica ma vanifica uno dei vantaggi principali dell'uso delle celle di peltier ovvero quello di poter essere controllate linearmente in potenza da 0 al 100% e quindi di poter eseguire un controllo molto preciso e raggiunto il set point di ridurre al minimo il consumo

L'ultilizzo di un controllo on off con rele meglio si adatta poi alla soluzione gruppo frigo + resistenza faccendo attenzione a mettere le opportune isteresi. Commutare on off una cella o peggio ancora vicino al set point invertire brutalmente caldo freddo e' distruttivo per le celle.

il ponte di h ha costi contenuti e parecchi vantaggi per cui per le celle secondo me e' componente essenziale, la soluzione DPDT la vedo per frigo+ resistenza

la soluzione di controllo HW non sposta tuttavia il tema di come gestire il SW e l'algoritmo del doppio PID caldo/freddo (commutare un rele' o il PIN direzione del h-bridge e' identico) su cui sono ancora arenato.... :frowning: :frowning:

Davide

cyberhs:
Ecco che qui subentra un problema: bisognerebbe anche adottare un valvola a tre vie per commutare il flusso freddo/caldo nella serpentina.

Mumble...no ti seguo

provo a ricapitolare il funzionamento della parte "termica" e cosa dovrebbe fare il sistema di controllo.

La souzione con le celle di peltier puo' essere realizzata in qualunque modo...scambio aria - aria, scambio aria - acqua o addirittura acqua - acqua. Ciascuno sceglierà quello che li e' piu' congeniale in funzione della propria capacità realizzativa...
la shiedl di controllo prescinde da come e' fatto il gruppo termico : misura una temperatura diciamo della birra in fermentazione e pilota la cella per mantenere quella temperatura il piu' possibile costante modulando potenza e caldo/freddo di conseguenza.

Obiettivo quindi del controllo e una gestione termostatica del mezzo di raffreddamento e/o riscaldamento sia esso aria o h20.

Sinceramente non vedo necessita di valvole o complicazioni...in un scambio aria-aria il flusso soffiato dentro la camera dovra' compensare le variazioni di temperatura esterne e interne e sara' "caldo" o "freddo" a seconda temperatura ambiente e set point.

Lo stesso in un flusso aria h20. Il liquido di ricircolo nel mosto in fermentazione sara' "caldo" o "freddo" con lo stesso principio.

giusto per capirsi "non dobbiamo inventare nulla" ma dobbiamo realizzare in HW (Arduino) e SW (il punto mancante) come base il prodotto sottostante per la gestione della parte termica con aggiunta di tutte le altre funzioni specifiche per applicazione birra descritte da Savio

TETECH controller
http://www.tetech.com/Temperature-Controllers/TC-36-25-RS232.html

cyberhs:
Al posto del ponte H, ho preferito usare un più semplice relè a due scambi.

Grazie Cyberhs proprio oggi ho giocherellato un po con la parte meccanica
Ho iniziato a fare il recipiente per il ricircolo
E il pacco dissipatore per giocare un po con queste celle
Ho postato due foto sul mio sito
http://www.saviot.com/index.php?option=com_content&view=article&id=18&Itemid=172

E fortunatamente Sabato mi sono arrivati i IRLB3034PBF ordinati un mesetto fa :smiley:

Quindi se riesci ad usare questi ansiche un doppio rele per me sarebbe meglio

Usare un Itengrato lo vedo più lineare non un on off secco e duraturo e silenzioso rispetto ad un rele :smiley:

:Edit ho visto che su questo ha già Risposto Davide che ha spiegato più precisamente quello che intendevo IO
Ovvero meglio un controllo lineare per avere un controllo proporzionale da 0 a 100% ansiche un rele secco che è solo 0 e 1

Si dobbiamo sfruttare la capacita della celle di cambiare lato caldo/freddo con inversione di polarita
e quidi inutile e troppo complessa la soluzione a scambio meccanico con valvola a tre vie
meglio uno scambio elettronico della polarità

In questo serve un HW che ci supporti ma soratutto in questo Momento una mano a Davide
per la parte Software della gestione del PWM e PID per gestire la potenza della cella ma soratutto
la loro inversione forse ci vorebbe qualcosa tipo un cross 0 e quindi definire un tempo e una lettura a 0
prima di invertire la polarita alle celle per evitare che si rompano :wink:

Grazie