couveuse a oeufs

bonjour a tous
mon ami google m'a envoyé vers un sujet de infobarquee sur une couveuse a œufs de poupoule, il y a très longtemps que j'ai abandonné le codage et j'ai du mal a mis retrouvé (bon j'avoue mon niveau était pas loin des pâquerettes).
dans son post ( COUVEUSE V2.0 - Réalisations et Projets Finis - Arduino Forum ) il y a gaylord62 qui avait changé le code pour mettre en conformité avec son matos ce qui tombe bien car j'ai un peu près la même choisissez soit:
un arduino méga
un écran iteadstudio 320x240 et son shield v2.2
j'ai déjà bataillé avec la librairie de cet écran de m .... qui ne voulait rien savoir mais c'est bon
ensuite pour être sûr de ne pas faire de bourde il suffit bien de faire un copieur des 3 parties de code sur cette page: COUVEUSE V2.0 - Réalisations et Projets Finis - Arduino Forum et de les coller sur le programme arduino? pas besoin de mettre de saut de ligne ou autre?
ensuite j'ai réussi à corriger les erreurs de librairie que j'avais mais après je sèche et des erreurs il y en a un peu: o (je met ca comme un code ca prend moins de place sur la page):

Arduino : 1.8.13 (Windows 10), Carte : "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino: In function 'void drawButtons()':

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:126:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Temp. haut :", 2, 5);

                                    ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:128:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Humidite :", 2, 65);

                                   ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:130:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Temp. bas :", 2, 135);

                                     ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:132:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Resistance :", 2, 205);

                                      ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:139:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Moyenne temp. :", 150, 5);

                                         ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:146:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Temp. memoire :", 150, 50);

                                          ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:155:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

   myGLCD.print("Temp. a memoriser", 150, 100);

                                             ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:165:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

     myGLCD.print("1", 163 , 122);

                                ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:171:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

     myGLCD.print("2", 183 , 122);

                                ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:177:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

     myGLCD.print("3", 203 , 122);

                                ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:183:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

     myGLCD.print("4", 223 , 122);

                                ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:189:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

     myGLCD.print("5", 243 , 122);

                                ^

C:\Users\antho\Documents\Arduino\couveuse\sketch_mar29a\sketch_mar29a.ino:195:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

     myGLCD.print("6", 263 , 122);

                                ^

