Arduino nRF24l01 Kablosuz Haberleşme

Arduino ile kablosuz haberleşme üzerine çalışmalar yapıyorum ve bir projemde her hangi bir ağa bağlanmadan, sadece 2 cihaz arasında (2 Arduino) haberleşmeyi sağlamam gerekti ve bunun için en uygun modülün nRF24l01 olduğuna karar verdim. Ama yaşadığım başka bir sıkıntı vardı, göndermem gereken verileri sadece karakter olarak gönderebiliyordum.

Bu sorunu çözmek için uzun araştırmalar yaptım. Ama modülün kendi örnekleri ve modül hakkında yazılan blog yazıları hem göndermem gereken mesajı bir ‘integer’ dizi olarak göndermiyor, hem de karmaşık yollar ile çözüme gitmeye çalışıyor ve bu benim işime yaramıyordu. O yüzden, okuması ve kullanması oldukça basit ve tek seferde birden fazla veriyi – tipi (int, float…) önemli değil – bir dizi halinde göndererek 2 modül arasında haberleşmeyi sağlayabileceğimiz bir hale getirdim.

Modülleri, alıcı ve verici için aynı şekilde bağlıyoruz.

Arduino nRF24L01 Modülü Bağlantısı
(Görsel: Turkcell Geleceği Yazanlar)

Bunu için öncelikle gerekli olan RF24 kütüphanesini kurmanız gerekiyor. (Kütüphaneye, Github sayfamdan ulaşabilirsiniz.)

Kodların içerisine gerekli olan açıklama satırlarını eklediğim için ayrıntılı olarak buradan açıklamayacağım.

Kodlara ve kütüphaneye Github profilim üzerinden ulaşabilirsiniz. Yaşadığınız sorunları yorum olarak belirtirseniz elimden geldiği kadar yardımcı olmaya çalışacağım.

Verici Modülünün Kodları:

https://gist.github.com/ea473be9404efc4b1b1eb7165926647a

Alıcı Modülünün Kodları:

https://gist.github.com/2aebd28bb2eda0ed538c02029565b8b3

“Arduino nRF24l01 Kablosuz Haberleşme” üzerine 5 yorum

  1. Merhaba

    Anlatımınız çok güzel fakat ben beceremedim sanırım. Verici kısmında veriler iletildi diyor arada tx hatası yazıyor ama iletildi diyor. Alma da ise “Haberlesme Baslatildi..” kısmında kalıyorum. Atıyorum bir tane kabloyu çıkarsam veriler alınıyor diyip saçma sapan verileri almaya başlıyor. Nerede hata yapmış olabilirim ? RF24-master kütüphanesi RF24-master adı altında ilgili klasörlere attım. Hata nerede çözebilmiş değilim 🙁 Yardımcı olursan sevinirim.

    1. Merhaba Ali,

      nRF24L01 modülü ile çalışmak gerçekten zor olabiliyor. Ben ilk modülü çalıştırmak istediğimde 6-7 gün uğraşarak çalıştırmıştım.

      Ben burada paylaştığım şekilde bağlantı yaparak sürekli olarak kullanabiliyorum. Senden ricam, bağlantıyı yaptıktan sonra bir multimetre ile tüm bacaklar arasında kısa devre olup olmadığını kontrol edebilir misin?

      Ayrıca, kodlar içerisindeki CE ve CSN pinlerinin tanımlamalarını yaparken farklı pinler tanımlamıştım. Ona dikkat ederek yaptığını düşünüyorum.

      Kısa devre olup olmadığını kontrol ettikten sonra tekrar yazar mısın?

  2. Merhaba, ben bir projemde alıcınında vericiye değer gönderip verici kısmındaki ekrandan okumak istiyorum. Bunu nasıl yapabilirim.
    Örn: alıcı kısmındaki akünün voltaj değerini verici kısmında görmek istiyorum ve verici kısmı yazılı komutları sürekli olarak uygulasın. Yani vericideki butona bastığımızda alıcıdaki led yansın ama alıcı kısmının akü voltaj değerinide veriye bağlı olan ekranda göstersin istiyorum.

    1. Merhaba,

      Dediğiniz olayı RF24 kütüphanesi dokümantasyonunu inceleyerek bulabilirsiniz.
      Öncelikle bu şekilde bağlantı gerçekleştirdikten sonra her iki cihazın da birbirini dinlemesi için startListening() ve stopListening() fonksiyonlarını kullanarak bir yapı oluşturmanız gerekiyor. Cihazlar sürekli birbirlerini dinleyebiliyor halde olması gerekiyor.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.