Envío de String por NRF24L01

Hola, soy nuevo en el foro, y espero que sea posible que ayudarme

Quiero enviar un String de un NRF24L01 (emisor) a un receptor que tengo en otra computadora.

Pero no sé si es posible porque en el receptor solo me salen simbolos, estuve leyendo y me parece que el problema es por los códigos ASCII, pero no estoy seguro, y no se si es posible hacer que aunque se envien codigos ASCII el receptor pueda interpretar y sacar el caracter correcto por el monitor serial en lugar de simbolos extraños.

He utilizado unos códigos que he encontrado en internet y los he modificado con este fin, ya que en el codigo de esa pagina el ejemplo solo envia letras.

Lo que quiero es enviar la hora que tiene el reloj DS1307 que tengo en el arduino emisor, junto con otros valores.

En el monitor serial del emisor se imprime todo correctamente, pero en el monitor serial del receptor solo salen caracteres sin sentido.

Estos son los códigos:

Emisor:

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <Time.h>
#include <DS1307RTC.h>    
RF24 radio(9,10);

const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
float t;
int constante=3;

void setup() {
  pinMode(10, OUTPUT); 
    Serial.begin(9600);
    radio.begin();
    setSyncProvider (RTC.get); 
  
    radio.setRetries(15,15);   // Maximos reintentos 
    //radio.setPayloadSize(8);   // Reduce el payload de 32 si tienes problemas
  
    // Open pipes to other nodes for communication
    radio.openWritingPipe(pipes[0]);
    radio.openReadingPipe(1,pipes[1]);

}

void loop() {
   radio.stopListening();    // Paramos la escucha para poder hablar
   t=analogRead(0)* (5.0 / 1023.0);;
   
   
   if(second()==0){
   
   String Enviar= "";

    Enviar+= String (day());
    Enviar+= ("/");
    Enviar+= String (month());
    Enviar+= ("/");
    Enviar+= String (year());
    Enviar+= ("  ");
    Enviar+= String (hour());
    Enviar+= (":");
    Enviar+= String (minute());
    Enviar+= (":");
    Enviar+= String (second());
    Enviar+= ("  ");
    Enviar+= String (t);
    Enviar+= ("  ");
    Enviar+= String (constante);

    Serial.println (Enviar);
    bool envio = radio.write( &(Enviar), sizeof(Enviar));
}
}

Receptor

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

String Enviar= "";
RF24 radio(9,10);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

void setup(void)
{
    pinMode(10, OUTPUT); 
    Serial.begin(9600);
    
    radio.begin();
    radio.setRetries(15,15);
    //radio.setPayloadSize(8);
    radio.startListening();
    radio.openWritingPipe(pipes[1]);
    radio.openReadingPipe(1,pipes[0]);
}


void loop ()
{
    if ( radio.available() )  // Si hay datos disponibles
    {
radio.read(&Enviar, sizeof (Enviar));
Serial.println(Enviar);        
    }
}

gracias

Usa las librerías de Tmrh20, que escalan desde conexiones punto a punto hasta topologias en Red comunes o MESH.

El enlace te lleva al repositoio Github de Tmrh20, pero ahi tienes todas sus opciones.
Lo que estas usando es RF24.
Si quieres red busca RF24Network.

Gracias,

Quieres decir que el problema que tengo es de librería y que no hay ningún problema co el código?

Si es así probaré con todas las librerías porque no se cual es la que necesito.

Gracias

Esto es un error

t=analogRead(0)* (5.0 / 1023.0);;

doble ;

Los caracteres sin sentido puede deberse a que los lees o interpretas mal.

Mira este caso similar al tuyo a ver si te ayuda