Sytsem de mot de passe Bluetooth

Bonjour je cherche a faire un système de mot de passe Bluetooth j'ai déjà ce code mais dans DATA il n'y a que le premier et le dernier caractère qui sont enregistré. La partie en commentaire permet d'afficher le caractère écrit par mon téléphone, il est correctement lu.
Quelqu'un peut m'aidé. Utilise un module DX-BT16 le TXD et brancher sur RX et le RXD sur TX.

:warning: La rédaction de votre message ne répond pas aux critères attendus. Il n'aura sans doute pas de réponse tant que vous n'aurez pas pris en compte et mis en application les recommandations listées dans "Les bonnes pratiques du Forum Francophone”


et nous ? on doit le deviner ?

Désolé je croyais avoir mis le code le voici :

//www.elegoo.com

#define LED 13    //Define 13 pin for LED
bool state = LOW; //The initial state of the function is defined as a low level
char getstr;      //Defines a function that receives the Bluetooth character
#define Password_Length1 6

char Data1[Password_Length1];
char nul[Password_Length1] = "";
char Master1[Password_Length1] = "88888";
byte data_count1 = 0, master_count1 = 0;
bool Pass_is_good;
char customKey;

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
}

//Control LED sub function
void stateChange() {
  state = !state; 
  digitalWrite(LED, state);  
}

void loop() {
  //if(Serial.available())
  //{
    //The Bluetooth serial port to receive the data in the function
    //getstr = Serial.read(); 
    //Data1[data_count1] = getstr;
    //Serial.println(getstr);
    //Serial.println(Data1);
    //if(getstr == 'a'){
      //stateChange();
    //}
  //}
  if(Serial.available()){
    getstr = Serial.read();
    if (getstr == '#') {
      Serial.println("Code d'ouverture de la porte entré");
      Serial.print("Le code utilisé est : ");
      Serial.println(Data1);
    } else {
      if (getstr == '*') {
        Serial.println("Mot de pass D'ouverture éffacé");
        Data1[data_count1] = nul;
      } else {
        Data1[data_count1] = getstr;
        Serial.println(Data1[data_count1]);
        data_count1 =+ 1;
        Serial.println(Data1);
      }
    }
  }
  if (data_count1 > Password_Length1 -1) {
    Serial.println("Mot de passe d'ouverture trop long");
    Data1[data_count1] = nul;
    int Data1 = nul;
    data_count1 = 0;
  }
  if (customKey == '#') {
    if (!strcmp(Data1, Master1)) {
      Data1[data_count1] = nul;
    }
    else {
      if (!strcmp(Data1, nul)) {
        Serial.println("Rien n'est entré");
      }
    }
  }
}

pour que votreSerial.println(Data1); fonctionne il faut mettre un '\0' à la fin de la chaîne (et donc prévoir la place dans le tableau pour cela)

sinon vous ne pouvez pas faire cela pour vider une cString. (on affecte pas un tableau à un autre)

vous pouvez juste mettre le caractère nul au début Data1[0] = '\0'; ou alors effacer tout le tableau en mettant des 0 partout

memset(Data1, '\0', sizeof Data1); // https://www.cplusplus.com/reference/cstring/memset/