NRF24L01-Komunikacja bezprzewodowa stanowi dużą część współczesnych układów i urządzeń, ponieważ każdy chce pozbyć się kabli. Pomyśl o bezprzewodowej myszy, klawiaturze lub kontrolerze gier, których używasz. Byłoby to kiepskie doświadczenie użytkownika, który miałby do czynienia z przewodami łączącymi urządzenie z komputerem lub konsolą. Na szczęście, moduł nRF24L01 zmienił grę, zapewniając tani bezprzewodowy transceiver RF. Spójrzcie tylko! Posiada on jedne z najlepszych funkcji w swoim segmencie, a my przyjrzymy się mu szczegółowo poniżej, plus jak go połączyć z Arduino.
Czym są nRF24L01 i nRF24L01+?
Plus (+) oznacza przyrost, więc nRF24L01+ jest nowszą wersją bezprzewodowego transceivera nRF24L01. Podstawową różnicą między nimi jest to, że wersja plus może wykonać dodatkowe 250kb/s prędkości danych on-air, podczas gdy nRF24L01 ma tylko 1Mb/s i 2Mb/s.
W związku z tym, można mieszać te dwa w swoim projekcie tak długo, jak prędkość transmisji danych jest 1Mb/s lub 2Mb/s. Poza tym, oba są identyczne, szczególnie biorąc pod uwagę wygląd zewnętrzny.
Co jest dobrego w nRF24L01?
Jeśli szukasz niedrogiego i niezawodnego modułu dwukierunkowego transceivera RF, nRF24L01 jest najlepszy, ponieważ posiada następujące zalety.
Niski koszt
Moduł ten jest jednym z najbardziej przystępnych cenowo bezprzewodowych transceiverów w swoim segmencie, ponieważ kosztuje mniej niż 2$.
Łatwość parowania z mikrokontrolerami/płytkami Arduino
Jeśli chcesz zbudować lub opracować prototyp systemu bezprzewodowego dla swojego projektu, łatwo jest sparować moduł z różnymi mikrokontrolerami. Należą do nich:
Arduino (przy użyciu biblioteki RF24)
ARM, MCU, STM32, AVR oraz PIC przy użyciu protokołu komunikacyjnego SPI.
Pracuje na częstotliwości 2,4 GHz
Częstotliwość robocza pasma 2,4 GHz oferuje większą elastyczność w komunikacji bezprzewodowej niż niższe częstotliwości, ponieważ pozwala na wykorzystanie większej prędkości transmisji. Ponadto, wykorzystuje modulację GFSK do transmisji danych, umożliwiając szybkość transmisji 1Mb/s lub 2Mb/s. Praca na niższej prędkości transmisji i w otwartej przestrzeni daje modułowi zasięg 100 metrów.
Duży zasięg transmisji
Moduł ten przy prawidłowym ustawieniu może przesłać sygnał na odległość kilku metrów. Jednak nRF24L01+ (PA/LNA) jest lepszy pod względem wydajności transmisji na duże odległości. Posiada zasięg transmisji 1000 metrów bez barier głównie dzięki antenie IPX i wzmacniaczowi mocy,
Wiele aplikacji
Z tak imponujących funkcji, moduł ma wiele zastosowań, które obejmują następujące:
Kontrolery gier

Zestawy słuchawkowe VoIP
Aktywny RFID
Zabawki takie jak pojazdy RC
Systemy śledzenia aktywów
Automatyka domowa i komercyjna
Bezprzewodowe urządzenia peryferyjne do komputerów PC
Czujniki
Zegarki sportowe
Systemy zdalnego sterowania dla zaawansowanych centrów multimedialnych
Zdalne sterowanie RF dla elektroniki użytkowej
Zestawy biurkowe 3 w 1
Wyprowadzenia modułu transceivera nRF24L01
Moduł ten posiada następujący schemat wyprowadzeń.

Moduł nRF24L01+ vs. moduł nRF24L01+ PA/LNA
Strukturalnie, nRF24L01 jest mniejszy niż wersja PA/LNA, ponieważ posiada wbudowaną antenę. Ta ostatnia ma złącze SMA z zewnętrzną anteną typu kaczka (IPX), przez co jest większa.
PA i LNA to odpowiednio skrót od Power Amplifier i Low-Noise Amplifier. Najistotniejsza różnica między nimi jest jednak w wydajności. PA wzmacnia sygnał mocy podczas transmisji, natomiast LNA wzmacnia słaby i niepewny sygnał docierający do anteny do użytecznego poziomu napięcia.

