Brassins et expériencesLe Journal de J4l13n

Décrivez ici et ouvrez le débat sur vos brassins, vos méthodes, vos résultats...
Règles du forum
Chers membres, merci de prendre connaissance et respecter les quelques règles de bon sens suivantes avant de poster votre message :
  • Vous assurer que vous postez dans la bonne rubrique
  • Vérifier qu'il n’existe pas déjà une réponse à votre question ou un sujet identique
  • Prendre conscience que vos propos n’engagent que vous et que vous devrez en assumer la paternité
  • Vérifier les sources des informations que vous diffusez, en vous assurant le cas échéant de respecter les droits d’auteur qui peuvent être liés aux informations, images ou documents cités
  • Prendre soin de respecter vos interlocuteurs et bannir les insultes et autres propos diffamatoires ou dégradants
  • Vous assurer de rester autant que faire se peut dans le sujet exposé
  • Prendre le temps de vérifier l’orthographe et la grammaire de votre message
Merci par avance de votre contribution à préserver le bon esprit de ce forum.
Avatar de l’utilisateur
Vince de la BDH
Brasseur
Brasseur
Messages : 1810
Inscrit depuis : 7 ans 7 mois
Je suis tuteur : oui
Mon équipement : polsinelli 150 L
Brasseur : Amateur
Localisation : Savoie (73)
A remercié : 180 fois
A été remercié : 118 fois

Re: Le Journal de Boboss

Message par Vince de la BDH »

Hello !
Sympa le système de refroidissement :)
Je vais peut-être dire une conn...ânerie, mais tant pis je me lance : Et si tu humidifiais ton radiateur avec un peu d'eau puis que tu utilises un ventilateur pour souffler dessus, ne pourrais-tu pas bénéficier de l'effet d'évaporation pour refroidir encore plus efficacement ?
++
Don't worry, be hoppy !
Avatar de l’utilisateur
Leberrichondud
Maître Brasseur
Maître Brasseur
Messages : 4390
Inscrit depuis : 7 ans
Mon équipement : Ma ptite brasserie
maischfest avec une cuve de rinçage électrique,
Zone d embouteillage avec pompe vevor, chambres de fermentation régulés...
Brasseur : Amateur
Localisation : 06530 peymeinade
A remercié : 92 fois
A été remercié : 272 fois

Re: Le Journal de Boboss

Message par Leberrichondud »

Vince de la BDH a écrit :Hello !
Sympa le système de refroidissement :)
Je vais peut-être dire une conn...ânerie, mais tant pis je me lance : Et si tu humidifiais ton radiateur avec un peu d'eau puis que tu utilises un ventilateur pour souffler dessus, ne pourrais-tu pas bénéficier de l'effet d'évaporation pour refroidir encore plus efficacement ?
++
Ça va vraiment devenir une usine à gaz !! :jesors4:

Par contre, je suis d accord qu il faudrait un truc pour le refroidir afin de descendre sous l ambiant.
Avatar de l’utilisateur
Vince de la BDH
Brasseur
Brasseur
Messages : 1810
Inscrit depuis : 7 ans 7 mois
Je suis tuteur : oui
Mon équipement : polsinelli 150 L
Brasseur : Amateur
Localisation : Savoie (73)
A remercié : 180 fois
A été remercié : 118 fois

Re: Le Journal de Boboss

Message par Vince de la BDH »

Ça va vraiment devenir une usine à gaz !!
Lol, non une usine de refroidissement ! :lol: :jesors4:
Don't worry, be hoppy !
Avatar de l’utilisateur
Penn-Maen
Maître Brasseur
Maître Brasseur
Messages : 12678
Inscrit depuis : 14 ans 2 mois
Je suis tuteur : oui
Mon équipement : viewtopic.php?t=39535
Miss Vilaine ¯\_(ツ)_/¯
Brasseur : Amateur
Localisation : Morbihan centre
1 recettes partagées
A remercié : 777 fois
A été remercié : 1473 fois

Re: Le Journal de Boboss

Message par Penn-Maen »

@vince : avec de l'eau vaporisée sur la batterie, on atteindrait au mieux la température de "bulbe humide", c'est à dire 1 ou 2 K de moins que la température d'air sec...
Regarde, écoute, questionne, apprend, transmet, recommence sans cesse
Disclaimer : je dis certainement plus de conneries que la moyenne, alors vérifiez !

