nRF24L01 Kablosuz iletişim modülü kullanımı

bolubeyi

Profesyonel Üye
Katılım
27 Eyl 2008
Mesajlar
1,470
Puanları
421
Yaş
52
Konum
Trabzon
Bu dersimizde nRF24L01 Kablosuz iletişim modülü ve arduino kullanarak uzakta bulunan bir lambayı arada kablo bağlantısı olmadan yakıp söndürmeyi öğreneceğiz.

Devremizin verici kısmında 2 adet buton var. Birinci butona basılınca alıcı devredeki lamba ikinci butona basılana dek yanacak.

İkinci butona basıldığında ise alıcı kısımdaki lamba birinci butona basılana dek sönecektir.

Devremiz alıcı ve verici kısım olmak üzere 2 kısımdan oluşmaktadır. Her iki devrede de birer arduino ve nRF24L01 kablosuz iletişim modülü bulunmaktadır.


nRF24L01-3.jpg


Wireless NRF24L01 2.4GHz Transceiver Modül - 2.4GHz Alıcı Verici Modül

nRF24L01.jpg


nRF24L01-2.jpg


Nordic firmasınca geliştirilen NRF24L01 kablosuz modül, 2.4GHz frekansında kablosuz haberleşme yapmanıza imkan sağlayan düşük güç tüketimine sahip modüldür.

Çeşitli hobi, robotik ve endüstriyel projelerde sıklıkla kullanılabilecek 2MBps haberleşme hızına sahip olup, SPI arabirimini destekler.

Özellikleri:
2.4GHz bandında yayın yapabilir.
250KBps, 1MBps ve 2MBps gibi hızlarda haberleşme hızı seçilebilir.
Gelişmiş ShockBurst™ hızlandırma protokolünü desteklemektedir.
Ultra düşük güç tüketimi
Çalışma Voltajı: 1.9-3.6V
IO Portları Çalışma Voltajı:0-3.3V/5V
Verici Sinyal Gücü: +7 dB
Alıcı Hassasiyeti ≤ 90dB
Haberleşme Mesafesi: Açık Alanda 250m
Boyutları: 15x29mm

Devre şeması:
semanrf24.bmp


Verici devre kodları:
Kod:
#include  <SPI.h> // SPI Arayüzünü dahil ettik.
#include "nRF24L01.h" // RF24 kütüpanelerini dahil ettik.
#include "RF24.h" // RF24 kütüpanelerini dahil ettik.
int bilgi[1]; //Göndereceğimiz mesaj değişkenini oluşturduk.
RF24 radio(9,10); //RF24 kütüphanesi tarafından kullanılacak olan 2 pinin 9. ve 10. pinlerin olduğunu belirttik.
const uint64_t pipe = 0xE8E8F0F0E1LL; // Pipe (kanal) tanımlamasını yaptık.
int buton=3; // butonun bağlı olduğu pin
int buton2=4; // butonun bağlı olduğu pin

void setup() 
{
 radio.begin(); // Kablosuz iletişimi başlattık.
 radio.openWritingPipe(pipe); // Gönderim yapacağımız kanalın ID'sini tanımladık.
 pinMode(buton, INPUT);
 pinMode(buton2, INPUT);
} 

void loop()
{
 if (digitalRead(buton) == HIGH)
 { 
 bilgi[0] = 111; // bilgi değişkenine "1" yazılsın
 radio.write(bilgi, 1); //Sonra da bu bilgi gönderilsin.
 } 

  if (digitalRead(buton2) == HIGH)
 { 
 bilgi[0] = 000; // bilgi değişkenine "0" yazılsın
 radio.write(bilgi, 1); //Sonra da bu bilgi gönderilsin.
 } 
}

Alıcı devre kodları:
Kod:
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int bilgi[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int lamba = 3;

void setup()
{
 Serial.begin(9600);
 radio.begin();
 radio.openReadingPipe(1,pipe);
 radio.startListening();
 pinMode(lamba, OUTPUT);
}

void loop()
{
 if (radio.available())
 {
   bool done = false;    

     done = radio.read(bilgi, 1);      
     if (bilgi[0] == 111)
     {
      digitalWrite(lamba, HIGH);
     }

     if (bilgi[0] == 000)
     {
      digitalWrite(lamba, LOW);
     }

  }

}

Konuya ait tüm dosyalar ve alıcı verici kütüphanesi orjinal konu ekinde mevcuttur. Üyelik gerektirir.
 

İşçi Mühendis

Profesyonel Üye
Katılım
7 Nis 2008
Mesajlar
1,758
Puanları
956
Hocam ben bunlardan gram anlamıyorum iş alanımda olmadığı için ama ortada güzel bir çalışma ve emek görüyorum, ellerinize sağlık....
 
Katılım
3 Mar 2021
Mesajlar
5
Puanları
1
Yaş
27
Merhabalar, güzel çalışma olmuş elinize sağlık, güncel bilgilere ulaşmak için aşağıdaki linkede göz atabilirsiniz.
Gerekli dosyalar ve kodlar videonun açıklama kısmında mevcuttur.

 

mosar

Üye
Katılım
4 Nis 2006
Mesajlar
3
Puanları
1
Yaş
37
Hocam elinize sağlık. Ben iki ayrı vericiden tek alıcıya mesaj göndermek isytiyorum. Bunun için gönderi kanllarını nasıl farklı olarak oluşturabilirim. teşekkürler
 
Konu Sah
bolubeyi

bolubeyi

Profesyonel Üye
Katılım
27 Eyl 2008
Mesajlar
1,470
Puanları
421
Yaş
52
Konum
Trabzon
bilgi[0] = 111; ve bilgi[0] = 000; yazan yerler 2 farklı komut için. Farklı değerler girerek başka vericiler ile aynı alıcıya komut gönderilebilir.
 

Forum istatistikleri

Konular
121,743
Mesajlar
858,292
Kullanıcılar
437,721
Son üye
Batuhan_Sahin

Yeni konular

Üst