Microcontrollers Lab

Table of Contents

NRF24L01 jest jednym z legalnych komunikatorów RF do nowoczesnych zastosowań. NRF24L01 jest najtańszy i posiada bardzo dobre właściwości. Pojedynczy moduł komunikuje się na częstotliwości 2,4 GHz, co czyni go legalnym. Może nadawać i odbierać dane za pomocą jednego modułu. Transreceiving nie jest jego jedyną zdolnością, może komunikować się w sumie z 6 innymi takimi samymi modułami NRF24L01 w jednym czasie. Urządzenie komunikuje się z aplikacją Arduino i obsługuje wszystkie rodzaje aplikacji zdalnego sterowania. Ten bezprzewodowy moduł wykorzystuje protokół komunikacyjny SPI i oferuje 10MBs prędkość transmisji danych z 125 zakres adresów, co czyni go niezawodnym najbardziej niezawodny moduł RF. Moduł RF wykorzystuje moduł GFSK do transceivera danych.

Konfiguracja pinów NRF24L01

W NRF24L01 nie ma żadnych specjalnych pinów, wszystkie piny, które oferuje do komunikacji są obecne we wszystkich mikrokontrolerach i płytach. Urządzenie będzie współpracować z zewnętrznym mikrokontrolerem/Arduino poprzez te piny, aby działać. Składa się z 8 pinów. Wszystkie dostępne piny to:

Piny zasilania

VCC

Pin zasilania modułu to VCC, który łączy się z zasilaniem.

GND

nRF24L01 współpracuje z innym mikrokontrolerem i będzie potrzebował wspólnej masy do pracy z nim. Pin GND rozwiąże wymóg wspólnej masy.

Piny komunikacyjne

CE

CE jest pinem enable, który aktywuje nadawanie/odbieranie sygnału przez moduł. Aktywuje on urządzenie tylko wtedy, gdy jest na nim stan HIGH.

CSN

Ten pin służy do aktywacji nasłuchiwania i przetwarzania danych z mikrokontrolera. Aby utrzymać komunikację danych pomiędzy mikrokontrolerem a modułem powinien on być w stanie HIGH.

SCK

Jest to pin impulsu zegarowego komunikacji SPI w nRF24L01. Dane będą się przemieszczać pomiędzy modułem a mikrokontrolerem zgodnie z impulsem zegarowym na pinie SCK.

MOSI

Dane przesyłane z mikrokontrolera poprzez piny SPI będą odbierane przez nRF24L01 na pinie MOSI.

MISO

Instrukcje przesyłane z nRF24L01 za pomocą pinów SPI będą odbierane przez mikrokontroler na pinie MISO.

Pin przerwania IRQ

IRQ jest pinem przerwania, który generuje zdarzenie za każdym razem, gdy nowe dane są dostępne dla pinów SPI. Pomaga w wysyłaniu informacji zwrotnej do nadajnika.

NRF24L01 RF Module Feature

  • Pracuje na częstotliwości 2,4GHz, co czyni go legalnym w prawie każdym kraju.
  • Pojedynczy moduł może działać zarówno jako nadajnik, jak i odbiornik.
  • Wbudowana antena może wysyłać dane na odległość do 100 metrów.
  • Moduł nRF24L01 może komunikować się z maksymalnie 6 innymi modułami jednocześnie.
  • Wymaga do pracy napięcia 3,3V, ale napięcia mogą sięgać tylko do 3,6V w przeciwnym razie nie zajmie dużo czasu nagrzanie się i spalenie.
  • Urządzenie posiada wbudowany oscylator o częstotliwości 16MHz.
  • Prędkość transmisji nRF24L01 wynosi od 256kbps do 2Mbps.
  • Urządzenie posiada 125 kanałów, co daje możliwość obsługi 125 różnych sieci w jednym miejscu.
  • Częstotliwości kanałów wahają się od 2400MHz do 2525MHz.

NRF24L01 Zastosowania

  • W tworzeniu małych sieci mesh, nRF24L01 jest najlepszym wyborem do zastosowania.
  • Remote control applications at developing and commercial works wonderfully with nRF24L01.
  • Most IoT applications at home level have this wireless module but at a small level only.

Jak korzystać z modułu komunikacyjnego NRF24L01

nRF24L01 jest użyteczny ze wszystkimi mikrokontrolerami i inteligentnymi płytkami, ale aby z niego korzystać, należy zrozumieć niektóre piny i informacje o danych. Aby użyć modułu należy połączyć go z innym mikrokontrolerem za pomocą protokołu SPI. Najpierw podaj zasilanie do urządzeń, a następnie dołącz ich piny SPI zgodnie z podanym schematem.

Po dołączeniu pamiętaj, że są dwa sposoby działania nRF24L01. Pierwszym z nich jest nadajnik, a drugim odbiornik. Aby komunikować się jako nadajnik i odbiornik mikrokontroler powinien wiedzieć o tym pierwszy. W nowoczesnej aplikacji, Arduino jest jedynym urządzeniem, które obsługuje najbardziej wydajną komunikację nRF24L01.

