Arduino ile NRF24L01 RF alıcı-verici modülü
Proje adı: NRF24L01 2.4GHZ RF alıcı-verici modülü
Etiketler: Arduino, Arduino Uno, nRF Seri Adaptör, nRF24L01, 2.4GHZ NRF24L01 Modülü, PA LNA SMA anteni, NRF24L01 alıcı-verici modülü, WINGONEER, PA, SMA ve LNA antenli, 2.4G NRF24L01 anten kablosuz alıcı-verici modülü, Arduino, Arduino Uno , Arduino Mega, Arduino Nano, Arduino, NRF24L01 RF modülü, RF alıcı-verici modülü, 2.4G, antistatik köpükte anten, kablosuz alıcı-verici modülü kiti, SPI kablosuz veri iletim modülü, kablosuz veri toplama, NRF seri adaptör, 5V-3.3V VCC adaptörü NRF24L01 kablosuz modülü için kart, NRF24L01 için koparma adaptörü, ATMEGA48 ile NRF24L01 için kalkan, 3.3V regülatörlü nRF24L01 için taban modülü, 8pin NRF24L01, YL-105, YL 105 için USB adaptör için soket adaptör plakası, AS01-ML01DP3, Arduino Kablosuz İletişim, Arduino ile nRF24L01 – 2.4GHz RF Alıcı Verici, nRF24L01 Arduino
Ekler: kütüphane1 , sunucularetrak1 , istemcilerutrak1
Bu projede, bu parçalar gerekli ( Değerli ziyaretçiler Sen parçaların linklere proje satın tıklayarak desteklemek ve onları satın ya da diri bu web sitesini tutmamıza bağış yapabilirsiniz teşekkür ederiz.. ):
1. Arduino Uno R3 ( Arduino’nun diğer sürümünü de kullanabilirsiniz) 2 adet
2. Jumper kabloları FM
3. Arduino IDE (siz indirebilirsiniz burada )
4. NRF24L01 harici anten olmadan veya harici anten ile 2.4 GHZ RF alıcı-verici modülü PA LNA SMA -2 adet
Genel
NRF24L01 kablosuz alıcı-verici modülü, nasıl çalıştığını ve Arduino kartı ile arayüz hakkında bilgi edineceğiz.
NRF24L01 2.4GHZ RF alıcı-verici modülünü anlama
NRF24L01 2.4 GHZ RF alıcı-verici modülleri Arduino topluluğu arasında çok popüler. Bunlar alıcı-vericilerdir, yani her modül veri iletebilir ve alabilir. İki veya daha fazla Arduino kartının bir mesafeden birbirleriyle kablosuz olarak iletişim kurabilmesi, sensör verilerini uzaktan izleme, robotları kontrol etme, ev otomasyonu ve liste devam ediyor gibi birçok olasılık açar. Ucuz ama güvenilir 2 yönlü RF çözümlerine gelince, hiç kimse Nordic Semiconductor’dan nRF24L01 + alıcı-verici modülünden daha iyi bir iş yapmaz. nRF24L01 + (artı) alıcı-verici modülü, genellikle 2 dolardan daha az bir fiyata çevrimiçi olarak elde edilebilir ve bu da alabileceğiniz en ucuz veri iletişim seçeneklerinden biri haline gelir. Bu modüller çok küçüktür, neredeyse her DIY projesine kablosuz bir arayüz eklemenize izin verir.
NRF24L01 + alıcı-verici modülü, dünya çapında 2,4 GHz ISM frekans bandında çalışacak şekilde tasarlanmıştır ve veri iletimi için GFSK modülasyonunu kullanır. Veri aktarım hızı 250kbps, 1Mbps ve 2Mbps’den biri olabilir. 2,4 GHz bant, lisanssız düşük güçlü cihazların kullanımı için uluslararası olarak ayrılmış Endüstriyel, Bilimsel ve Tıbbi (ISM) bantlardan biridir. Kablosuz telefonlar, Bluetooth cihazları, yakın alan iletişimi (NFC) cihazları ve kablosuz bilgisayar ağları (WiFi), tümü ISM frekanslarını kullanır.
Modülün çalışma voltajı 1,9 ila 3,6 V arasındadır, ancak iyi haber mantık pimlerinin 5 volt toleranslı olmasıdır, bu yüzden herhangi bir mantık seviyesi dönüştürücü kullanmadan bir Arduino’ya veya herhangi bir 5V mantık mikrodenetleyicisine kolayca bağlayabiliriz. Modül programlanabilir çıkış gücü vizini destekler. 0 dBm, -6 dBm, -12 dBm veya -18 dBm’dir ve 0 dBm’de iletim sırasında inanılmaz bir şekilde yaklaşık 12 mA tüketir, bu da tek bir LED’den bile daha düşüktür. Ve en iyisi, bekleme modunda 26 µA ve güç kapama modunda 900 nA tüketir. Bu nedenle düşük güçlü uygulamalar için kablosuz cihazlardır.
NRF24L01 + alıcı-verici modülü, maksimum 10 Mb / sn veri hızı ile 4 pimli Seri Çevresel Arabirim (SPI) üzerinden iletişim kurar. Frekans kanalı (125 seçilebilir kanal), çıkış gücü (0 dBm, -6 dBm, -12 dBm veya -18 dBm) ve veri hızı (250kbps, 1Mbps veya 2Mbps) gibi tüm parametreler SPI arabirimi üzerinden yapılandırılabilir. SPI veri yolu bir Master ve Slave kavramını kullanır, çoğu yaygın uygulamada Arduino’muz Master ve nRF24L01 + alıcı-verici modülü Slave’dir. I2C veriyolundan farklı olarak, SPI veriyolundaki slave sayısı sınırlıdır, Arduino Uno’da en fazla iki SPI slave kullanabilirsiniz, yani iki nRF24L01 + alıcı-verici modülü.
Modül, 125 bağımsız kanalı kullanabilir ve bu da 125 bağımsız modemi bir ağda tek bir yerde bulundurma imkanı verir. Her kanalın 6 adede kadar adresi olabilir veya her ünite aynı anda 6 adede kadar başka ünite ile iletişim kurabilir.
Şartname:
• Frekans Aralığı 2.4 GHz ISM Bandı
• Maksimum Hava Veri Hızı 2 Mb / s
• Modülasyon Formatı GFSK
• Maks. Çıkış Gücü 0 dBm
• Çalışma Besleme Gerilimi 1,9 V – 3,6 V
• Maks. Çalışma Akımı 13.5mA
• Min. Akım (Bekleme Modu) 26µA
• Lojik Girişler 5V Toleranslı
• İletişim Aralığı 800+ m (görüş açısı)
Veri sayfasını burada bulabilirsiniz .
Dahili antenli nRF24L01 + kablosuz alıcı-verici modülü VS nRF24L01 + PA LNA harici antenli kablosuz alıcı-verici modülü
NRF24L01 + çipine dayanan birçok modül mevcuttur. Dahili antenli nRF24L01 + kablosuz alıcı-verici modülünü ve harici antenli nRF24L01 + PA LNA kablosuz alıcı-verici modülünü karşılaştıralım.
1. nRF24L01 + dahili anten ile kablosuz alıcı-verici modülü
Dahili anten kullanır. Bu, koparmanın daha kompakt bir versiyonuna izin verir. Bununla birlikte, daha küçük anten aynı zamanda daha düşük bir iletim menzili anlamına gelir. Bu sürümle açık havada 100 metrelik bir mesafeden açık bir alanda iletişim kurabileceksiniz. İç mekandaki menziliniz hafifçe zayıflayacaktır.
Harici antenli 2. nRF24L01 + PA LNA kablosuz alıcı-verici modülü
Bir SMA konektörü ve bir ördek anteni ile birlikte gelir, ancak gerçek fark bu değildir. Gerçek fark, PA, LNA ve gönderme-alma anahtarlama devresini entegre eden özel bir RFX2401C çipi ile gelmesidir . Ördek anten ile birlikte bu menzil genişletici çip, modülün yaklaşık 1000 metre daha büyük bir iletim menzili elde etmesine yardımcı olur.
PA LNA anlamı ne?
PA açılımı Güç amplifikatörü . Sadece nRF24L01 + yongasından iletilen sinyalin gücünü arttırır. Oysa LNA , Düşük Gürültülü Amplifikatör anlamına gelir . LNA’nın işlevi, antenden son derece zayıf ve belirsiz sinyali almaktır (genellikle mikrovoltlar veya -100 dBm’nin altında) ve daha faydalı bir seviyeye (genellikle yaklaşık 0.5 ila 1V) yükseltmektir. Alma yolunun düşük gürültülü amplifikatörü (LNA) ve iletim yolunun güç amplifikatörü (PA), iki sinyali ayıran ve nispeten güçlü PA çıkışının hassas LNA girişine aşırı yüklenmesini önleyen bir dupleksleyici aracılığıyla antene bağlanır.
NRF24L01 + alıcı-verici modülü nasıl çalışır?
NRF24L01 + alıcı-verici modülü Kanal adı verilen belirli bir frekansta veri iletir ve alır. Ayrıca iki veya daha fazla alıcı-verici modülünün birbirleriyle iletişim kurabilmeleri için aynı kanalda olmaları gerekir. Bu kanal 2.4 GHz ISM bandında herhangi bir frekans olabilir veya daha kesin olmak gerekirse, 2.400 ila 2.525 GHz (2400 ila 2525 MHz) arasında olabilir. Her kanal 1MHz’den daha düşük bir bant genişliğine sahiptir. Bu bize 1MHz aralıklı 125 olası kanal verir. Böylece, modül 125 farklı kanal kullanabilir ve bu da 125 bağımsız kanalı tek bir yerde çalıştırabilir.
Kanal 250kbps ve 1Mbps hava veri hızında 1MHz’den daha düşük bir bant genişliğine sahiptir. Bununla birlikte, 2Mbps hava veri hızında, 2MHz bant genişliği doldurulur (RF kanalı frekans ayarının çözünürlüğünden daha geniştir). Bu nedenle, üst üste binmeyen kanalları sağlamak ve 2Mbps modunda çapraz konuşmayı azaltmak için iki kanal arasında 2MHz aralık bırakmanız gerekir.
Seçtiğiniz kanalın RF kanalı frekansı aşağıdaki formüle göre ayarlanır: Frek (Seçili) = 2400 + CH (Seçili). Örneğin, veri aktarımı için kanalınız olarak 108 seçerseniz, kanalınızın RF kanalı frekansı 2508MHz (2400 + 108) olur.
NRF24L01 +, Çok Kademeli adlı bir özellik sunar. Çoklu Vericiler Tek Alıcı için bir kısaltmadır. Her bir RF kanalının mantıksal olarak Veri Boruları adı verilen 6 paralel veri kanalına ayrıldığı. Başka bir deyişle, bir veri borusu fiziksel RF Kanalındaki mantıksal bir kanaldır. Her veri hattının kendi fiziksel adresi (Veri Hattı Adresi) vardır ve yapılandırılabilir.
Yukarıdaki resme bakarsanız, birincil alıcının aynı anda 6 farklı verici düğümünden bilgi toplayan bir hub alıcısı gibi davrandığını göreceksiniz. Hub alıcısı herhangi bir zamanda dinlemeyi durdurabilir ve verici görevi görür. Ancak bu bir seferde sadece bir boru / düğüm yapılabilir.
NRF24L01 + alıcı-verici modülü, Enhanced ShockBurst olarak bilinen bir paket yapısı kullanır. Bu basit paket yapısı 5 farklı alana bölünmüştür.
The original ShockBurst structure consisted only of Preamble, Address, Payload and the Cyclic Redundancy Check (CRC) fields. Enhanced ShockBurst brought about greater functionality for more enhanced communications using a newly introduced Packet Control Field (PCF).
This new structure is great for a number of reasons. Firstly, it allows for variable length payloads with a payload length specifier, meaning payloads can vary from 1 to 32 bytes.
Secondly, it provides each sent packet with a packet ID, which allows the receiving device to determine whether a message is new or whether it has been retransmitted (and thus can be ignored).
Finally, and most importantly, each message can request an acknowledgement to be sent when it is received by another device.
Orijinal ShockBurst yapısı yalnızca Giriş, Adres, Yük ve Döngüsel Artıklık Kontrolü (CRC) alanlarından oluşuyordu. Geliştirilmiş ShockBurst, yeni tanıtılan bir Paket Kontrol Alanı (PCF) kullanarak daha gelişmiş iletişim için daha fazla işlevsellik sağladı. Bu yeni yapı birkaç nedenden dolayı harika. İlk olarak, bir yük uzunluğu belirleyicisi ile değişken uzunluklu yüklere izin verir, yani yükler 1 ila 32 bayt arasında değişebilir. İkincisi, gönderilen her pakete, alıcı cihazın bir mesajın yeni olup olmadığını veya yeniden iletilip iletilmediğini (ve böylece göz ardı edilip edilemeyeceğini) belirlemesini sağlayan bir paket kimliği sağlar. Son olarak ve en önemlisi, her mesaj başka bir cihaz tarafından alındığında bir bildirim gönderilmesini talep edebilir.
Şimdi, iki nRF24L01 + modülünün birbirleriyle nasıl işlem yaptığını daha iyi anlamak için üç senaryoyu tartışalım.
1. Onay ve kesinti ile işlem. Bu olumlu bir senaryo örneğidir. Burada verici, alıcıya bir veri paketi göndererek bir iletişimi başlatır. Tüm paket iletildikten sonra, alındı paketinin (ACK paketi) alınmasını bekler (yaklaşık 130 µs). Alıcı paketi aldığında vericiye ACK paketi gönderir. ACK paketini alırken verici, yeni verilerin kullanılabilir olduğunu göstermek için kesme (IRQ) sinyali verir.
2. Veri paketi ile işlem kaybedildi. Bu, iletilen paketin kaybı nedeniyle yeniden iletimin gerekli olduğu olumsuz bir senaryodur. Paket iletildikten sonra verici ACK paketinin alınmasını bekler. Verici, Otomatik Yeniden İletim-Gecikme (ARD) süresi içinde alamazsa, paket yeniden iletilir. Yeniden iletilen paket alıcı tarafından alındığında, ACK paketi iletilir ve bu da vericide kesinti oluşturur.
3. Onay ile işlem kaybedildi. Bu yine ACK paketinin kaybedilmesi nedeniyle yeniden iletimin gerekli olduğu olumsuz bir senaryodur. Burada alıcı ilk denemede paketi alsa bile, ACK paketinin kaybı nedeniyle verici, alıcının paketi hiç almadığını düşünür. Bu nedenle, Otomatik Yeniden İletme-Gecikme süresi bittikten sonra paketi yeniden iletir. Artık alıcı, öncekiyle aynı paket kimliğini içeren paketi aldığında, atar ve ACK paketini tekrar gönderir.
Bu paketin tamamı, mikro denetleyicinin katılımı olmadan nRF24L01 + yongası tarafından otomatik olarak yapılır.
NRF24L01 + 2.4 GHZ RF alıcı-verici modülü aralığı nasıl geliştirilir
1. Güç kaynağı gürültüsünü azaltın. Radyo Frekansı (RF) sinyali üreten bir RF devresi, güç kaynağı gürültüsüne karşı çok duyarlıdır . Kontrol edilmezse, güç kaynağı gürültüsü elde edebileceğiniz aralığı önemli ölçüde azaltabilir.Güç kaynağı bağımsız bir pil değilse, gücün üretilmesiyle ilişkili gürültü olması ihtimali yüksektir. Bu gürültünün sisteme girmesini önlemek için, güç kaynağı hattı boyunca nRF24L01 + modülüne fiziksel olarak mümkün olduğunca yakın bir 10 µf filtre kondansatörü yerleştirilmesi tavsiye edilir. Üstesinden gelmenin en kolay yolu, nRF24L01 için çok ucuz bir Adaptör Modülü kullanmaktır.
Adaptör modüllerinin kendi 3.3V voltaj regülatörü ve bir dizi filtre kapasitörü vardır, böylece 5V güç kaynağı ile çalıştırabilirsiniz.
2. Kanal frekansınızı değiştirin. Bir RF devresi için bir başka potansiyel gürültü kaynağı, özellikle aynı kanalda ayarlanmış komşu ağlarınız veya diğer elektronik cihazlardan gelen parazitiniz varsa dış ortamdır. Bu sinyallerin soruna neden olmasını önlemek için nRF24L01 + modülünüzde en yüksek 25 kanalı kullanmanızı öneririz. Bunun nedeni WiFi’nin alt kanalların çoğunu kullanmasıdır.
3. Düşük Veri Hızı. NRF24L01 +, -94dBm olan 250Kbps hızda en yüksek alıcı hassasiyetini sunar. Ancak 2MBps veri hızında, alıcı hassasiyeti -82dBm’ye düşer. Bu dili konuşursanız, 250Kbps’deki alıcının 2Mbps’den yaklaşık 10 kat daha hassas olduğunu bilirsiniz. Bu, alıcının 10 kat zayıf bir sinyalin kodunu çözebileceği anlamına gelir. Alıcı hassasiyeti, alıcının bir RF sinyali algılayabileceği en düşük güç seviyesidir. Negatif sayının mutlak değeri ne kadar büyük olursa, alıcı hassasiyeti de o kadar iyi olur. Örneğin, −94 dBm alıcı hassasiyeti −82 dBm alıcı duyarlılığından 12 dB daha iyidir. Böylece, veri hızını düşürmek elde edebileceğiniz aralığı önemli ölçüde artırabilir. Ayrıca, çoğu projemiz için 250Kbps hız fazlasıyla yeterli.
4. daha yüksek çıkış gücü. Maksimum çıkış gücünün ayarlanması iletişim aralığını da geliştirebilir. NRF24L01 +, çıkış gücünden birini seçmenizi sağlar. 0 dBm, -6 dBm, -12 dBm veya -18 dBm. 0 dBm çıkış gücünün seçilmesi havadan daha güçlü sinyal gönderir.
NRF24L01 2.4GHZ RF alıcı-verici modülünün sinyalleri ve bağlantıları
Bu modülün güç tüketimi, iletim sırasında tek bir LED’den bile daha düşük olan yaklaşık 12mA’dır. Modülün çalışma voltajı 1.9 ila 3.6V arasındadır, ancak iyi olan şey diğer pimlerin 5V mantığını tolere etmesidir, bu yüzden herhangi bir mantık seviyesi dönüştürücüsü kullanmadan onu bir Arduino’ya kolayca bağlayabiliriz.
Bu pinlerden üçü (MISO, MOSI, SCK) SPI iletişimi içindir ve Arduino’nun SPI pinlerine bağlanması gerekir, ancak her Arduino kartının farklı SPI pinlerine sahip olduğunu unutmayın. CSN ve CE pinleri Arduino kartının herhangi bir dijital pinine bağlanabilir ve modülü bekleme veya aktif modda ayarlamak ve iletim veya komut modu arasında geçiş yapmak için kullanılır. Son pim (IRQ), kullanılması gerekmeyen bir kesme pimidir.
GND – topraklama pimi. Arduino kartı GND pinine bağlandı.
VCC – güç kaynağı pimi. Arduino kartına bağlı 3V3 pin
IRQ – Maskelenebilir kesme pimi
MISO (Master In Slave Out) – Master’a veri göndermek için Slave hattı. Üç durum seçeneğiyle SPI Slave Veri Çıkışı
MOSI (Master Out Slave In) – Çevre birimlere veri göndermek için Master hattı. SPI Slave Veri Girişi
CE – Chip Enable RX veya TX modunu etkinleştirir
CSN (Chip Select Not) – SPI Chip Seçimi. Aktif-DÜŞÜK pim ve normalde YÜKSEK tutulur. Bu pim azaldığında, nRF24L01 SPI portunu veri için dinlemeye başlar ve buna göre işler.
SCK (Seri Saat) – SPI Saati. Master tarafından üretilen veri iletimini senkronize eden saat darbeleri.
kablolama
Giriş voltajı 1,9V ila 3,6V arasındadır. Bu voltajı aşmayın, eğer daha fazla ise NRF24L01 modülünüz hasar görür.
NRF24L01 + alıcı-verici modülü çok fazla veri aktarımı gerektirdiğinden, bir mikrodenetleyicideki donanım SPI pinlerine bağlandığında en iyi performansı verecektir.
1. Ana (sunucu) kablolama
2. Bağımlı (istemci) kablolama
Adım Adım talimat
1. Ana bilgisayara (sunucu) taslak yükleme (Arduino Uno 1)
1. Kablolama yapın.
2. Adruino Uno kartınızı PC’nize takın ve doğru kart ve com bağlantı noktasını seçin.
3. Sunucu kroki1’inizi doğrulayın ve Adruino Uno’nuza yükleyin .
2. Taslağa köle (istemci) yükleniyor (Arduino Uno 2)
1. Kablolama yapın.
2. Adruino Uno kartınızı PC’nize takın ve doğru kart ve com bağlantı noktasını seçin.
3. Client sketch1’i doğrulayın ve Adruino Uno’nuza yükleyin .
3. İletişimin kurulması
1. PuTTY.org’dan PuTTY istemcisini indirmeniz ve yüklemeniz gerekir .
2. Kodu Arduino Uno 1 ve Arduino Uno 2’ye yüklediğinizde, müşteri bir mesaj gönderecektir: “Merhaba Dünya!” ve sunucuya istemciye aşağıdaki iletiyi geri gönderiyor: “merhaba”. Bu mesajlar seri monitörde görüntülenir.
3.
özet
NRF24L01 kablosuz alıcı-verici modülü, nasıl çalıştığını ve Arduino kartı ile arayüz hakkında bilgi edindik. nRF24L01 kablosuz alıcı-verici modülleri, alıcı ve verici birbirine yakın olduğunda çok iyi çalışır. Eğer onları çok uzağa yerleştirmiş olursanız, iletişimi kaybedersiniz. İletişim aralığı da değişir. Herhangi bir engel olup olmadığına ve harici bir anten kullanıp kullanmadığınıza ortamınızda ne kadar gürültü bağlı olduğuna bağlı olacaktır.
Birden fazla düğüme sahip olabilir ve birden fazla istemciye izin vermek için farklı aygıt adresleri ayarlayabilirsiniz.Kütüphane, bu kavramı kullanmanıza yardımcı olacak bir örnekle birlikte gelir.Arduino IDE’nizde yüklü olan kütüphaneyi tutmak. Git Dosya -> Örnekler -> Radiohead -> nrf24 ve bu örnekleri “kullanmak nrf24_reliable_datagram_client ” ve ” nrf24_reliable_datagram_server “. Koda bakarsanız, her cihaz için farklı adresler ayarlayabilirsiniz. Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz .
Arduino Mega kartını kullanmak istiyorsanız, pinleri değiştirmelisiniz: Arduino Mega’da 10-> 53, 13-> 52, 11-> 51, 12-> 50 ve bunun yerine aşağıdakileri kullanarak (kodda 7. satır) başlatın: RH_NRF24 nrf24 (8, 53); //mega
Kütüphaneler:
• Bu proje açıklamasının başlangıcındaki eklere bakın
• RadioHead kütüphanesi dahildir. PC’nizdeki kütüphaneleri indirin, sıkıştırın ve ekleyin: örneğin C: \ Users \ toshiba \ Documents \ Arduino \ libraries veya C: \ Program Files (x86) \ Arduino \ library. Bu bağlantıya PC’nizde yüklü olan Adruino IDE programının Tercihleri bölümünde ulaşabilirsiniz. Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz . Piyasada bulunan hemen hemen tüm RF modülleriyle çalışır.
Proje kaynakları:
NRF24L01_ARDUINO.pdf____indir
• Bu proje açıklamasının başlangıcındaki eklere bakın