En la era de la comunicación inalámbrica, el módulo transceptor nRF24L01 se ha convertido en una herramienta indispensable para proyectos de Arduino que requieran transmitir datos de forma inalámbrica en la frecuencia de 2,4 GHz. En esta guía completa, exploraremos en detalle cómo utilizar este versátil módulo con Arduino, desde su configuración hasta la transmisión de datos. ¡Prepárate para llevar tus proyectos al siguiente nivel con el nRF24L01!
Esta publicación pretende ser una guía completa para el módulo transceptor de RF nRF24L01 – 2,4 GHz. Explicaré lo que hace, mostraré sus especificaciones y compartiré un ejemplo de proyecto Arduino que puedes adoptar y aplicar a tus propios proyectos.
Tengo guías más detalladas para otros sensores populares, échales un vistazo a continuación:
- Instrucciones completas para el sensor ultrasónico HC-SR04
- Instrucciones completas para el sensor de humedad y temperatura DHT11/DHT22
- Instrucciones completas para el Módulo Transmisor/Receptor HF 433 MHz
- Arduino con sensor de movimiento PIR
Descripción
Estos módulos de RF son muy populares entre los aficionados a Arduino. El nRF24L01 se utiliza para una variedad de aplicaciones que requieren control inalámbrico. Son transceptores, lo que significa que cada módulo puede enviar y recibir datos.
Estos módulos son muy económicos y se pueden utilizar con cualquier microcontrolador (MCU).
Especificaciones nRF24L01 – Transceptor RF de 2,4 GHz
- Transceptor IC de RF GFSK de 2,4 GHz de un solo chip y bajo coste
- Alcance con antena: Velocidad de 250 Kb (área abierta) >1000 metros
- Rendimiento: consumo de energía extremadamente bajo
- Voltaje de entrada: 3,3 V
- Pines: tolerante a 5V
- Precio: $2
¿Donde comprar?
Puede comprar estos módulos por sólo unos pocos dólares. Haga clic aquí para comparar el módulo nRF24L01 en varias tiendas y encuentra el mejor precio. Están disponibles en dos versiones con antena externa (más alcance) o antena incorporada (menos alcance).
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Arduino con nRF24L01
Para implementar este ejemplo necesita los siguientes componentes:
Descargar biblioteca
Aquí está la biblioteca que necesita para este proyecto:
- Descargar el Biblioteca RadioHead
- Desempaquetar la biblioteca de RadioHead
- Instale la biblioteca RadioHead en su IDE de Arduino
- Reinicia tu IDE de Arduino
La biblioteca RadioHead es excelente y funciona con casi todos los módulos de RF del mercado. Más información sobre este proyecto se puede encontrar aquí. Aquí.
Configuración de pines
Circuito cliente
Importante: El voltaje de entrada es de 1,9 V a 3,6 V. No exceda este voltaje o su módulo se quemará.
Siga el circuito anterior para su cliente. Luego cargue el siguiente código ubicado en su IDE de Arduino (después de instalar la biblioteca RadioHead).
Vaya a Archivo > Ejemplos > RadioHead > nrf24 > nrf24_client.
// nrf24_client
#include <SPI.h>
#include <RH_NRF24.h>
// Singleton instance of the radio driver
RH_NRF24 nrf24;
// RH_NRF24 nrf24(8, 7); // use this to be electrically compatible with Mirf
// RH_NRF24 nrf24(8, 10);// For Leonardo, need explicit SS pin
// RH_NRF24 nrf24(8, 7); // For RFM73 on Anarduino Mini
void setup()
{
Serial.begin(9600);
while (!Serial)
; // wait for serial port to connect. Needed for Leonardo only
if (!nrf24.init())
Serial.println("init failed");
// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm
if (!nrf24.setChannel(1))
Serial.println("setChannel failed");
if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm))
Serial.println("setRF failed");
}
void loop()
{
Serial.println("Sending to nrf24_server");
// Send a message to nrf24_server
uint8_t data[] = "Hello World!";
nrf24.send(data, sizeof(data));
nrf24.waitPacketSent();
// Now wait for a reply
uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (nrf24.waitAvailableTimeout(500))
{
// Should be a reply message for us now
if (nrf24.recv(buf, &len))
{
Serial.print("got reply: ");
Serial.println((char*)buf);
}
else
{
Serial.println("recv failed");
}
}
else
{
Serial.println("No reply, is nrf24_server running?");
}
delay(400);
}
Cambio de servidor
Importante: El voltaje de entrada es de 1,9 V a 3,6 V. No exceda este voltaje, de lo contrario su módulo se romperá.
Siga el circuito anterior para su servidor. Luego cargue el siguiente código ubicado en su IDE de Arduino (después de instalar la biblioteca RadioHead).
Vaya a Archivo > Ejemplos > RadioHead > nrf24 > nrf24_server.
// nrf24_server
#include <SPI.h>
#include <RH_NRF24.h>
// Singleton instance of the radio driver
RH_NRF24 nrf24;
// RH_NRF24 nrf24(8, 7); // use this to be electrically compatible with Mirf
// RH_NRF24 nrf24(8, 10);// For Leonardo, need explicit SS pin
// RH_NRF24 nrf24(8, 7); // For RFM73 on Anarduino Mini
void setup()
{
Serial.begin(9600);
while (!Serial)
; // wait for serial port to connect. Needed for Leonardo only
if (!nrf24.init())
Serial.println("init failed");
// Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm
if (!nrf24.setChannel(1))
Serial.println("setChannel failed");
if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm))
Serial.println("setRF failed");
}
void loop()
{
if (nrf24.available())
{
// Should be a message for us now
uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
if (nrf24.recv(buf, &len))
{
// NRF24::printBuffer("request: ", buf, len);
Serial.print("got request: ");
Serial.println((char*)buf);
// Send a reply
uint8_t data[] = "And hello back to you";
nrf24.send(data, sizeof(data));
nrf24.waitPacketSent();
Serial.println("Sent a reply");
}
else
{
Serial.println("recv failed");
}
}
}
demostración
En este proyecto, el cliente envía por radio el mensaje «¡Hola mundo!» al servidor y el servidor devuelve el siguiente mensaje: «¡Y hola a ti!». Estos mensajes se muestran en el monitor serie. Esto es lo que debería ver en la ventana de su terminal serie (vea la imagen a continuación).
Nota: En la ventana de la izquierda establezco comunicación serial con PuTTY.org. En la ventana de la derecha estoy usando el monitor serie Arduino IDE.
Diploma
Debe tener expectativas realistas al utilizar este módulo. Funcionan muy bien cuando el receptor y el transmisor están bastante cerca uno del otro. Si los separa demasiado, se perderá la comunicación.
El rango de comunicación varía. Esto depende de cuánto ruido haya en su área, si hay obstrucciones y si está utilizando una antena externa.
Espero que esta guía te haya resultado útil.
Compartir esta publicacion ¡Con un amigo al que también le gusta la electrónica!
Puedes contactar conmigo dejando un comentario. Si te gusta esta publicación, probablemente también te gustarán las siguientes. Así que apóyame suscribiéndote a mi blog y a mi página de Facebook.
Gracias por leer,
-Rui Santos
Guía completa para nRF24L01 – Módulo transceptor RF de 2,4 GHz con Arduino
Esta publicación tiene como objetivo ser una guía completa para el módulo transceptor RF nRF24L01 de 2,4 GHz. Explicaré lo que hace, mostraré sus especificaciones y compartiré un ejemplo de proyecto de Arduino que puedes tomar y aplicar a tus propios proyectos.
Descripción
Estos módulos de RF son muy populares entre los entusiastas de Arduino. El nRF24L01 se utiliza en una amplia variedad de aplicaciones que requieren control inalámbrico. Son transceptores, lo que significa que cada módulo puede transmitir y recibir datos.
Estos módulos son muy económicos y puedes usarlos con cualquier microcontrolador (MCU).
Especificaciones nRF24L01 – Transceptor RF de 2,4 GHz
- IC de transceptor RF GFSK de 2,4 GHz de un solo chip de bajo coste
- Alcance con Antena: 250Kb de velocidad (área abierta) >1000 metros
- Potencia: Consumo de energía ultra bajo
- Voltaje de entrada: 3.3V
- Pines: Tolerantes a 5V
- Precio: $2
Puedes comprar estos módulos por solo unos pocos dólares. Haz clic aquí para comparar el módulo nRF24L01 en varias tiendas y encontrar el mejor precio. Vienen en dos versiones con antena externa (mayor alcance) o antena interna (menor alcance).
Arduino con nRF24L01
Necesitas los siguientes componentes para hacer este ejemplo:
- 2x Arduino (eBay)
- 2x nRF24L01 – Transceptor RF de 2,4 GHz (eBay)
- Breadboard (eBay)
Descarga de la biblioteca
Aquí está la biblioteca que necesitas para este proyecto:
Descargar la biblioteca RadioHead
Descomprime la biblioteca RadioHead, instálala en tu IDE de Arduino y reinicia el IDE.
Conclusión
Espero que hayas encontrado útil esta guía. Comparte este post con un amigo que también le gusten la electrónica. Puedes contactarme dejando un comentario. Si te gusta este post, probablemente te gustarán mis próximos, así que por favor apóyame suscribiéndote a mi blog y mi página de Facebook.
Gracias por leer,
-Rui Santos