433Mhz envoie d'une chaine avec Manchester

Bonjour,
Je souhaiterais envoyer et recevoir une chaîne de caractère à l’aide d’un émetteur et d’un récepteur 433Mhz, le tout à l’aide de la librairie Manchester (https://github.com/mchr3k/arduino-libs-manchester/blob/master/Manchester.h).
J’arrive à envoyer, mais je n’arrive pas à récupérer la chaine.

Quelqu’un aurait-il une solution?

Code Emetteur :

#include <Manchester.h>

/*

 Manchester Transmitter example
 
 In this example transmitter will send one byte of data and 4bit sender ID per transmittion
 message also contains a checksum and receiver can check if the data has been transmited correctly
 
 try different speeds using this constants, your maximum possible speed will 
 depend on various factors like transmitter type, distance, microcontroller speed, ...
 
 MAN_300 0
 MAN_600 1
 MAN_1200 2
 MAN_2400 3
 MAN_4800 4
 MAN_9600 5
 MAN_19200 6
 MAN_38400 7
 
 
 */

#define TX_PIN 2  //pin where your transmitter is connected
#define LED_PIN 13 //pin for blinking LED
#define SENDER_ID 5

uint8_t moo = 1; //last led status
uint8_t transmit_data = 0;

String inputString = "";         // a string to hold incoming data
boolean stringComplete = false; 

void setup() {
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, moo);
  //  man.workAround1MhzTinyCore(); //add this in order for transmitter to work with 1Mhz Attiny85/84
  man.setupTransmit(TX_PIN, MAN_1200);
}

void loop() {
  //SENDER_ID can be ID of the sender if you have multiple transmitters so receiver knows who sent it
  //OR it can be receiver ID if you have multiple receivers so receiver knows it's for him
  //OR it can by just any arbitrary 4 bit number
  /*  Serial.println(transmit_data);
   man.transmit(man.encodeMessage(SENDER_ID, transmit_data));
   transmit_data++;
   moo = ++moo % 2;
   digitalWrite(LED_PIN, moo);*/


  if (stringComplete) {   
    //    Serial.println(":"+inputString);
    char msg[inputString.length() + 1]; //determine size of the array
    inputString.toCharArray(msg, sizeof(msg)); //put str into an array  
    Serial.println("String(msg) : "+String(msg)); 
    Serial.print("uint16_t(msg) : ");
    Serial.println( uint16_t(msg)); 
    Serial.println(" "); 
    man.transmit(man.encodeMessage(SENDER_ID, uint16_t(msg)));
    transmit_data++;
    moo = ++moo % 2;
    digitalWrite(LED_PIN, moo);

    inputString = "";
    stringComplete = false;
  }
}



/*
  SerialEvent occurs whenever a new data comes in the
 hardware serial RX.  This routine is run between each
 time loop() runs, so using delay inside loop can delay
 response.  Multiple bytes of data may be available.
 */
void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();    

    // if the incoming character is a newline, set a flag
    // so the main loop can do something about it:
    if (inChar == '\n') {
      // Serial.println(inputString);
      inputString += inChar;
      stringComplete = true;
    } 
    else
    {
      // add it to the inputString:
      inputString += inChar;
    }

  }
}

Code Recepteur:

#include <Manchester.h>

/*

 Manchester Receiver example
 
 In this example receiver will receive one byte of payoad and 4 bit sender id per transmittion
 message also contains a checksum and receiver can check if the data has been transmited correctly
 
 try different speeds using this constants, your maximum possible speed will 
 depend on various factors like transmitter type, distance, microcontroller speed, ...
 
 MAN_300 0
 MAN_600 1
 MAN_1200 2
 MAN_2400 3
 MAN_4800 4
 MAN_9600 5
 MAN_19200 6
 MAN_38400 7
 
 
 */

#define RX_PIN 2
#define LED_PIN 13

uint8_t moo = 1;
uint8_t data;
uint8_t id;

void setup() {
  Serial.begin(9600);
  pinMode(LED_PIN, OUTPUT);  
  digitalWrite(LED_PIN, moo);
  man.setupReceive(RX_PIN, MAN_1200);
  man.beginReceive();
}

void loop() {
  if (man.receiveComplete()) { //received something
    uint16_t m = man.getMessage();
    man.beginReceive(); //start listening for next message right after you retrieve the message
    if (man.decodeMessage(m, id, data)) { //extract id and data from message, check if checksum is correct
      //id now contains ID of sender (or receiver(or any other arbitrary 4 bits of data))
      //data now contains one byte of data received from sender
      //both id and data are BELIEVED (not guaranteed) to be transmitted correctly

      Serial.print("m : ");
      Serial.println(m);
      Serial.print("id :");
      Serial.println(id);
      Serial.print("data : ");
      Serial.println(data);
      Serial.println(" "); 
      moo = ++moo % 2;
      digitalWrite(LED_PIN, moo);
    }
  }
}

Merci d’avance

alb12: Bonjour, Je souhaiterais envoyer et recevoir une chaîne de caractère à l'aide d'un émetteur et d'un récepteur 433Mhz, le tout à l'aide de la librairie Manchester (https://github.com/mchr3k/arduino-libs-manchester/blob/master/Manchester.h). J'arrive à envoyer, mais je n'arrive pas à récupérer la chaine. ...

bonsoir comment sais tu/valide tu que tu envoi qq chose cortectement ? 8)

Je valide l'envoie lors de la saisie d'un texte dans la console et je sais que je reçois un message à l'aide de

if (man.receiveComplete()) {

Et à l'aide de

Serial.println("////"+m); Serial.println("******"+id); Serial.println(data);

coté recepteur je vois bien que je reçois quelque chose mais ce n'est pas du texte que des entiers

alb12: Je valide l'envoie lors de la saisie d'un texte dans la console et je sais que je reçois un message à l'aide de

if (man.receiveComplete()) {

Et à l'aide de

Serial.println("////"+m); Serial.println("******"+id); Serial.println(data);

coté recepteur je vois bien que je reçois quelque chose mais ce n'est pas du texte que des entiers

bonsoir alors expose ce que tu envoi exactement et ce que tu reçois exactement

= fais une hard copie de ton monitorage

Bonsoir,

Voilà ce que j'envoie :

String(msg) : hello
uint16_t(msg) : 2264

String(msg) : a
uint16_t(msg) : 2268

String(msg) : b
uint16_t(msg) : 2268

Et voilà ce que je reçois:

m : 21464
id :5
data : 216

m : 22492
id :5
data : 220

m : 22492
id :5
data : 220

Le tout à l’aide du code posté en début du topic. PS: Voici les exemples livré avec la librairie : https://github.com/mchr3k/arduino-libs-manchester/blob/master/examples/ManchesterTX_Check/ManchesterTX_Check.ino

https://github.com/mchr3k/arduino-libs-manchester/blob/master/examples/ManchesterRX_Check/ManchesterRX_Check.ino

Merci d'avance

Personne? ;)