SE PRESENTER ...et... Guide pour débutants
Avatar de l’utilisateur
Vince de la BDH
Brasseur
Brasseur
Messages : 1810
Inscrit depuis : 7 ans 7 mois
Je suis tuteur : oui
Mon équipement : polsinelli 150 L
Brasseur : Amateur
Localisation : Savoie (73)
A remercié : 180 fois
A été remercié : 118 fois

Re: Le Journal de Boboss

Message par Vince de la BDH »

@PM, faudrait effectivement que je me renseigne un peu plus en détail sur cette question de thermodynamique :think: ...
++
Don't worry, be hoppy !
Avatar de l’utilisateur
J4l13n
Ch'ti nouveau
Messages : 157
Inscrit depuis : 12 ans 6 mois
Brasseur : Amateur
Localisation : Vannes
A remercié : 10 fois
A été remercié : 18 fois

Re: Le Journal de Boboss

Message par J4l13n »

Bonjour

Après quelques mois de test pour la régulation de la chambre de chauffe ( un frigo HS équipé d'une résistance de dégivrage de réfrigérateur de 25W et d'un ventilateur ) et d'un frigo conventionel pour le Cold-crash,
je vous fais un retour sur la régule pour la chauffe :

Équipé d'1 Arduino nano 3€ (pas sur la vidéo), 1 encodeur rotatif muni d'un bouton poussoir 1€, 2 sonde de Température DS18B20 étanche 2x2€ , et 2 relais SSR 2*3€ (1 sonde et 1 relais SSR pour chaque appareil) .

Après un drame et une chauffe à 34° il y a 6 mois lors des test BETA, j'ai rajouter un watchdog qui permet de rebooter automatiquement le système en cas de problème, je n'ai jamais eu de soucis depuis cet ajout.
Si la Température de chauffe dépasse les 25°C et/ou le frigo descend en dessous de 0.5°C le système arrête tout les commande en cours et déclenche une LED d'alarme.
Si il y a une coupure de courant les consigne sont garder en mémoire.

Suivi de la régule sur 12H pour les test et vérification avec un autre élément Arduino :
Image
(- de 1°C de delta on est quasi prêt pour envoyer ça avec MARS-ONE :D ).

Suivi
Image

Schéma
Image
Depuis le schéma et la vidéo la résistance de chauffe et le frigo sont actionné par un SSR et non plus par un simple relais...

Petite vidéo de présentation succincte :
[youtube][/youtube]



Le code :

Code : Tout sélectionner

/*
*/
#include "EEPROM.h"
#include <avr/wdt.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x25, 20, 4);
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(7);
DallasTemperature sensors(& oneWire);
DeviceAddress sondeRouge =
{
  0x28, 0x66, 0x1F, 0x79, 0x97, 0x18, 0x03, 0x6D
};

DeviceAddress sondeVerte =
{
  0x28, 0xEE, 0xBA, 0x79, 0x97, 0x18, 0x03, 0xC7
};

#include <Encoder.h>
Encoder myEnc(3, 2);
#define bp 5
byte etatBp;
float position;
#define resistance 8
#define compresseur 9
byte choix;
boolean etatDuChoix = false;
boolean choixFlag = false;
boolean FlagErreur = false;
unsigned long previousMillis = 0;
const long intervalAffichageTemperature = 5000;
float tempChauffe, tempFroid;
float consigneresistance = 22;
float consigneFroid = 2;
float hysteresyFroid = 0.50;
float hysteresyresistance = 0.50; 
#define Led 6
int brightness = 0;
int fadeAmount = 10;
int caseFroid = 80;
int caseChaud = 90;
void setup()
{
  wdt_enable(WDTO_8S);
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  sensors.setResolution(sondeRouge, 12);
  sensors.setResolution(sondeVerte, 12);
  pinMode(bp, INPUT_PULLUP);
  pinMode(resistance, OUTPUT);
  pinMode(compresseur, OUTPUT);
  pinMode(Led, OUTPUT);
  delay(5000);
  digitalWrite(resistance, LOW);
  digitalWrite(compresseur, LOW);
  digitalWrite(Led, HIGH);
  sensors.requestTemperatures();
  tempChauffe = sensors.getTempC(sondeRouge);
  tempFroid = sensors.getTempC(sondeVerte);
  Serial.println(tempChauffe);
  Serial.println(tempFroid);
  // EEPROM
  consigneresistance = EEPROM.read(caseChaud);
  consigneFroid = EEPROM.read(caseFroid);
}

