Receiver Specifications

DetailSpecificationImage
Product ModelXD-RF-5V

Operating voltage5V
Quiescent Current4 mA
Receiving frequency 433.92MHZ
Receiver sensitivity-105DB
Pinout from left → rightVCC, DATA,DATA,GND


Simular Product:

https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=433Mhz+superheterodyne+receiver&_sacat=0

https://www.seeedstudio.com/433MHz-ASK-OOK-Super-heterodyne-Receiver-module-p-2205.html


Image






Transmitter Specifications

DetailSpecificationImage
Product ModelXD-FST

Launch distance20-200 meters (different voltage, different results)
Operating voltage3.5-12V
Operating modeAM
Transfer rate4KB / S
Transmitting power10mW
Transmitting frequency433M
Pinout from left → rightDATA; VCC; GND



Antenna

Length should be cut to a 1/2 to a 1/4 of the wavelength. Since our wavelength is 69.24 cm. A 1/4 of that would be 17.31 cm. The antenna can be coiled to make it shorter.


How does it work?

Our RF signal will use Amplitude Shift Keying.



A digital 1 turns the carrier on while a digital 0 turns tit off.


Sample Code


// ask_transmitter.pde
// -*- mode: C++ -*-
// Simple example of how to use RadioHead to transmit messages
// with a simple ASK transmitter in a very simple way.
// Implements a simplex (one-way) transmitter with an TX-C1 module

#include <RH_ASK.h>
#include <SPI.h> // Not actually used but needed to compile

//RH_ASK (uint16_t speed=2000, uint8_t rxPin=11, uint8_t txPin=12, uint8_t pttPin=10, bool pttInverted=false)
RH_ASK driver(2000, D2, D1, D6); // ESP8266 or ESP32: do not use pin 11 or 2

//Connect data to pin 5/D1

void setup()
{
    Serial.begin(115200);    
    Serial.println("\n\nrfSender Started\n\n");
    if (!driver.init()){
         Serial.println("init failed");
    }
    //driver.setModeTx();
    Serial.println("Initialized");
}

void loop()
{
    Serial.println("Sending hello");
    const char *msg = "hello";

    driver.send((uint8_t *)msg, strlen(msg));
    driver.waitPacketSent();
    delay(1000);
}


// ask_receiver.pde
// -*- mode: C++ -*-
// Simple example of how to use RadioHead to receive messages
// with a simple ASK transmitter in a very simple way.
// Implements a simplex (one-way) receiver with an Rx-B1 module

#include <RH_ASK.h>
#include <SPI.h> // Not actually used but needed to compile

//RH_ASK (uint16_t speed=2000, uint8_t rxPin=11, uint8_t txPin=12, uint8_t pttPin=10, bool pttInverted=false)
RH_ASK driver(2000, D1, D2, D6); // ESP8266 or ESP32: do not use pin 11 or 2

//Connect data to pin 5/D1

void setup()
{

    Serial.begin(115200);    
    Serial.println("\n\nrfReceiver Started\n\n");
    if (!driver.init()){
         Serial.println("init failed");
    }
    Serial.println("Initialized");
    
}

void loop()
{
    
    uint8_t buf[RH_ASK_MAX_MESSAGE_LEN];
    uint8_t buflen = sizeof(buf);

    if (driver.recv(buf, &buflen)) // Non-blocking
    {

      // Message with a good checksum received, dump it.
//      driver.printBuffer("Got:", buf, buflen);

      Serial.print("Message Received: ");
      Serial.println((char*)buf);  
      
    }
}


Reference


  • No labels