Taillieu.Info

More Than a Hobby..

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /customers/3/2/5/taillieu.info/httpd.www/templates/taillieuinfo_joomla3_rev1/functions.php on line 194

XY-MK-5V 433Mhz Data Radio Range Report

At 3. v    on the Transmitter we achieved 31 meters 
At 5v     on Transmitter we achieved 47 meters 
At 7.2v   on Transmitter we achieved 82 meters !

The Code used on the Transmitter is as follows 
Code:
#include <LiquidCrystal.h>
#include <VirtualWire.h>

typedef struct roverRemoteData 
{
  int    TX_ID; 
  int    Sensor1Data;// The variable were the data from each sensor
  int    Sensor2Data;// will be stored
  int    Sensor3Data;
  int    Sensor4Data;
  int    Sensor5Data;// will be stored
  int    Sensor6Data;
};


void setup() {
  Serial.begin(9600);
  // LED


  // VirtualWire setup
  vw_setup(2000); // Bits per sec
  vw_set_tx_pin(11);

}
void loop()
{
  struct roverRemoteData payload;

  payload.TX_ID = 3;
  payload.Sensor1Data =255;// analogRead(Sensor1Pin);
  payload.Sensor2Data =4;// analogRead(Sensor2Pin);
  payload.Sensor3Data =4;// analogRead(Sensor3Pin);
  payload.Sensor4Data =4;// analogRead(Sensor4Pin);
  payload.Sensor5Data =4;// analogRead(Sensor1Pin);
  payload.Sensor6Data =4;// analogRead(Sensor2Pin);


  vw_send((uint8_t *)&payload, sizeof(payload));
  vw_wait_tx();
  vw_send((uint8_t *)&payload, sizeof(payload));
  vw_wait_tx();
  vw_send((uint8_t *)&payload, sizeof(payload));
  vw_wait_tx();
  vw_send((uint8_t *)&payload, sizeof(payload));
  vw_wait_tx();

}

the RX code 

Code:
#include <VirtualWire.h>  
int RX_ID;
int TX_ID =3;

typedef struct roverRemoteData
{
int    TX_ID; 
int    Sensor1Data;// The variable were the data from each sensor
int    Sensor2Data;// will be stored
int    Sensor3Data;
int    Sensor4Data;
int    Sensor5Data;// will be stored
int    Sensor6Data;
};
void setup() {
              Serial.begin(9600);
              vw_setup(2000);
              vw_set_rx_pin(11); 
              vw_rx_start(); 
                   
              }  
void loop()
{
      struct roverRemoteData receivedData;
      uint8_t rcvdSize = sizeof(receivedData);
      vw_wait_rx();

if (vw_get_message((uint8_t *)&receivedData, &rcvdSize)) 
{
  if (receivedData.TX_ID == 3) 
    { 
         //Serial.println("------------------------New MSG-----------------------");
         //Serial.print("TX ID = ");
         Serial.print(TX_ID);
         //Serial.print("Sensor1Data:");
         Serial.print(receivedData.Sensor1Data);
         //Serial.print("Sensor2Data:");
         Serial.print(receivedData.Sensor2Data);
         //Serial.print("SensorData3:");
         Serial.print(receivedData.Sensor3Data);
         //Serial.print("SensorData4:");
         Serial.print(receivedData.Sensor4Data);
          //Serial.print("SensorData5:");
         Serial.print(receivedData.Sensor5Data);
         //Serial.print("SensorData6:");
         Serial.println(receivedData.Sensor6Data);
         //Serial.println("-----------------------End of MSG--------------------");
        } 
      else
        { 
Serial.println(" ID Does not match waiting for next transmission ");
        } } }


Please note that this code only prints out 
"3,255,4,4,4,4,4" as this was all that was needed for our tests. 

Hope this helps someone with there projects!