Interfacing with Arduino

W internecie jest wiele prac i badań na temat nRF24L01, które mogą pomóc w wykorzystaniu go w wielu aplikacjach, ale jest podstawa tego modułu w Arduino każdy programista powinien zrozumieć. Podstawowym działaniem nRF24L01 jest nadajnik i odbiornik, w Arduino, oba są osiągalne poprzez następujące metody. Oto obwód dla Arduino UNO.

Jak używać jako nadajnika Przykład

Gdy nRF24L01 będzie działał jako nadajnik, wtedy może tylko przesyłać dane na jednym kanale do innego modułu. Aby użyć go jako nadajnika należy znać program w Arduino. Po wgraniu programu nie ma możliwości bez programowania zmiany trybów pomiędzy nadajnikiem a odbiornikiem. Aby użyć go jako nadajnik należy wgrać następujący kod:

Szczegóły dotyczące kodu nadajnika

Komunikacja pomiędzy Arduino a nRF24L01 zależy od następujących bibliotek:

#include <nRF24L01.h>#include <RF24.h>#include <SPI.h>

Jak wiemy, każda płytka Arduino ma określony pin SPI MISO, MOSI, oraz SCK. Tak więc Arduino nie będzie musiało o nich mówić, ale piny CSN i CE muszą zostać zainicjalizowane. Biblioteka nRF24L01 ma wbudowaną funkcję do uzyskania PINu zarówno CSN jak i CE, który jest następujący:

RF24 radio(3, 2);

Liczba 3 reprezentuje pin CE, a 2 reprezentuje pin CSN. Oba są zmienne według dowolnych pinów cyfrowych; tutaj są one zgodne z wyżej podanym układem.

Po tym moduł musi się zainicjalizować za pomocą następującej komendy:

radio.begin();

Adres jest definiowalny za pomocą 5 bitów dla urządzenia, do którego powinien komunikować odbiornik. Każdy 5-bitowy numer jest useable.

radio.openWritingPipe(10101);

Po tym moduł powinien mieć znać swój tryb. Albo pracuje jako odbiornik lub nadajnik. Poniższa komenda uczyni nRF24L01 nadajnikiem.

 radio.stopListening();

Wtedy urządzenie jest możliwe do wykorzystania jako nadajnik. Jedyną znaną rzeczą, którą trzeba zainicjować jest wysyłanie danych. Należy zawsze pamiętać, że ze względu na ograniczenia modułu jednorazowo można wysłać tylko 32 bajty danych. Poniższa komenda pomoże to zdefiniować:

const char data = "DATA";radio.write(&data, sizeof(data));

Dane nadawcze są definiowane w setupie lub pętli programu.

Jak używać NRF24L01 jako odbiornika Przykład

Powyższa część dotyczy metody nadawania, ale metoda odbiornika nie różni się od nadajnika. W nadajniku zmienią się tylko trzy instrukcje.

  • Kanał adresowy, który nie był dostępny w nadajniku
  • Inicjalizacja modułu jako odbiornika
  • Metoda odbierania i sprawdzania danych

Oto następujący kod dla odbiornika.

Szczegóły dotyczące kodu odbiornika

Jak można zauważyć, tylko trzy części różnią się dla odbiornika od nadajnika.

Pierwszą częścią jest część adresowa:

radio.openReadingPipe(0,10101);

W części adresowej są teraz dwie części. drugą jest część adresowa, która określa adres urządzenia transmisyjnego. Pierwsza część, która jest “0” definiuje kanał. Jak mówiliśmy powyżej, że moduł oferuje 6 kanałów do komunikacji w tym samym czasie, pierwsza część programowania pomoże zbudować wiele kanałów.

Druga część jest inicjalizacja modułu jako nadajnik. Aby zainicjalizować moduł jako nadajnik, zainicjuj następującą komendę:

radio.startListening();

Trzecia to odbieranie danych.

if (radio.available())

Pomoże to dowiedzieć się o przychodzących danych

radio.read( data, size );

Pomoże to odczytać dane.

NRF24L01 Przykład

Jest wiele zastosowań nRF24L01, ale robienie siatki jest jedną z najlepszych zdolności nRF24L01, która odróżnia go od innych modułów. Aby użyć go jako siatki, powinno być dostępnych w sumie 3-7 modułów. Postępuj zgodnie z podanym obrazkiem.

Poniższa instrukcja powinna być użyta do inicjalizacji różnych kanałów na końcu odbiornika.

Odbiornik nie jest w stanie rozróżnić urządzeń, więc programiści zawsze pamiętają, że dane nie powinny być takie same pomiędzy nadajnikami.

Schemat 2D

Alternatywne moduły:

  • XBee S2C Module
  • SX1278 LoRa RF Module
  • SIM900A GSM Module
  • ESP12E WiFi Module
  • PN532 NFC RFID Module
  • HM-10 Bluetooth Module
  • HC-.05 Bluetooth Module
  • 433MHz RF Receiver Module
  • 433MHz RF Transmitter Module
  • TSOP1738 IR Receiver
  • Arduino MKR1000 WiFi Board

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.