sketch_mar29a:197:15: error: a function-definition is not allowed here before '{' token

   void loop() {

               ^

sketch_mar29a:336:27: error: a function-definition is not allowed here before '{' token

 void TEMPERATUREMEMOIRE() {

                           ^

sketch_mar29a:341:20: error: a function-definition is not allowed here before '{' token

 void TEMPERATURE() {

                    ^

sketch_mar29a:398:17: error: a function-definition is not allowed here before '{' token

 void HUMIDITE() {

                 ^

sketch_mar29a:404:14: error: a function-definition is not allowed here before '{' token

 void RELAY() {

              ^

sketch_mar29a:431:1: error: expected '}' at end of input

 }

 ^

exit status 1

a function-definition is not allowed here before '{' token

pouvez-vous m'aiguiller un peu svp? mon anglais est du niveau 0 et c'est pas évident avec les traducteurs.
Merci d'avance

postez tout le code (si c'est trop long, mettrez le en PJ).

il semble que vous définissiez des fonctions au sein de la loop ou que les {} ne soient pas bien équilibrées

#include <UTFT.h>
#include <UTouch.h>
#include <EEPROM.h>                  // needed for EEPROM
#include "EEPROMAnything.h"          // needed for EEPROM
#include <OneWire.h>                 // Inclusion de la librairie OneWire

#define EEPROMSIZE 512            // ATMEGA168 512 EEPROM
//#define EEPROMSIZE 1024              // ATMEGA328P 1024 EEPROM
UTFT    myGLCD(ITDB32S, 38, 39, 40, 41);
UTouch  myTouch( 6, 5, 4, 3, 2);
extern uint8_t SmallFont[];

int x, y;
char stCurrent[20] = "";
int stCurrentLen = 0;
char stLast[20] = "";
boolean relay = false;

struct config_t {
  int validdata;       // if this is 99 then data is valid
  float temperature;
} mydata;

int datasize;      // will hold size of the struct myfocuser - 6 bytes
int nlocations;    // number of storage locations available in EEPROM
int currentaddr;   // will be address in eeprom of the data stored
boolean writenow;     // should we update values in eeprom
boolean found;        // did we find any stored values?
long numwrites = 0L;        // number of eeprom writes this session


float temp;
float temp1;
float moyennetemp;
#define relais 10
#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 8 // Broche utilisée pour le bus 1-Wire
OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds

#define DS18B201 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE1 9 // Broche utilisée pour le bus 1-Wire
OneWire ds1(BROCHE_ONEWIRE1); // Création de l'objet OneWire ds

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp) {
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }

  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20

C’est vraiment le code ?

J-M-L:
C’est vraiment le code ?

non tu va trop vite pour moi, j'ai des restrictions je peux faire que 1 post toute les 5 minutes et j'ai un message d'erreur si je le met en pièce jointe

ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(500);             // Et on attend la fin de la mesure

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus

  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return true;
}

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature1(float *temp1) {
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds1.search(addr)) { // Recherche un module 1-Wire
    ds1.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }

  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B201) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds1.reset();             // On reset le bus 1-Wire
  ds1.select(addr);        // On sélectionne le DS18B20

  ds1.write(0x44, 1);      // On lance une prise de mesure de température
  delay(500);             // Et on attend la fin de la mesure

  ds1.reset();             // On reset le bus 1-Wire
  ds1.select(addr);        // On sélectionne le DS18B20
  ds1.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds1.read();       // Et on stock les octets reçus

  // Calcul de la température en degré Celsius
  *temp1 = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return true;
}

void drawButtons()
{
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (1, 1, 140, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (0, 0, 140, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. haut :", 2, 5);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Humidite :", 2, 65);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. bas :", 2, 135);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Resistance :", 2, 205);
  
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (145, 0, 315, 40);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (145, 0, 315, 40);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Moyenne temp. :", 150, 5);

  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (145, 45, 315, 90);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (145, 45, 315, 90);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. memoire :", 150, 50);
  /*  myGLCD.setColor(255, 0, 0);
    myGLCD.print("38.700", 490, 115); */
    
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (145, 95, 315, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (145, 95, 315, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. a memoriser", 150, 100);

  //chiffre de 1 a 5
  for (x = 0; x < 6; x++)
  {
    myGLCD.setColor(0, 0, 255);
    myGLCD.fillRoundRect (160,120,175,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (160,120,175,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("1", 163 , 122);    
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (180,120,195,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (180,120,195,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("2", 183 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (200,120,215,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (200,120,215,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("3", 203 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (220,120,235,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (220,120,235,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("4", 223 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (240,120,255,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (240,120,255,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("5", 243 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (260,120,275,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (260,120,275,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("6", 263 , 122);
     }

et le dernier :

void loop() {
  while (true)
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((y >= 120) && (y <= 135)) // Upper row
      {
        if ((x >= 160) && (x <= 175)) // Button: 1
        {
          waitForIt(160, 120, 175, 135);
          updateStr('1');
        }
        if ((x >= 180) && (x <= 195)) // Button: 2
        {
          waitForIt(180, 120, 195, 135);
          updateStr('2');
        }
        if ((x >= 200) && (x <= 215)) // Button: 3
        {
          waitForIt(200, 120, 215, 135);
          updateStr('3');
        }
        if ((x >= 220) && (x <= 235)) // Button: 4
        {
          waitForIt(220, 120, 235, 135);
          updateStr('4');
        }
        if ((x >= 240) && (x <= 255)) // Button: 5
        {
          waitForIt(240, 120, 255, 135);
          updateStr('5');
        }
        if ((x >= 260) && (x <= 275)) // Button: 6
        {
          waitForIt(260, 120, 275, 135);
          updateStr('6');
        }
      }

      if ((y >= 145) && (y <= 160)) // Upper row
      {
        if ((x >= 160) && (x <= 175)) // Button: 1
        {
          waitForIt(160, 145, 175, 160);
          updateStr('7');
        }
        if ((x >= 180) && (x <= 195)) // Button: 2
        {
          waitForIt(180, 145, 195, 160);
          updateStr('8');
        }
        if ((x >= 200) && (x <= 215)) // Button: 3
        {
          waitForIt(200, 145, 215, 160);
          updateStr('9');
        }
        if ((x >= 220) && (x <= 235)) // Button: 4
        {
          waitForIt(220, 145, 235, 160);
          updateStr('0');
        }
        if ((x >= 240) && (x <= 255)) // Button: 5
        {
          waitForIt(240, 145, 255, 160);
          updateStr('*');
        }
        if ((x >= 260) && (x <= 275)) // Button: 6
        {
          waitForIt(260, 145, 275, 160);
          updateStr('.');
        }

      }

      if ((y >= 185) && (y <= 165)) // Upper row
      {
        if ((x >= 150) && (x <= 215)) // Button: Clear (150, 185, 215, 165)
        {
          waitForIt(150, 185, 215, 165);
          stCurrent[0] = '\0';
          stCurrentLen = 0;
          myGLCD.setColor(118, 238, 0);
          myGLCD.fillRect(150, 185, 215, 165);
        }
        if ((x >= 220) && (x <= 300)) // Button: Enter (220, 185, 300, 165)
        {
          waitForIt(220, 185, 300, 165);
          if (stCurrentLen > 0)
          {
            for (x = 0; x < stCurrentLen + 1; x++)
            {
              stLast[x] = stCurrent[x];
            }
            stCurrent[0] = '\0';
            stCurrentLen = 0;
            myGLCD.setColor(118, 238, 0);
            myGLCD.fillRect(220, 185, 300, 165);
            myGLCD.setColor(0, 0, 0);
            myGLCD.print("memorise", 235, 300);
            delay(500);
            myGLCD.print("            ", 235, 300);
            delay(500);
            myGLCD.print("memorise", 235, 300);
            delay(500);
            myGLCD.print("            ",235, 300);
            myGLCD.setColor(118, 238, 0);
            myGLCD.fillRect(150, 185, 215, 165);
          }
          else
          {
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("BUFFER EMPTY", 235, 300);
            delay(500);
            myGLCD.print("            ", 235, 300);
            delay(500);
            myGLCD.print("BUFFER EMPTY", 235, 300);
            delay(500);
            myGLCD.print("            ", 235, 300);
            //myGLCD.setColor(118, 238, 0);
          }
        }



      }

    }

    TEMPERATURE();
    HUMIDITE();
    RELAY();
    TEMPERATUREMEMOIRE();

  }
}
void TEMPERATUREMEMOIRE() {
  myGLCD.setColor(255, 0, 0);
  myGLCD.print(String(mydata.temperature), 200, 65);

}
void TEMPERATURE() {
  // delay(500);
  // Lit la température ambiante à ~1Hz
  if (getTemperature(&temp)) {

    // Affiche la température
    /*  Serial.print("Temperature1 : ");
      Serial.print(temp);
      Serial.write(176); // caractère °
      Serial.write('C');
      Serial.println();*/
    myGLCD.setColor(255, 0, 0);
    myGLCD.printNumF(temp, 3 , 6, 5);
  }
    /*else{
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("LECTURE", 60, 5);
    }
  */

  


  // delay(500);
  if (getTemperature1(&temp1)) {

    // Affiche la température
    /*  Serial.print("Temperature2 : ");
      Serial.print(temp1);
      Serial.write(176); // caractère °
      Serial.write('C');
      Serial.println();*/
    myGLCD.setColor(255, 0, 0);
    myGLCD.printNumF(temp1, 3, 60, 135);
  }
  /*else{
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("LECTURE", 60, 135);
    }
  */





  moyennetemp = (temp + temp1) / 2;
  myGLCD.setColor(255, 0, 0);
  myGLCD.printNumF(moyennetemp, 3 , 150, 10);






  return;
}

void HUMIDITE() {
  myGLCD.setColor(255, 0, 0);
  myGLCD.print("70", 60, 85);
  return;
}

void RELAY() {
  float tempcomp = mydata.temperature;
  float resultattemp = (moyennetemp - tempcomp);
  /*Serial.print("tempcomp");
    Serial.println(tempcomp);
    Serial.print("moyennetemp");
    Serial.println(moyennetemp);
    Serial.print("resultattemp");
    Serial.println(resultattemp);*/
  if ( resultattemp < 0) {
    relay = true;
  } else {
    relay = false;

  }
  if (relay == true) {
    digitalWrite(relais, LOW);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("ON ", 105, 205);
  } else {
    digitalWrite(relais, HIGH);

    myGLCD.setColor(255, 255, 255);
    myGLCD.print("OFF", 105, 205);
  }
  return;

}

Bonjour,
Il manque une accolade à la fin de la fonction drawButton
Cordialement

j'ai mal a la tête :), j'ai beaucoup moins d'erreur merci pffff15 mais il m'en reste une que je n'arrive pas a retirer

#include <UTFT.h>
#include <UTouch.h>
#include <EEPROM.h>                  // needed for EEPROM
#include "EEPROMAnything.h"          // needed for EEPROM
#include <OneWire.h>                 // Inclusion de la librairie OneWire

#define EEPROMSIZE 512            // ATMEGA168 512 EEPROM
//#define EEPROMSIZE 1024              // ATMEGA328P 1024 EEPROM
UTFT    myGLCD(ITDB32S, 38, 39, 40, 41);
UTouch  myTouch( 6, 5, 4, 3, 2);
extern uint8_t SmallFont[];

int x, y;
char stCurrent[20] = "";
int stCurrentLen = 0;
char stLast[20] = "";
boolean relay = false;

struct config_t {
  int validdata;       // if this is 99 then data is valid
  float temperature;
} mydata;

int datasize;      // will hold size of the struct myfocuser - 6 bytes
int nlocations;    // number of storage locations available in EEPROM
int currentaddr;   // will be address in eeprom of the data stored
boolean writenow;     // should we update values in eeprom
boolean found;        // did we find any stored values?
long numwrites = 0L;        // number of eeprom writes this session


float temp;
float temp1;
float moyennetemp;
#define relais 10
#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 8 // Broche utilisée pour le bus 1-Wire
OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds

#define DS18B201 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE1 9 // Broche utilisée pour le bus 1-Wire
OneWire ds1(BROCHE_ONEWIRE1); // Création de l'objet OneWire ds

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp) {
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }

  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20

 ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(500);             // Et on attend la fin de la mesure

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus

  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return true;
}

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature1(float *temp1) {
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds1.search(addr)) { // Recherche un module 1-Wire
    ds1.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }

  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B201) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds1.reset();             // On reset le bus 1-Wire
  ds1.select(addr);        // On sélectionne le DS18B20

  ds1.write(0x44, 1);      // On lance une prise de mesure de température
  delay(500);             // Et on attend la fin de la mesure

  ds1.reset();             // On reset le bus 1-Wire
  ds1.select(addr);        // On sélectionne le DS18B20
  ds1.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds1.read();       // Et on stock les octets reçus

  // Calcul de la température en degré Celsius
  *temp1 = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return true;
}

void drawButtons()
{
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (1, 1, 140, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (0, 0, 140, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. haut :", 2, 5);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Humidite :", 2, 65);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. bas :", 2, 135);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Resistance :", 2, 205);
  
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (145, 0, 315, 40);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (145, 0, 315, 40);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Moyenne temp. :", 150, 5);

  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (145, 45, 315, 90);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (145, 45, 315, 90);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. memoire :", 150, 50);
  /*  myGLCD.setColor(255, 0, 0);
    myGLCD.print("38.700", 490, 115); */
    
  myGLCD.setColor(0, 0, 255);
  myGLCD.fillRoundRect (145, 95, 315, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.drawRoundRect (145, 95, 315, 230);
  myGLCD.setColor(255, 255, 255);
  myGLCD.print("Temp. a memoriser", 150, 100);

  //chiffre de 1 a 5
  for (x = 0; x < 6; x++)
  {
    myGLCD.setColor(0, 0, 255);
    myGLCD.fillRoundRect (160,120,175,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (160,120,175,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("1", 163 , 122);    
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (180,120,195,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (180,120,195,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("2", 183 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (200,120,215,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (200,120,215,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("3", 203 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (220,120,235,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (220,120,235,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("4", 223 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (240,120,255,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (240,120,255,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("5", 243 , 122);
    myGLCD.setColor (0,0,255);
    myGLCD.fillRoundRect (260,120,275,135);
    myGLCD.setColor (255,255,255);
    myGLCD.drawRoundRect (260,120,275,135);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("6", 263 , 122);
  }
  void loop () {
  while (true)
  {
    if (myTouch.dataAvailable())
    {
      myTouch.read();
      x = myTouch.getX();
      y = myTouch.getY();

      if ((y >= 120) && (y <= 135)) // Upper row
      {
        if ((x >= 160) && (x <= 175)) // Button: 1
        {
          waitForIt(160, 120, 175, 135);
          updateStr('1');
        }
        if ((x >= 180) && (x <= 195)) // Button: 2
        {
          waitForIt(180, 120, 195, 135);
          updateStr('2');
        }
        if ((x >= 200) && (x <= 215)) // Button: 3
        {
          waitForIt(200, 120, 215, 135);
          updateStr('3');
        }
        if ((x >= 220) && (x <= 235)) // Button: 4
        {
          waitForIt(220, 120, 235, 135);
          updateStr('4');
        }
        if ((x >= 240) && (x <= 255)) // Button: 5
        {
          waitForIt(240, 120, 255, 135);
          updateStr('5');
        }
        if ((x >= 260) && (x <= 275)) // Button: 6
        {
          waitForIt(260, 120, 275, 135);
          updateStr('6');
        }
      }
     
      if ((y >= 145) && (y <= 160)) // Upper row
      {
        if ((x >= 160) && (x <= 175)) // Button: 1
        {
          waitForIt(160, 145, 175, 160);
          updateStr('7');
        }
        if ((x >= 180) && (x <= 195)) // Button: 2
        {
          waitForIt(180, 145, 195, 160);
          updateStr('8');
        }
        if ((x >= 200) && (x <= 215)) // Button: 3
        {
          waitForIt(200, 145, 215, 160);
          updateStr('9');
        }
        if ((x >= 220) && (x <= 235)) // Button: 4
        {
          waitForIt(220, 145, 235, 160);
          updateStr('0');
        }
        if ((x >= 240) && (x <= 255)) // Button: 5
        {
          waitForIt(240, 145, 255, 160);
          updateStr('*');
        }
        if ((x >= 260) && (x <= 275)) // Button: 6
        {
          waitForIt(260, 145, 275, 160);
          updateStr('.');
        }

      }

      if ((y >= 185) && (y <= 165)) // Upper row
      {
        if ((x >= 150) && (x <= 215)) // Button: Clear (150, 185, 215, 165)
        {
          waitForIt(150, 185, 215, 165);
          stCurrent[0] = '\0';
          stCurrentLen = 0;
          myGLCD.setColor(118, 238, 0);
          myGLCD.fillRect(150, 185, 215, 165);
        }
        if ((x >= 220) && (x <= 300)) // Button: Enter (220, 185, 300, 165)
        {
          waitForIt(220, 185, 300, 165);
          if (stCurrentLen > 0)
          {
            for (x = 0; x < stCurrentLen + 1; x++)
            {
              stLast[x] = stCurrent[x];
            }
            stCurrent[0] = '\0';
            stCurrentLen = 0;
            myGLCD.setColor(118, 238, 0);
            myGLCD.fillRect(220, 185, 300, 165);
            myGLCD.setColor(0, 0, 0);
            myGLCD.print("memorise", 235, 300);
            delay(500);
            myGLCD.print("            ", 235, 300);
            delay(500);
            myGLCD.print("memorise", 235, 300);
            delay(500);
            myGLCD.print("            ",235, 300);
            myGLCD.setColor(118, 238, 0);
            myGLCD.fillRect(150, 185, 215, 165);
          }
          else
          {
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("BUFFER EMPTY", 235, 300);
            delay(500);
            myGLCD.print("            ", 235, 300);
            delay(500);
            myGLCD.print("BUFFER EMPTY", 235, 300);
            delay(500);
            myGLCD.print("            ", 235, 300);
            //myGLCD.setColor(118, 238, 0);
          }
        }



      }

    }

    TEMPERATURE();
    HUMIDITE();
    RELAY();
    TEMPERATUREMEMOIRE();

  }
}
}

void TEMPERATUREMEMOIRE() {
  myGLCD.setColor(255, 0, 0);
  myGLCD.print(String(mydata.temperature), 200, 65);

}
void TEMPERATURE() {
  // delay(500);
  // Lit la température ambiante à ~1Hz
  if (getTemperature(&temp)) {

    // Affiche la température
    /*  Serial.print("Temperature1 : ");
      Serial.print(temp);
      Serial.write(176); // caractère °
      Serial.write('C');
      Serial.println();*/
    myGLCD.setColor(255, 0, 0);
    myGLCD.printNumF(temp, 3 , 6, 5);
  }
    /*else{
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("LECTURE", 60, 5);
    }
  */

  


  // delay(500);
  if (getTemperature1(&temp1)) {

    // Affiche la température
    /*  Serial.print("Temperature2 : ");
      Serial.print(temp1);
      Serial.write(176); // caractère °
      Serial.write('C');
      Serial.println();*/
    myGLCD.setColor(255, 0, 0);
    myGLCD.printNumF(temp1, 3, 60, 135);
  }
  /*else{
            myGLCD.setColor(255, 0, 0);
            myGLCD.print("LECTURE", 60, 135);
    }
  */





  moyennetemp = (temp + temp1) / 2;
  myGLCD.setColor(255, 0, 0);
  myGLCD.printNumF(moyennetemp, 3 , 150, 10);






  return;
}

void HUMIDITE() {
  myGLCD.setColor(255, 0, 0);
  myGLCD.print("70", 60, 85);
  return;
}

void RELAY() {
  float tempcomp = mydata.temperature;
  float resultattemp = (moyennetemp - tempcomp);
  /*Serial.print("tempcomp");
    Serial.println(tempcomp);
    Serial.print("moyennetemp");
    Serial.println(moyennetemp);
    Serial.print("resultattemp");
    Serial.println(resultattemp);*/
  if ( resultattemp < 0) {
    relay = true;
  } else {
    relay = false;
  }
  if (relay == true) {
    digitalWrite(relais, LOW);
    myGLCD.setColor(255, 0, 0);
    myGLCD.print("ON ", 105, 205);
  } else {
    digitalWrite(relais, HIGH);

    myGLCD.setColor(255, 255, 255);
    myGLCD.print("OFF", 105, 205);
  }
  return;
}

les messages d'erreur :
Arduino : 1.8.13 (Windows 10), Carte : "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\antho\Desktop\couveuse\couveuse\couveuse.ino: In function 'void drawButtons()':

couveuse:199:16: error: a function-definition is not allowed here before '{' token

void loop () {

^

exit status 1

a function-definition is not allowed here before '{' token

Bonjour,

Il y a des chances qu'il manque un }. Formates ton code en faisant ctlr t (ou cmd t)

sa ne change rien, toujours la même erreur.
il doit en manqué un quelque part mais ou ???? ou j'en est un où il faut pas :frowning:

Tu as formaté ton code?

la loop() a une accolade de trop à la fin

de plus la loop() comme son nom l'indique va boucler, donc pas la peine de faire un while global à l'interieur

void loop () {
  while (true) {// <<<<==== while inutile
    ...
  } // fin du while
}

kamill:
Tu as formaté ton code?

oui bien sûr, je vous embête pas juste pour le plaisir :grin: j'écoute toute vos suggestions. mais sa n'avais rien changer.

J-M-L:
la loop() a une accolade de trop à la fin

de plus la loop() comme son nom l'indique va boucler, donc pas la peine de faire un while global à l'interieur

void loop () {

while (true) {// <<<<==== while inutile
   ...
 } // fin du while
}

ça me parait bizarre du coup, je n'ai plus rien dedans ? ou j'ai rien compris

il me sort d'autre erreur, c'est sans fin :sob: franchement chapeau a ceux qui font ca tout les jours

non c'est juste le while(true) { et l'accolade fermante associée qui faut virer, pas ce qu'il y a dedans bien sûr !!

essayez de mettre le fichier .ino en pièce jointe sinon c'est difficile de voir l'ensemble de votre projet

J-M-L:
non c'est juste le while(true) { et l'accolade fermante associée qui faut virer, pas ce qu'il y a dedans bien sûr !!

essayez de mettre le fichier .ino en pièce jointe sinon c'est difficile de voir l'ensemble de votre projet

ahhh :grin: c'est les ... qui m'ont perturbé.

normalement le .ino est en pièce jointe.
merci beaucoup pour ton aide

couveuse_2.ino (12.7 KB)

Appuyez sur ctrl-T dans l'IDE

il manque une accolade fermante juste avant le   void loop () {pour terminer correctement la fonction drawButtons() et il faut virer l'accolade en trop à la fin de la loop

...
  TEMPERATUREMEMOIRE();
}
[color=red]} // <<< A VIRER[/color]

il manque aussi la fonction setup() dans le code

slt a tous
j'avance mais je ne touche pas encore au but
j'ai des souci d'affichage une fois le programme téléverser, quelqu'un aurait une idée ?
https://photos.app.goo.gl/7CGiutt9SRYfBCEt9

couveuse_2.ino (15.4 KB)