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);
}
}