4 x Arduinoyu Nrf24L01 ile kablosuz haberleştirme

4nrf24l01_pinMerhaba arkadaşlar. Akıllı ev uygulamalarında kullanılabilecek bir projeyi paylaşmak istiyorum. 1 arduino unoyu verici olarak kulandım. 3 adet arduino pro mini ise alıcı olarak kullandım. Verici devremize 6 lı tuş takımı ekledim. Alıcı devrelerine ise birer adet 1 kanallı röle bağladım. Verici devremizdeki tuşlardan 3 tanesi röleleri açıyor diğer 3 tanesi de röleleri kapatıyor.

Nrf24L01 kablosuz iletişim modulünü arduinolara resimdeki yazılı pinlere bağladım.

verici devresinde butonları 2,3,4,5,6,7 pinlere bağladım.

1.alıcı devresinde röleyi 2.pine bağladım

2.alıcı devresinde röleyi 3. pine bağladm.

3.alıcı devresinde röleyi 4.pine bağladım.

 

4nrf24l01_1

 

Devre şeması, kodlar ve kütüphane

Verici devresinin kodları

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN 9
#define CSN_PIN 10
int BUTON1=2;
int BUTON2=5;
int BUTON3=3;
int BUTON4=6;
int BUTON5=4;
int BUTON6=7;
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int data[6];

void setup()
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
pinMode(BUTON1, INPUT);
pinMode(BUTON2, INPUT);
pinMode(BUTON3, INPUT);
pinMode(BUTON4, INPUT);
pinMode(BUTON5, INPUT);
pinMode(BUTON6, INPUT);
}

void loop()
{

data[0] = digitalRead(BUTON1);
data[1] = digitalRead(BUTON2);
data[2] = digitalRead(BUTON3);
data[3] = digitalRead(BUTON4);
data[4] = digitalRead(BUTON5);
data[5] = digitalRead(BUTON6);
radio.write( data, sizeof(data) );

}

1.alıcı devresinin kodları

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10

const uint64_t pipe = 0xE8E8F0F0E1LL;

RF24 radio(CE_PIN, CSN_PIN);

int data[6];

void setup()
{

pinMode(2,OUTPUT);

digitalWrite(2,HIGH);

Serial.begin(9600);

radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();;
}
void loop() {
if ( radio.available() )
{
radio.read( data , sizeof(data) );
bilgi(data[0],data[1],data[2],data[3],data[4],data[5]);
}
}

void bilgi(int led1, int led2, int led3, int led4, int led5, int led6) {

if (led1==1){digitalWrite(2,LOW);}
if (led2==1){digitalWrite(2,HIGH);}

}

2.alıcı devresinin kodları

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10

const uint64_t pipe = 0xE8E8F0F0E1LL;

RF24 radio(CE_PIN, CSN_PIN);

int data[6];

void setup()
{

pinMode(3,OUTPUT);

digitalWrite(3,HIGH);

Serial.begin(9600);

radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();;
}
void loop() {
if ( radio.available() )
{
radio.read( data , sizeof(data) );
bilgi(data[0],data[1],data[2],data[3],data[4],data[5]);
}
}

void bilgi(int led1, int led2, int led3, int led4, int led5, int led6) {

if (led3==1){digitalWrite(3,LOW);}
if (led4==1){digitalWrite(3,HIGH);}

}

3.alıcı devresinin kodları

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10

const uint64_t pipe = 0xE8E8F0F0E1LL;

RF24 radio(CE_PIN, CSN_PIN);

int data[6];

void setup()
{

pinMode(4,OUTPUT);

digitalWrite(4,HIGH);

Serial.begin(9600);

radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();;
}
void loop() {
if ( radio.available() )
{
radio.read( data , sizeof(data) );
bilgi(data[0],data[1],data[2],data[3],data[4],data[5]);
}
}

void bilgi(int led1, int led2, int led3, int led4, int led5, int led6) {

if (led5==1){digitalWrite(4,LOW);}
if (led6==1){digitalWrite(4,HIGH);}

}


Youtube Channel https://www.youtube.com/channel/UCkN1xuy45a97hGPCtbUK0Dg

  
  1. Ahmet Emin Dilben 14 Mart 2016 19:06

    Tebrikler güzel proje olmuş bi ara bende deneyeceğim

    Cevapla
  2. ENES YILDIZ 14 Mart 2016 18:07

    Hocam kullandığınız arduino pro miniler 3.3v luk mu?

    Cevapla
  3. Arduinocu 14 Mart 2016 05:35

    Tebrikler Dincer

    Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.