a) realizzare una connessione a 433 fra due schede Arduino

Eccoci al primo passo, dobbiamo far comunicare fra loro due schede Arduino, ecco la lista del materiale che useremo :

– due schede Arduino uno
– Aukru 3x Wireless 433 MHz RF Ricevitore
– Aukru 3x Wireless 433 MHz RF Trasmettitore
– Antenna, da antenna elicoidale, 433 MHz ( se no non funzionano bene )
– cavi reistenze e minuterie varie

ecco i link Amazon per le shield Aukru 3x :

Compra su Amazon: Aukru 3x Wireless 433 MHz RF Ricevitore e Trasmettitore Modulo Per Raspberry e Arduino

 

e non dimenticatevi le antenne 433 MHz senza le quali andrete incontro a sicure difficoltà, link Amazon:

Compra su Amazon: antenna, da antenna elicoidale, 433 MHz Telecomando per Arduino Raspberry pi

ecco il codice dell’arduino trasmittente :

#include <VirtualWire.h>
#define TX_pin 12
#define LED_pin 13
#define PB_pin 3
int prec_Stato=-1;
const char *msg_ON = "LED_ON";
const char *msg_OFF = "LED_OFF";

void setup()
{
  Serial.begin(9600);
  pinMode(LED_pin,OUTPUT);
  pinMode(PB_pin,INPUT);
  digitalWrite(LED_pin, LOW);
  vw_set_tx_pin(TX_pin); // Imposto il pin per la trasmissione
  vw_setup(3000);        // Bits per sec
}

void loop()
{
  int buttonState =  digitalRead(PB_pin);
  if (buttonState!=prec_Stato)
  {
     if (buttonState==HIGH)
        vw_send((uint8_t *)msg_ON, strlen(msg_ON));
     else
        vw_send((uint8_t *)msg_OFF, strlen(msg_OFF));
     vw_wait_tx(); // Aspetta che il processo in background di spedizione sia completo
     Serial.println("Stato: "+String(buttonState) + " - Prec. Stato: "+String(prec_Stato));
     digitalWrite(LED_pin, buttonState);
     prec_Stato=buttonState;
  }
}

 

ecco il codice dell’arduino ricevente :

#include <VirtualWire.h>

#define LED_pin 13
#define RX_pin 11

void setup()
{
    pinMode(LED_pin, OUTPUT);
    digitalWrite(LED_pin, LOW);
    vw_set_rx_pin(RX_pin); //Non servirebbe: il default è 11
    vw_setup(3000);        // Bits per sec
    vw_rx_start();         // Inizio il processo di ricezione
    Serial.begin(9600);    // Solo per debug
    Serial.println("Ricevitore attivo: ");
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    if (vw_get_message(buf, &buflen)) // Non-blocking
    {
	buf[buflen]='\0'; // Metto il terminatore di stringa
        if (strncmp((char *)buf,"LED_ON",buflen)==0)
            digitalWrite(LED_pin, HIGH); // Accendo il LED
        else if (strncmp((char *)buf,"LED_OFF",buflen)==0)
            digitalWrite(LED_pin,LOW); // Spengo il LED
        Serial.print("Comando Ricevuto (" +String(buflen)+" car.): ");
        Serial.println((char *)buf+String("//"));
    }
}

 

ecco gli schemi fatti con Fritzing, da notare che per i moduli Aukru 3x Wireless 433 MHz RF non esiste uno schema ben aggiornato ma uno un pò’ approssimativo trovato a questo link :http://fritzing.org/projects/rf-433mhz-transmitterreceiver-module-with-arduino

per questo nllo schema Fritzing le immagini deimoduli con realtive antenne le ho incolate con Gimp per non far apparire al loro posto un odioso quadrettino nero .

Ricevitore

 

 

Trasmettitore

 

 

ecco invece le foto dei prototipi reali :

Ricevitore.

 

Trasmettitore.

 

ed ecco invece un brve video del sitema funzionante :