NRF24L01+, Arduino kullanıcıları arasında popüler bir 2.4GHz RF kablosuz Alıcı-Verici Modülüdür. Maliyet-performans oranı açısından yüksek bir itibara sahiptir ve kendi sınıfındaki en iyi özelliklere sahip modüllerden biridir. Bu blog, NRF24L01’in neler yapabileceğini açıklamayı ve bir NRF24L01 Arduino Kılavuzu sunmayı amaçlamaktadır.

nRF24L01’in iyi yanları neler?
Uygun fiyatlı ancak güvenilir 2 yönlü RF çözümleri söz konusu olduğunda, nRF24L01’den daha iyi bir iş çıkaran başka bir modül yoktur. İşte nedenleri:
Düşük maliyet – NRF24L01, piyasadaki en ucuz kablosuz alıcı-verici modüllerinden biridir, çevrimiçi olarak 2 USD’den daha az bir fiyata kolayca bulabilirsiniz!
Microcontroller/Arduino Kartı ile Eşleştirme Kolaylığı – nRF24L01, SPI protokolü veya Arduino ile eşleştirirken RF24 kütüphanesi kullanarak çeşitli mikrodenetleyici sistemleri; MCU/ARM/PIC/AVR/STM32 ile kolayca eşleştirilebilir.
2.4Ghz ile kablosuz iletişim esnekliği – 2.4GHz çalışma frekansı, diğer daha düşük çalışma frekanslarına göre daha yüksek bit hızı kullanımlarına olanak tanır. Veri iletimi için GFSK modülasyonu kullanır, bu da veri transfer hızının 250kbps, 1Mbps veya 2Mbps olabileceği anlamına gelir.
Yüksek iletim menzili – nRF24L01, doğru kurulumla kullanıldığında birkaç kilometreye kadar dalga boylarını iletebilir. Ancak, yüksek iletim menziline sahip bağımsız bir modül arıyorsanız, 1000 metreye kadar (engelsiz) kablosuz iletişim için tasarlanmış bir güç amplifikatörü ve IPX anten ile bu nRF24L01+ modülüne göz atabilirsiniz.
Sonsuz Uygulamalar – Kablosuz PC çevre birimlerinden kontrol cihazlarına ve oyuncaklara kadar, nRF24L01 birçok senaryoda kullanılabilir.
İşte uygulamaların kapsamlı olmayan bir listesi:
- Kablosuz PC Çevre Birimleri
- Fare, klavyeler ve uzaktan kumandalar
- 3’ü 1 arada masaüstü paketleri
- Gelişmiş medya merkezi uzaktan kumandaları
- VoIP kulaklıkları
- Oyun kontrol cihazları
- Spor saatleri ve sensörler
- Tüketici elektroniği için RF uzaktan kumandalar
- Ev ve ticari otomasyon
- Aktif RFID
- Varlık izleme sistemleri
- Oyuncaklar
Peki NRF24L01+ hakkında ne?
Piyasada bulunan bazı NRF24L01’lerin “+” işareti taşıdığını ve normal versiyon ile + versiyonu arasındaki farkın ne olduğunu merak etmiş olabilirsiniz.
İşte fark:
NRF24L01+, NRF24L01’in daha yeni bir versiyonudur ve havada ekstra 250kbps veri hızı sunma kapasitesine sahiptir, oysa “+” işareti taşımayan versiyon yalnızca 1Mbps ve 2Mbps sunar.
Bunun dışında, her ikisi de birbirine benzer olarak kabul edilebilir.
Her iki versiyon da veri hızı olarak 1 veya 2 MBps kullanıldığı sürece bir arada kullanılabilir.
nRF24L01+ modülü ile nRF24L01+ PA Modülü
nRF24L01+ çipine dayanan çeşitli modüller mevcuttur, işte göz atmaya değer popüler olanlar:
Birinci Versiyon:

Yukarıdaki kablosuz modül, üzerinde bir anten ile birlikte gelir. Küçük ve kompakt boyutu, dar alanlar için uygun olabilir ancak iletim menzilinde kayıplara neden olur ve modül uygulamalarını sınırlayabilir.
İkinci Versiyon:

