NRF24L01 Ultra Low Power 2.4GHz RF Wireless Transceiver (Pack of 25)
NRF24L01 Ultra Low Power 2.4GHz RF Wireless Transceiver (Pack of 25)
The NRF24L01 is a 2.4GHz RF wireless transceiver module designed for ultra-low power consumption, making it ideal for battery-powered devices and IoT applications. This module is a popular choice for wireless communication due to its reliability, ease of use, and cost-effectiveness.
The NRF24L01 is a transceiver module that enables wireless communication between devices. It operates on the 2.4GHz frequency band and supports multiple wireless protocols, including IEEE 802.15.4 and proprietary protocols. The module is designed to be used in pairs, where one device acts as a transmitter and the other as a receiver.
| The NRF24L01 is widely used in various IoT applications, including |
Wireless sensor networks
Home automation systems
Industrial control systems
Wearable devices
Robotics
Drones
Smart home devices
Gaming controllers
2.4GHz
Up to 2Mbps
1.9V to 3.6V
| + Transmit mode | 11.3mA |
| + Standby mode | 26 A |
-94dBm
Up to 0dBm
126 channels
-40C to 125C
-40C to 150C
| The NRF24L01 has a 6-pin interface, which includes |
VCC (Power Supply)
GND (Ground)
CSN (Chip Select)
CE (Chip Enable)
SCK (Serial Clock)
MOSI (Master Out Slave In)
MISO (Master In Slave Out)
| The NRF24L01 complies with the following certifications |
FCC Part 15.247 (USA)
ETSI EN 300 220 (Europe)
ARIB STD-T66 (Japan)
Industry Canada RSS-210 (Canada)
The NRF24L01 is backed by a 1-year warranty and supported by a comprehensive documentation set, including datasheets, user manuals, and application notes. Additionally, the manufacturer provides technical support and engineering assistance to ensure easy integration and optimal performance.
NRF24L01 Ultra Low Power 2.4GHz RF Wireless TransceiverOverviewThe NRF24L01 is a popular, ultra-low power 2.4GHz RF wireless transceiver module designed for wireless communication in various applications, including IoT, robotics, and wireless sensor networks. This module operates at a frequency of 2.4GHz and is compatible with multiple protocols, including IEEE 802.15.4 and Zigbee.Key FeaturesUltra-low power consumption: 12mA in transmit mode, 13.5mA in receive mode, and 900nA in standby mode
High-speed data transmission: up to 2Mbps
Long-range communication: up to 100 meters (line of sight)
125 available channels
SPI interface for easy communication with microcontrollers
Supports multiple protocols: IEEE 802.15.4, Zigbee, and custom protocolsPinout| Pin | Description |
| --- | --- |
| VCC | Power supply (1.9V to 3.6V) |
| GND | Ground |
| CSN | Chip select (active low) |
| SCK | Clock (SPI) |
| MOSI | Master out, slave in (SPI) |
| MISO | Master in, slave out (SPI) |
| IRQ | Interrupt request |
| CE | Chip enable (active high) |Code Examples### Example 1: Basic Communication using ArduinoIn this example, we will demonstrate basic communication between two Arduino boards using the NRF24L01 module.Transmitter Code (Arduino)
```c
#include <RF24.h>#define CE_PIN 9
#define CSN_PIN 10RF24 radio(CE_PIN, CSN_PIN);const char message[] = "Hello, world!";void setup() {
Serial.begin(9600);
radio.begin();
radio.setRetries(15, 15);
radio.openWritingPipe((const char)0xF0F0F0F0E1LL); // Set the writing pipe
}void loop() {
radio.stopListening();
radio.startTransmit();
radio.write(message, sizeof(message));
radio.stopTransmit();
Serial.println("Message sent !");
delay(1000);
}
```Receiver Code (Arduino)
```c
#include <RF24.h>#define CE_PIN 9
#define CSN_PIN 10RF24 radio(CE_PIN, CSN_PIN);void setup() {
Serial.begin(9600);
radio.begin();
radio.setRetries(15, 15);
radio.openReadingPipe((const char)0xF0F0F0F0E1LL); // Set the reading pipe
radio.startListening();
}void loop() {
if (radio.available()) {
char message[32] = {0};
radio.read(message, sizeof(message));
Serial.println(message);
}
delay(100);
}
```### Example 2: Wireless Sensor Network using Raspberry Pi and PythonIn this example, we will demonstrate a wireless sensor network using multiple NRF24L01 modules connected to Raspberry Pi boards, communicating with each other using Python.Transmitter Code (Python)
```python
import RPi.GPIO as GPIO
import spidev# Set up GPIO pins
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)# Set up SPI communication
spi = spidev.SpiDev()
spi.open(0, 0)# NRF24L01 pin connections
CSN_PIN = 17
CE_PIN = 18# Initialize the NRF24L01 module
def init_nrf24l01():
spi.writebytes([0x08, 0x03]) # Initialize the module
spi.writebytes([0x00, 0x03]) # Set the transmission power# Send data using the NRF24L01 module
def send_data(data):
spi.writebytes([0x00, 0x01]) # Switch to transmission mode
spi.writebytes(data)
spi.writebytes([0x00, 0x00]) # Switch back to standby modeinit_nrf24l01()while True:
data = "Hello from Raspberry Pi !"
send_data(data.encode())
print("Data sent !")
time.sleep(1)
```Receiver Code (Python)
```python
import RPi.GPIO as GPIO
import spidev# Set up GPIO pins
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)# Set up SPI communication
spi = spidev.SpiDev()
spi.open(0, 0)# NRF24L01 pin connections
CSN_PIN = 17
CE_PIN = 18# Initialize the NRF24L01 module
def init_nrf24l01():
spi.writebytes([0x08, 0x03]) # Initialize the module
spi.writebytes([0x00, 0x03]) # Set the transmission power# Receive data using the NRF24L01 module
def receive_data():
spi.writebytes([0x00, 0x02]) # Switch to reception mode
data = spi.readbytes(32)
return data.decode()init_nrf24l01()while True:
data = receive_data()
print("Received data:", data)
time.sleep(1)
```These examples demonstrate the basic usage of the NRF24L01 module in various contexts. You can modify and extend these examples to suit your specific application requirements.