Ayuda Serial Arduino Yun

Hola, estoy intentando que el arduino Yun reciba mediante un modulo RF a 433 Mhz y dato y lo envíe a la parte de linux para que lo mueste en un servidor web pero si tengo el cable de la patilla data del modulo RF metido en la patilla Rx del arduino yun cuando accedo al servidor no responde. Hay alguna incompatibilidad con los puertos serie? Un saludo.

Este es el código que meto en el arduino

#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>

YunServer server;

#define BAUD_RATE       1200        // Tasa de transmision

// Definicion de bytes para el protocolo
#define BYTE_SINC       0xAA    // Byte de sincronia
#define BYTE_INICIO     0x7E    // Byte delimitador de inicio
#define BYTE_DIR_RX     0x01    // Dirección asignada al nodo receptor
#define TAM_TRAMA       4       // Cantidad de bytes en una trama
#define LED             6

int direc, dato,dato_correcto;

/* Declaracion de funciones */
void Recibir();    //Funcion de recepcion serial


void setup(void)
{

  pinMode(LED,OUTPUT);
  Bridge.begin();
  server.listenOnLocalhost();
  server.begin();
  

}




void loop(void)
{
  
  Recibir();       // Funcion de recepcion

  YunClient client = server.accept();

  if (client) {
    String command = client.readString();
    command.trim();
    if (command == "temperature") {
      int val = dato_correcto;
      client.print(val);
    }
    client.stop();
  }

  delay(50);
}


void Recibir()
{

  Serial1.begin(BAUD_RATE);


  // Ejecutar solo si se recibieron la cantidad minima de caracteres por trama
  if (Serial1.available() >= TAM_TRAMA)
  {
    // Buscar un byte de inicio, si se lo encuentra procesar los bytes
    // siguientes (son parte de la trama)
    if (Serial1.read() == BYTE_INICIO)
    {
      direc = Serial1.read(); // Leer el byte de direccion
      // Verificar que la trama este dirigida a nosotros
      if (direc == BYTE_DIR_RX)
      {
        dato = Serial.read();    // Leer el byte de datos
        if (Serial1.read() == (direc + dato))  // Verificar el checksum
        {

          dato_correcto = dato;
          if(dato_correcto==2)
              digitalWrite(LED,HIGH);
          
        }
      }
    }
  }
}

Y este es el código html que meto en la SD

<!DOCTYPE html>
<head>
    <script type="text/javascript" src="zepto.min.js"></script>
    <script type="text/javascript">
        function refresh() {
            $('#content').load('/arduino/temperature');
        }
    </script>
</head>
<body onload="setInterval(refresh, 1000);">
    <span id="content">Waiting for Arduino...</span>
</body>

Si tengo la patilla de data del modulo conectada al Rx del arduino yun en el explorador se queda en Waiting for Arduino… y no muestra el valor.

Nadie sabe??

no tengo la yun y no se su funcionamento exacto,si se que se comunica con linux por un puente serial y que el atmega lleva incorporado el usb ,por lo que es posible que si haya algun tipo de interferencia con el serial.puedes probar ,mientras alguien sugiera algo mejor ,crear un puerto virtual con la libreria SoftwareSerial y conectar ahi el modulo rf para descartar esas posibles interferencias (si hablas de conectar al rx ,supongo que el modulo rf trabaja con serial):

jose:
no tengo la yun y no se su funcionamento exacto,si se que se comunica con linux por un puente serial y que el atmega lleva incorporado el usb ,por lo que es posible que si haya algun tipo de interferencia con el serial.puedes probar ,mientras alguien sugiera algo mejor ,crear un puerto virtual con la libreria SoftwareSerial y conectar ahi el modulo rf para descartar esas posibles interferencias (si hablas de conectar al rx ,supongo que el modulo rf trabaja con serial):
Arduino - SoftwareSerial

Muchas gracias. Lo probaré.

Saludos
Hay cosas que no se pueden mezclar en la vida. Por ejemplo el alcohol y el conducir, quienes lo hacen corren el riesgo de causar daños mortales.

Al unir dos tipos de señales, o protocolos, puedes causar daños en las partes. Es decir el modulo RF433 envía datos al Arduino, y la comunicación RX también envía datos, imagina que uno de ellos esta en alto mientras que otro envía una valor bajo. Hay prácticamente un corto entre las dos señales. Es decir estas conectando dos transmisores a un solo pin receptor y eso no se hace.

Lo que si puedes hacer es conectar un transmisor a varios pines receptores. Así que cambia el pin que usas para recibir los datos del RF433, ya que RX se reserva normalmente para la conexión serial.