Modulul RF transmisie/receptie 433MHz

In acest articol vom folosi un set de module RF pe 433MHz pentru a transmite prin unde radio diferiti parametri intre 2 module Arduino.

Aceste module sunt foarte ieftine si asigura o transmisie pe distanta de cateva zeci de metri.

Modulele sunt cele din poza de mai jos:

 

Emitatorul are urmatoarele specificatii:

Frecventa: 433.92 MHz;

Tensiune alimentare: 3-12V.

Receptorul are urmatoarele specificatii:

Frecventa: 433.92 MHz;

Modulare: ASK (Amplitude Shift Keying);

Tensiune alimentare: 5V.

Pentru a folosi aceste module vom avea nevoie de o librarie suplimentara numita RadioHead.

Emitatorul

Vom folosi emitatorul impreuna cu Arduino. Acesta se conecteaza in acest mod:

Emitator     ---        Arduino

ATAD          -          D12

VCC            -          +5V

GND           -           GND

Sketchul folosit este cel de mai jos:

#include <RH_ASK.h>
#include <SPI.h>
RH_ASK driver;

void setup() {
  Serial.begin(9600);
  if (!driver.init())
    Serial.println("Eroare initializare");
}

void loop() {
  const char *msg = "Salut, ce mai faci?";
    driver.send((uint8_t *)msg, strlen(msg));
    driver.waitPacketSent();
    delay(1000);
}

Receptorul

Pentru partea de receptie vom folosi modulul conectat la Arduino in acest mod:

Receptor (nr. pin de la stanga spre dreapta)        ---            Arduino

pin 1                                                                       -             +5V

pin 2 sau 3                                                             -             D11

pin 4                                                                       -              GND

Inormatiile receptionate le vom afisa in terminalul serial.

Sketchul folosit pentru a receptiona mesajul emis este urmatorul:

#include <RH_ASK.h>
#include <SPI.h>
RH_ASK driver;

void setup() {
  Serial.begin(9600);
  if (!driver.init())
    Serial.println("Eroare initializare");
}

void loop() {
 uint8_t buf[20];
    uint8_t buflen = sizeof(buf);
    if (driver.recv(buf, &buflen))
    {
      int i;
      Serial.print("Mesaj receptionat: ");
      Serial.println((char*)buf);         
    }
}

Autentificare