Arduino RaspberryPI Tutorials

Raspberry Pi 2 verso Arduino: Accedere LED Wireless

By on 20 Febbraio 2016

Per poter eseguire questo tutorial dovete aver fatto quello di base cioè: Comunicazione Tra Raspberry e Arduino a 433 Mhz

Ora che abbiamo fatto comunicare i 2 dispositivi facciamo accendere un LED a distanza.

Trasmettitore

Per quanto riguarda il raspberry PI non va fatto niente. Entriamo nella cartella dove è presente il codice compilato codesend (della 433Util) e rimaniamo in attesa.

root@raspberrypi:/# cd /home/pi/domotica/433Utils/RPi_utils/
root@raspberrypi:/home/pi/domotica/433Utils/RPi_utils# ls -l
total 84
-rwxr-xr-x 1 root root 17754 Feb 19 16:14 codesend
-rw-r--r-- 1 root root  1038 Feb 19 15:52 codesend.cpp
-rw-r--r-- 1 root root  1684 Feb 19 16:14 codesend.o
-rw-r--r-- 1 root root   327 Feb 19 15:52 Makefile
-rw-r--r-- 1 root root 17686 Feb 19 15:52 RCSwitch.cpp
-rw-r--r-- 1 root root  3838 Feb 19 15:52 RCSwitch.h
-rw-r--r-- 1 root root 13344 Feb 19 16:14 RCSwitch.o
-rw-r--r-- 1 root root   820 Feb 19 15:52 README.md
-rw-r--r-- 1 root root  1227 Feb 19 15:52 RFSniffer.cpp
-rw-r--r-- 1 root root  1087 Feb 19 15:52 send.cpp

 

Ricevitore

Lato ricevitore abbiamo il nostro Arduino (qualsiasi modello va bene). Ora in aggiunta al ricevitore (puoi trovare i collegamenti in questo articolo) aggiungiamo un semplice LED al PIN 10 (va bene in realtà qualsiasi pin !!). Di seguito il semplice collegamento:

Arduino433LED

Apriamo l’ide di Arduino e scriviamo il seguente codice:

/*
  Simple example for receiving
  
  https://github.com/sui77/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2
  pinMode(10, OUTPUT);
}

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );

      if(value == 1234){ //Quando mi arriva il numero 1234 accendo il led
        digitalWrite(10, HIGH);   // turn the LED on (HIGH is the voltage level)
        Serial.println("Accendo il led");
        delay(1000);  
      }
      if(value == 4321){ //Quando arriva il numero 4321 lo spendo
        digitalWrite(10, LOW);   // turn the LED off (HIGH is the voltage level)
        Serial.println("Spengo il led");
        delay(1000);  
      }
    }

    mySwitch.resetAvailable();
  }
}

 

Ora dal nostro raspberry inviamo i 2 segnali e controlliamo il led.

root@raspberrypi:/home/pi/domotica/433Utils/RPi_utils# ./codesend 1234
sending code[1234]
root@raspberrypi:/home/pi/domotica/433Utils/RPi_utils# ./codesend 4321
sending code[4321]

 

TAGS
RELATED POSTS

LEAVE A COMMENT

IL FALCY
Turin, Italy

Hi my name is Falcy and this is my World! I use this blog theme to tell people my story. Through all the places and things I see around the world, there isn't a best way to share my experience! Follow my daily updates and discover with me the essence of traveling!

Visited Places