Bu versiyon, harici bir IPX anten ile birlikte gelir ve bir güç amplifikatörü ile tasarlanmıştır. Bu, 1000 metreye kadar çok daha geniş bir iletim menzili sağlar. Böylece kablosuz iletim performansı ile maliyet arasında iyi bir denge sağlanır.
Seeed’de, online mağazamızda satın alabileceğiniz NRF24L01 modülünün ikinci versiyonunu taşıyoruz!
NRF24L01 Arduino Kılavuzu
Bu kılavuzda, üzerinde anten bulunan NRF2401’in birinci versiyonunu kullanacağız.
Bir normal kiraz anahtarı kullanarak basit tutacağız; anahtar tıklandığında, başka bir modül tarafından algılanan bir değer gönderecek ve bir WS2812 LED çubuğunu aydınlatacaktır.
Verici + Alıcı Bağlantıları:
Kullanılan kart: Arduino Nano
- Seeeduino Nano, daha iyi bir alternatif olarak düşünün
Anahtar ve Nano yapılandırması:
Anahtar, Nano üzerindeki GND ve Pin 8’e bağlanır.
Nano ve NRF24L01 pin yapılandırması:
- MISO, Nano’nun 12 numaralı pinine bağlanır
- MOSI, Nano’nun 11 numaralı pinine bağlanır
- SCK, Nano’nun 13 numaralı pinine bağlanır
- CE, Nano’nun 9 numaralı pinine bağlanır
- CSN, Nano’nun 10 numaralı pinine bağlanır
- NRF24L01’in GND ve VCC’si, Nano’nun GND ve 3.3V’una bağlanır
Arduino Nano ve Uno’nun aynı SPI pinlerini paylaştığı için kullanılması önerilir.
Verici Kodu:
Arduino’nuzu programlamak için aşağıdaki sketch kodunu Arduino IDE yazılımınıza kopyalayın.
/*
Created by Yvan / https://Brainy-Bits.com
This code is in the public domain...
You can: copy it, use it, modify it, share it or just plain ignore it!
Thx!
*/
// NRF24L01 Modül Eğitimi - Arduino NANO kullanarak Verici için Kod
//Gerekli Kütüphaneleri başta dahil et
#include "nRF24L01.h" //TMRh20 tarafından oluşturulan NRF24L01 kütüphanesi https://github.com/TMRh20/RF24
#include "RF24.h"
#include "SPI.h"
#define SwitchPin 8 // Arcade anahtarı NANO üzerindeki Pin 8'e bağlı
int SentMessage[1] = {000}; // NRF24L01 üzerinden gönderilmeden önce değeri saklamak için kullanılır
RF24 radio(9,10); // NRF24L01 için kullanılan SPI pinleri + NANO üzerindeki 9 ve 10 numaralı pinler
const uint64_t pipe = 0xE6E6E6E6E6E6; // 2 NRF24L01 arasında iletişim kurmak için aynı olmalıdır
void setup(void){
pinMode(SwitchPin, INPUT_PULLUP); // Arcade anahtarının NANO pinini Giriş olarak tanımlayın ve Dahili Pullup'ları kullanın
digitalWrite(SwitchPin,HIGH); // Başlangıçta Pin'i YÜKSEK olarak ayarlayın
radio.begin(); // NRF24L01'i başlat
radio.openWritingPipe(pipe); // NRF24L01'i iletim için hazırla
}
void loop(void){
if (digitalRead(SwitchPin) == LOW){ // Anahtar Aktif Edildiğinde
SentMessage[0] = 111;
radio.write(SentMessage, 1); // NRF24L01 üzerinden değeri gönder
}
else {
SentMessage[0] = 000;
radio.write(SentMessage, 1);
}
}
Kullanılan kart: Arduino Uno
Alıcı kısmı, Verici tarafından gönderilen bilgileri alan WS2812 LED çubuğuna sahip olacaktır.
WS2812 LED ve Uno Pin Yapılandırması:
- WS2812 üzerindeki DI pini Uno’nun 8 numaralı pinine bağlıdır
- WS2812 üzerindeki GND ve VCC, Uno’nun GND ve 5V’una bağlıdır
NRF24L01 ve Uno Pin Yapılandırması:
- MISO, Uno’nun 12 numaralı pinine bağlanır
- MOSI, Uno’nun 11 numaralı pinine bağlanır
- SCK, Uno’nun 13 numaralı pinine bağlanır
- CE, Uno’nun 9 numaralı pinine bağlanır
- CSN, Uno’nun 10 numaralı pinine bağlanır
- GND ve VCC, Uno’nun GND ve 3.3V’una bağlıdır
Alıcı Kodu:
Arduino’nuzu programlamak için aşağıdaki sketch kodunu Arduino IDE yazılımınıza kopyalayın.
/*
Yvan tarafından oluşturuldu / https://Brainy-Bits.com
Bu kod kamuya açık alandadır...
Bunu: kopyalayabilir, kullanabilir, değiştirebilir, paylaşabilir veya tamamen görmezden gelebilirsiniz!
Teşekkürler!
*/
// NRF24L01 Modül Eğitimi - Arduino UNO kullanarak Alıcı için Kod
// Gerekli Kütüphaneleri başta dahil et
#include "nRF24L01.h" // TMRh20 tarafından oluşturulan NRF24L01 kütüphanesi https://github.com/TMRh20/RF24
#include "RF24.h"
#include "SPI.h"
#include "FastLED.h" // WS2812 RGB Stick için FastLED kütüphanesi http://fastled.io/
#define NUM_LEDS 8 // Stick üzerindeki LED sayısı
#define LED_PIN 8 // RGB Stick'in Dijital Girişi (DI) UNO'nun 8 numaralı pinine bağlı
CRGB leds[NUM_LEDS]; // FastLED Kütüphanesi Başlatma
int ReceivedMessage[1] = {000}; // NRF24L01 tarafından alınan değeri saklamak için kullanılır
RF24 radio(9,10); // NRF24L01 için kullanılan SPI pinleri + UNO üzerindeki 9 ve 10 numaralı pinler
const uint64_t pipe = 0xE6E6E6E6E6E6; // 2 NRF24L01 arasında iletişim için aynı olmalıdır
void setup(void){
FastLED.addLeds<NEOPIXEL,LED_PIN>(leds, NUM_LEDS); // FastLED Kütüphanesini Ayarlama
FastLED.clear(); // RGB Stick LED'lerini Temizle
// Başlangıç LED'lerini yak
for(int x = 0; x != NUM_LEDS; x++) {
leds[x] = CRGB::Red;
}
FastLED.setBrightness(50);
FastLED.show();
radio.begin(); // NRF24L01'i Başlat
radio.openReadingPipe(1,pipe); // NRF24L01'i alıma hazır hale getir
radio.startListening(); // Bilgi alınıp alınmadığını dinle
pinMode(LED_PIN, OUTPUT); // RGB Stick UNO pinini ÇIKTI olarak ayarla
}
void loop(void){
while (radio.available())
{
radio.read(ReceivedMessage, 1); // NRF24L01'den bilgiyi oku
if (ReceivedMessage[0] == 111) // Anahtarın basılı olduğunu gösterir
{
for(int x = 0; x != NUM_LEDS; x++)
{
leds[x] = CRGB::Green;
FastLED.show();
}
}
else
{
for(int x = 0; x != NUM_LEDS; x++)
{
leds[x] = CRGB::Red;
FastLED.show();
}
}
delay(10);
}
}
Tam eğitim için buraya gidebilirsiniz!
Özet
Genel olarak, nRF24L01, düşük maliyetle kablosuz iletişim sisteminizi kurmak istiyorsanız harika bir seçenektir. Yüksek maliyet-performans oranı ve mikrodenetleyici sistemlerinizle eşleştirme kolaylığı, onu zaten popüler bir seçenek haline getiriyor.
NRF24L01+’ın 2. versiyonu, kablosuz iletişim performansında bir artış arıyorsanız kesinlikle tavsiye edilir.