Schemat blokowy nRF24L01+ PA/LNA
Przychodzący sygnał jest zwykle w mikrowoltach lub niższy niż -100dBm, a LNA podnosi go do około 0,5-1V. Duplekser łączy oba te układy z anteną, zapobiegając przeciążeniu przez mocniejszy PA wrażliwego sygnału LNA.
Wersja nRF24L01+ PA/LNA posiada układ RFX2401, który integruje LNA, PA oraz obwody przełączające nadawanie/odbiór. W połączeniu z anteną kaczą, układ ten umożliwia modułowi osiągnięcie zasięgu transmisji 1000 metrów.
Jak działa moduł transceivera nRF24L01+?
Moduł nRF24L01+ nadaje i odbiera dane na określonych częstotliwościach zwanych kanałami. Częstotliwości te mieszczą się w przedziale od 2,4GHz do 2,525GHz (2400MHz - 2525MHz), przy czym każdy kanał RF zajmuje mniej niż 1MHz pasma. W sumie daje to 125 możliwych do wybrania kanałów w odstępie 1MHz.
Należy zauważyć, że kanał może zajmować 1MHz lub mniej tylko przy transmisji 250kb/s lub 1Mb/s. Jeśli wysyłasz dane z szybkością 2Mb/s, potrzebujesz 2MHz pasma, aby zapewnić, że nie ma nakładania się i zminimalizować przesłuch.
Sieć Multiceiver
Moduł posiada również funkcję multiplikatora (wiele nadajników, jeden odbiornik), gdzie każdy ze 125 kanałów ma sześć rur danych. Technicznie, każdy z tych sześciu jest kanałem logicznym w fizycznym kanale RF.
Można skonfigurować każdą rurę danych, aby mieć unikalny adres fizyczny, z głównym odbiornikiem działającym jako hub. Ten koncentrator może w każdej chwili przełączyć się na nadajnik do każdego kanału, ale po kolei.
Pobór mocy
Podobnie jak nRF24L01, moduł ten jest wysoce energooszczędny, wymaga około 12mA podczas nadawania (mniej niż dioda LED). Posiada on wbudowany regulator napięcia, który akceptuje napięcie 1,9 - 3,6V, ale pozostałe piny mogą pracować w logice 5V. Dlatego można podłączyć transceiver do Arduino bezpośrednio (bez użycia konwertera poziomów logicznych).

Socket adapter płyta dla 8Pin NRF24L01, bezprzewodowy moduł transceive dla Arduino.
Jak połączyć moduł nRF24L01+ z Arduino
Moduły nRF24L01 i nRF24L01+ mają takie same wyprowadzenia, więc ich łączenie jest podobnym procesem. Będziesz potrzebował następujących elementów:
Dwa mikrokontrolery Arduino UNO, NANO, lub MEGA
Dwa moduły transceivera nRF24L01, nRF24L01+, lub nRF24L01+ PA/LNA
Zworki
Arduino IDE
Okablowanie
Musisz zbudować dwa obwody, jeden pełniący rolę nadajnika, a drugi odbiornika. Okablowanie dla obu jest identyczne. Do tego przykładu użyjemy układu nRF24L01+.

Schemat obwodu nRF24L01+ Arduino
Wykonaj następujące połączenia:

Arduino UNO i NANO mają te same piny interfejsu SPI, co oznacza, że możesz je wymieniać. Jednak piny SPI sprzętu MEGA są inne. Tutaj dowiesz się, jak zamienić piny.


Arduino UNO vs. NANO vs. MEGA. Zwróć uwagę na różnice w wyprowadzeniach pinów.
Kod nadajnika Arduino
Aby uprościć zadanie połączenia tych dwóch urządzeń, użyj biblioteki RF24. Otwórz menadżera bibliotek Arduino IDE, wchodząc w Sketch > Include Library > Add. Biblioteka ZIP. Wybierz plik zip biblioteki, a następnie napisz następujący kod dla nadajnika.


Objaśnienie
Ten kod Arduino służy do wysyłania z nadajnika wiadomości "Hello World". Rozpoczyna się on od zaimportowania trzech bibliotek. Następnie tworzy obiekt, który przyjmuje dwa parametry jako PINy. Wskazują one na połączenia CE i CSN.
Następnie kod tworzy tablicę bajtów reprezentującą adres rury dla dwóch modułów do komunikacji. Adres pozwala wybrać konkretny moduł, z którym ma się dzielić, który powinien być taki sam w nadajniku i odbiorniku. Można zmienić tę wartość adresu na dowolny 5-literowy ciąg znaków, a jest to konieczne, gdy w sieci mamy kilka modułów.
Kolejnym krokiem jest inicjalizacja obiektu radiowego (begin i open-writing-pipe) przy użyciu adresu nadajnika. Zakończ ten fragment funkcją stop-listening, aby ustawić moduł jako nadajnik.
Ostatnia część tworzy tablicę znaków w celu przypisania wiadomości nadawczej, Hello World. Radio. Write wysyła wiadomość do odbiornika. Pierwszy parametr to wiadomość do wysłania, a drugi to liczba bajtów w tym tekście.
Jednorazowo można wysłać 32 bajty, ponieważ taki jest maksymalny rozmiar pakietu w nRF24L01+.
Receiver Code
Wpisz ten kod dla odbiornika.


W funkcji setup rozpocznij komunikację szeregową, a następnie użyj funkcji open-reading-pipe, aby ustawić adres na taki sam jak nadajnik. Pierwszy parametr argumentu to numer strumienia, który może być z zakresu 1-6 (kanał częstotliwości), a drugi to adres do zbierania danych.
Następnie należy ustawić tryb pracy nadajnika i odbiornika na słuchanie i odbieranie danych bez nadawania. Na koniec funkcja pętli stale sprawdza czy przychodzą jakieś dane za pomocą radia. Available. Jeśli ten parametr boolean zwraca wartość true (gdy w buforze są dane), program tworzy tablicę zawierającą 32 znaki. Wszystkie te znaki są w tym momencie zerowe.
Funkcja radio. Read odczytuje przychodzące dane i zapisuje je w tablicy, zastępując zera. Na koniec funkcja println wyświetla na ekranie komunikat, którym powinno być kilka linijek "Hello World" zgodnie z otrzymanymi danymi.
Podsumowanie
Podsumowując, nRF24L01 jest niezawodnym rozwiązaniem, jeśli chcesz zbudować tani moduł transceivera RF dla swojego projektu. Skontaktuj się z nami, jeśli potrzebujesz dalszych wyjaśnień na temat urządzenia lub sposobu jego integracji z Twoim projektem.
