PitRF433 trasmissione RF a 433 Mhz
Sempre validi i moduli di trasmissione RF a 433Mhz.
Le istruzioni e il codice di questo articolo sono tratti dal sito di BresciaNet
I modulini in azione:
Cosa serve:
- 1 sensore RF 433 Mhz tx trasmettitore
- 1 sensore RF 433 Mhz rx ricevitore
- Due Arduini
- cavetti
Codice sorgente trasmettitore:
//http://www.brescianet.com/appunti/Elettronica/Arduino/corso/Esempio_RF315-433MHZ.htm
/* ------------------------------------------------------
Invia il testo scritto sul Serial Monitor del trasmettitore
al Serial Monitor del ricevente
--------------------------------------------------------- */
#include "VirtualWire.h"
int i=0;
char buffer[VW_MAX_MESSAGE_LEN-3]; // posso spedire 26 char al massimo
#define RX_pin 12
void setup()
{
Serial.begin(9600);
Serial.println("Trasmettitore:");
vw_set_tx_pin(RX_pin);
vw_setup(3000);
}
void loop()
{
if ( (Serial.available() > 0) && (i <(VW_MAX_MESSAGE_LEN-4) ) )
//if ( (i <(VW_MAX_MESSAGE_LEN-4) ) )
{
buffer[i++] = Serial.read();
delay(10); // piccolo ritardo per evitare che spezzi l'invio della frase
}
else if (i>0)
{
buffer[i]='\0';
vw_send((uint8_t *)&buffer, i+1); // spedisce al massimo VW_MAX_MESSAGE_LEN-3 {26} caratteri
vw_wait_tx(); // Aspetta che il processo in background di spedizione sia completo
Serial.print(buffer+String(" -->> send (")+String(i)+String(" char)\n"));
i=0;
}
}
Codice sorgente ricevitore:
//http://www.brescianet.com/appunti/Elettronica/Arduino/corso/Esempio_RF315-433MHZ.htm
/* ------------------------------------------------------
Riceve il testo scritto sul Serial Monitor del trasmettitore
e lo mostra sul suo Serial Monitor (ricevente).
--------------------------------------------------------- */
#include "VirtualWire.h"
#define RX_pin 11
void setup()
{
Serial.begin(9600);
Serial.println("Ricevitore:");
vw_set_rx_pin(RX_pin);
vw_setup(3000);
vw_rx_start();
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen))
{
buf[buflen]='\0'; // Metto il terminatore di stringa
Serial.println(String("Receive (") +String(buflen-1)+String(" char) --> {") +(char *)buf+"}");
}
}