void loop()
{
  wdt_reset();
  if (tempChauffe > 25 || tempFroid < 0.5 || tempChauffe < -50 && FlagErreur == 0)
  {
    digitalWrite(Led, LOW);
    digitalWrite(resistance, LOW);
    digitalWrite(compresseur, LOW);
    erreur();
  }
  else
  {
    FlagErreur = 1;
    fade();
    affichagelcd();
    consigneElement();
    choixEtEEprom();
  }
  delay(10);
}

void erreur()
{
  digitalWrite(Led, 1);
  lcd.setCursor(6, 1);
  lcd.print("        ");
  lcd.clear();
  delay(200);
  lcd.setCursor(4, 1);
  lcd.print("!!!ERREUR!!! ");
  digitalWrite(Led, 0);
  delay(500);
}

void fade()
{
  analogWrite(Led, brightness);
  brightness = brightness + fadeAmount;
  if (brightness <= 0 || brightness >= 200)
  {
    fadeAmount = -fadeAmount;
  }
}

void choixEtEEprom()
{
  etatBp = digitalRead(bp);
  if (etatBp == LOW)
  {
    etatDuChoix = !etatDuChoix;
    delay(500);
    choixFlag = 0;
  }
  if (etatDuChoix == 0)
  {
    if (choixFlag == 0)
    {
      myEnc.write(consigneFroid * 4);
      EEPROM.write(caseChaud, consigneresistance);
      choixFlag = 1;
    }
    lcd.setCursor(6, 1);
    lcd.print(" ");
    lcd.setCursor(6, 3);
    lcd.print((char) 62);
    consigneFroid = myEnc.read() / 4;
  }
  else
  {
    // chauffe
    if (choixFlag == 0)
    {
      myEnc.write(consigneresistance * 4);
      EEPROM.write(caseFroid, consigneFroid);
      choixFlag = 1;
    }
    lcd.setCursor(6, 3);
    lcd.print(" ");
    lcd.setCursor(6, 1);
    lcd.print((char) 62);
    consigneresistance = myEnc.read() / 4;
  }
}

void affichagelcd()
{
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= intervalAffichageTemperature)
  {
    sensors.requestTemperatures();
    tempChauffe = sensors.getTempC(sondeRouge);
    tempFroid = sensors.getTempC(sondeVerte);
    lcd.setCursor(0, 0);
    lcd.print("Chaud: ");
    lcd.print(tempChauffe);
    lcd.print((char) 223);
    lcd.print("C");
    lcd.print("  ");
    lcd.setCursor(0, 2);
    lcd.print("Froid: ");
    lcd.print(tempFroid);
    lcd.print((char) 223);
    lcd.print("C");
    lcd.print("  ");
    previousMillis = currentMillis;
  }
  lcd.setCursor(0, 1);
  lcd.print("Consi:");
  lcd.setCursor(7, 1);
  if (consigneresistance < 10)
  {
    lcd.print('0');
  }
  lcd.print(consigneresistance);
  lcd.print((char) 223);
  lcd.print("C");
  lcd.print("  ");
  lcd.setCursor(0, 3);
  lcd.print("Consi:");
  lcd.setCursor(7, 3);
  if (consigneFroid < 10)
  {
    lcd.print('0');
  }
  lcd.print(consigneFroid);
  lcd.print((char) 223);
  lcd.print("C");
  lcd.print("  ");
}

void consigneElement()
{
  if (tempFroid <= consigneFroid - hysteresyFroid)
  {
    digitalWrite(compresseur, 0);
    lcd.setCursor(17, 3);
    lcd.print("off");
  }
  if (tempFroid >= consigneFroid + hysteresyFroid)
  {
    digitalWrite(compresseur, 1);
    lcd.setCursor(17, 3);
    lcd.print("on ");
  }
  if (tempChauffe >= consigneresistance + hysteresyresistance)
  {
    digitalWrite(resistance, 0);
    lcd.setCursor(17, 1);
    lcd.print("off");
  }
  // 18             20.       .25
  if (tempChauffe <= consigneresistance - hysteresyresistance)
  {
    digitalWrite(resistance, 1);
    lcd.setCursor(17, 1);
    lcd.print("on ");
  }
}

void reboot()
{
  while (1);
}
Amélioration a venir ... séparé la sécu du frigo et de la chauffe pour pas impacter l'un à cause de l'autre...
Kentoc'h mervel eget em zaotra