Gestion de poulailler

j'ai commencé à rassembler mes différents codes dans un seul
j'ai quelques problèmes
je voudrais que si une nouvelle poule est présente sur le nid et quelle n'a pas était
identifiée il soit affiché comme tel , c'est ce que je veux faire à la ligne 228
nomPoule =="poule inconnue";
or c'est toujours la dernière poule identifiée qui s'affiche.
il faudrait peut-être travailler un peu la "loop"
voici ou j'en suis:

guillaumetell:
voici un début de sketch sans prétention concernant la partie pesage et qui parait fonctionnel

 /*

Example using the SparkFun HX711 breakout board with a scale
  By: Nathan Seidle
  SparkFun Electronics
  Date: November 19th, 2014
  License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).

This example code uses bogde's excellent library: GitHub - bogde/HX711: An Arduino library to interface the Avia Semiconductor HX711 24-Bit Analog-to-Digital Converter (ADC) for Weight Scales.
  bogde's library is released under a GNU GENERAL PUBLIC LICENSE

The HX711  est compatible avec n'importe quel capteur monté en pont de wheatstone
  et peut donc mesurer n'importe quelle charge de quelques grammes à plusieurs tonnes.
  Arduino pin 2 -> HX711 CLK
  3 -> DAT
  5V -> VCC
  GND -> GND

Le HX711 peut être alimenté entre 2.7 et 5 v donc le 5v de l'arduino peut très bien convenir.
  //Exemple de sketch pour RFID ID-20LA reader ou autre

//plus d'info sur http://tutorial.cytron.com.my/
  // adapté au RDM6300
  //Les fils du RDM6300 1( TX) et 2( RX) sont sur broches 0(RX) et 1 (TX) de l'arduino: donc il y a un  croisement.
  //ils doivent etre débranches pour téléverser ou alors il faut mettre la bib.
  //et là on peut choisir d'autres broches
  /*liste des codes des 10 bagues en hexadécimal : tête version tag checksum queue
  2 5D 009670DD 66 3
  2 5D 009646A7 2A 3
  2 5D 00968376 3E 3
  2 5D 0096985F 0C 3
  2 5D 00962ABE 5F 3
  2 5D 00963AFB 0A 3
  2 5D 00966407 A8 3
  2 5D 009664D6 79 3
  2 5D 00965CA5 32 3
  2 5D 00963EB4 41 3
*/
#include <SoftwareSerial.h>
SoftwareSerial RFID = SoftwareSerial(6, 7); // RX and TX  //c'était SoftwareSerial RFID(6.7);faux

byte IDtag[12];

boolean lecturetag = false;

String nomPoule = "poule inconnue";

#include "HX711.h"

#define calibration_factor 240.8
//Cette valeur est obtenue en utilisant le sketch SparkFun_HX711_Calibration

#define DOUT  3
#define CLK  2

HX711 scale(DOUT, CLK);

void setup() {
  Serial.begin(9600);
  Serial.println("PESAGE POULES et OEUFS");

scale.set_scale(calibration_factor); //Cette valeur est obtenue en utilisant le sketch de calibration SparkFun_HX711
  scale.tare(); //S'assurer qu'il n'y a pas de charge sur la balance au départ , remise à zéro de l'échelle

Serial.println("Lecture: ");
  Serial.print(scale.get_units());
  Serial.println(" g");

RFID.begin(9600);
 
}

void loop()
{

identification();
 
  pesage();

enregistrement();
}

void identification()
{

/*liste des codes des 10 bagues en hexadécimal :
    tête  version tag checksum queue
    2 5D 009670DD 66 3
    2 5D 009646A7 2A 3
    2 5D 00968376 3E 3
    2 5D 0096985F 0C 3
    2 5D 00962ABE 5F 3
    2 5D 00963AFB 0A 3
    2 5D 00966407 A8 3
    2 5D 009664D6 79 3
    2 5D 00965CA5 32 3
    2 5D 00963EB4 41 3
  */
  if (RFID.available() >= 13)  //s'assurer que l'ensemble du code est reçu

{

if (RFID.read() == 0x02)    //Verifie  le  byte de départ = 0x02

{

lecturetag = true;              //un nouveau  tag est lu

for (int index = 0; index < sizeof(IDtag); index++)

{

byte val = RFID.read();

//convertir de la valeur ASCII en une plage de valeurs de 0 à 9 et A à F
        if ( val >= '0' && val <= '9')

val = val - '0';

else if ( val >= 'A' && val <= 'F')

val = 10 + val - 'A';

IDtag[index] = val;

}

}

else

{

lecturetag = false;              //Ignorer et sauter

}

}

if (lecturetag == true)              //Un nouveau tag est lu

{

affiche_tag();                    //Affiche l'ID de la balise

efface_tag();                    //Effacer l'ID du tag  et prepare pour la balise suivante

lecturetag = false;

}

delay(10);

}

void affiche_tag()
{
  Serial.print("Tag ID: ");

for (int index = 0; index < 10; index++)

{

Serial.print(IDtag[index], HEX); //Affiche IDtag

}

Serial.print("\r\nChecksum: ");

Serial.print(IDtag[10], HEX);      //Affiche somme de controle

Serial.println(IDtag[11], HEX);
  if (IDtag[11] == 0x06)                // il n'est traite que le second chiffre du cheksum qui est different sur chaque bague
  {
    nomPoule = "poule 1";
    Serial.println(nomPoule);
  }
  if (IDtag[11] == 0x0A)
  {
    nomPoule = "poule 2";
    Serial.println(nomPoule);
  }
  if (IDtag[11] == 0x0E)               
  {
    nomPoule = "poule 3";              // a continuer ->"poule 10"
    Serial.println(nomPoule);          // un tableau serait mieux
  }
/* else
  {
    nomPoule = "poule non identifiee ";
    Serial.println(nomPoule);
  }
  */
}
void efface_tag()
{

for (int index = 0; index < sizeof(IDtag); index++)

{

IDtag[index] = 0;

}
}

void pesage()
{
  if (scale.get_units() > 500) //s'ily a plus de 500 grammes c'est qu'une poule est présente
  {
    Serial.print("il y a une poule de ");
    Serial.print(scale.get_units());
    Serial.println(" grammes sur le nid");
    Serial.print("cette poule est  ");
    Serial.println(nomPoule);
   
    nomPoule == "poule inconnue"; 
/*je voudrais que le dernier nom détecté ne continue pas
  à s'afficher s'il n'y a pas de nouvelle identification et çà ne fonctionne pas 
*/
 
  }
 
 
 
  if ((scale.get_units() > 40) && (scale.get_units() < 110)) //c'est la fourchette de poids d'un oeuf
  {
    Serial.print("la poule a pondu un oeuf de ");
    Serial.print(scale.get_units());
    Serial.println(" grammes");

}
 
}

void enregistrement()
{
  //pas encore fait
}
//le but final sera d'enregister ces evenements horodates sur carte SD en ajoutant une identification par bague RFTD