El hacer que dos o más Arduinos sean capaces de comunicarse entre sí de forma de forma distante a través de una red inalámbrica abre muchas posibilidades:
- Permite manejar sensores remotos de temperatura, presión, alarmas, etc…
- Comunicarse con Robots de control y vigilancia desde 10 a 500 metros de distancia
- Control remoto y monitorización de edificios cercanos y maquinaría.
- Vehículos autónomos de todo tipo
Los transceptores NRF24L01 son una serie de módulos de radio de 2,4 GHz que se basan en el chip de Nordic Semiconductor nRF24L01+ (Detalles). El Nordic nRF24L01+ integra un completo transceptor RF de 2,4 GHz, un sintetizador de RF y toda la lógica de banda base incluyendo un acelerador de protocolo por hardware Enhanced ShockBurst™ con una interfaz SPI de alta velocidad para el controlador de la aplicación. El módulo Transceptor de baja potencia y corto alcance (200 metros más o menos) está disponible en una tarjeta compatible con Arduino y con antena integrada por menos de $4 Ver aquí.
Rango de cobertura
El rango es muy dependiente de la situación de los transceptores y tienen mucho más alcance cuando están en la línea de visión, al aire libre que en interior, con obstaculos como paredes y otros materiales. La distancia normal que indican los distintos proveedores para el módulo de baja potencia es de unos 50 metros. Pero este valor es para espacio abierto entre unidades funcionando a 250KHz, en interiores, el alcance es mucho menor debido a las paredes, etc ..
Te sugerimos que pruebes dos unidades en sus ubicaciones reales antes de tomar una decisión de cual es la ideal para tu proyecto. Hay unidades con un preamplificador de antena para el receptor y un amplificador de potencia para el transmisor y cuentan con antena externa.
La comunicación entre una unidad de este tipo y varias unidades de bajo consumo producirá mucho mejor resultados que utilizar dos dos unidades de baja potencia. Cada situación es un diferente y es difícil de conseguir un número exacto y sin hacer pruebas reales.
Enlace a la hoja de datos del nRF24L01. No es necesario que la descargues, si embargo si quieres entender más acerca de lo que se puede hacer con esta «pequeña» radio, descarga la hoja de datos. Te recomiendo que leas las páginas 7-8-9 (Para Información y Operaciones) y la página 39 (MultiCeiver, que permite a 6 Arduinos hablar con un Arduino maestro de forma organizada). Afortunadamente el mismo producto se encargará a nivel de placa de muchos de los detalles físicos y eléctricos, de la impedancia de adaptación de antena, etc, esta librería se encarga de la inicialización de registro de un montón de detalles operativos.
Hay módulos adicionales que se añaden amplificadores de potencia al transmisor y preamplificadores al receptor para conseguir distancias más largas, aseguran que pueden llegar hasta 1 km. Estos módulos utilizan una antena externa que puede ser una una antena simple que esté directamente conectada o un cable conectado a una antena con más ganancia o directividad.
Así es como se ven los diferentes tipos:
Esta es la versión de bajo consumo, con antena en zig-zag incorporada. A la izquierda se pueden ver los pins que se conectan a Arduino. Más adelante veremos la disposición de las patillas.
Arriba está la versión con amplificador de potencia de transmisión y preamplificador para recepción. La antena de bajo coste es la que tiene colocada la unidad de la derecha. Los 8 pines se conectan con Arduino igual en todas las versiones de transceptor y se utiliza el mismo software.
Aquí hay un enlace a un diseño de antena de Home-Brew:
Estos transceivers utilizan la banda de 2,4 GHz como muchos routers WiFi, algunos teléfonos inalámbricos, etc y no necesitan licencia.
Estos transceptores pueden tanto enviar, como recibir datos en «paquetes» de varios bytes a la vez. Incluyen una función de corrección de errores y reenvío y es posible comunicar una unidad con hasta otras 6 unidades similares al mismo tiempo.
Si embargo a pesar de su bajo coste estas unidades tienen una increíble complejidad interna, paro gracias a algunas personas con talento, que son los que han escrito han escrito las librerías para Arduino, los hacen fáciles de utilizar para nosotros. En estas páginas encontrarás enlaces a ejemplos y links a todas las bibliotecas de software libre que puedas necesitar. Todos ellos utilizan el mismo pinout como se muestra en el siguiente diagrama, que es una vista desde arriba:
Vista superior
Vista inferior
Detalles del Pinout y conexión con Arduino
Signal | RF Module | COLOR | Arduino pin for RF24 Library |
Arduino pin for Mirf Library |
MEGA2560 pin |
GND | 1 | Brown | GND | GND | per library |
VCC | 2 | Red | 3.3V | 3.3V | per library |
CE | 3 | Orange | 9 | 8 | per library |
CSN | 4 | Yellow | 10 | 7 | per library |
SCK | 5 | Green | 13 | 13 | 52 |
MOSI | 6 | Blue | 11 | 11 | 51 |
MISO | 7 | Violet | 12 | 12 | 50 |
IRQ | 8 | Gray | 2 * | per library |
- NOTA: El Pin 8 IRQ no se utiliza por la mayoría del software, pero la biblioteca RF24 tiene un ejemplo que lo utiliza.
Los colores son para cable plano y se pueden utilizar como un código de color para los ejemplos. Pronto vamos a añadir algunas fotos que muestren de forma sencilla como conectar los cables con estos colores.
NOTA: En estas unidades el VCC debe ir conectado a 3.3V NO a 5.0V, aunque el propio Arduino puede funcionar a 5,0 V y la señal I/O va a funcionar bien. Arduino UNO y versiones anteriores tienen una salida de 3,3 V que se puede utilizar para la versión de baja potencia de estos módulos, pero las versiones de alta potencia deben tener un suministro de 3,3 V por separado. Hace falta un regulador de 3.3V con potencia más alta para alimentar el módulo con amplificador de emisión, no lo conectes directamente a tu Arduino.
Recuerda la conexión física entre el nRF24L01 y Arduino requiere 3,3 V, los 3 x pines SPI (SCK, SDI, SDO), un pin Chip Enable y un pin para Slave Selec.
La conexión del nRF24L01 a Arduino es así (Precaución, Arduino Mega tiene diferentes pines de SPI, ver más abajo),
Arduino UNO 3V3 or 5V----VCC (3.3V to 7V in) pin D8-----------CE (chip enable in) SS pin D10----------CSN (chip select in) SCK pin D13----------SCK (SPI clock in) MOSI pin D11----------SDI (SPI Data in) MISO pin D12----------SDO (SPI data out) IRQ (Interrupt output, not connected) GND----------GND (ground in)
Para Arduino Mega:
3V3 or 5V----VCC (3.3V to 7V in) pin D8-----------CE (chip enable in) SS pin D53----------CSN (chip select in) SCK pin D52----------SCK (SPI clock in) MOSI pin D51----------SDI (SPI Data in) MISO pin D50----------SDO (SPI data out) IRQ (Interrupt output, not connected) GND----------GND (ground in)
Una de las mejores librerías que he encontrado para el NRF24
Puedes utilizar el constructor NRF24() por defecto. Puedes anular los valores predeterminados para las patillas CSN y CE en el constructor NRF24() si deseas conectar el esclavo seleccionar para CSN otro pin que no sea el normal para tu Arduino (D10 para Diecimila, Uno, etc y D53 para Mega)
Atención: en algún Arduino como el Mega 2560, si se establece el pin como esclavo uno que no sea el pin SS habitual (D53 en Mega 2560), es posible que necesites configurar el pin SS habitual para ser una salida para forzar el SPI de Arduino en modo maestro.
Hay más buenas librerías de software para nRF24L01 y además encontrarás varias páginas con algunos ejemplos:
Excelente RF24 Biblioteca de Maniacbug y muchos ejemplos:
RF24 librería y ejemplos: Muy buenos detalles y más funciones, como la corrección de errores y creación de redes.
RF24 Red de Información de Sistema: Una red de múltiples nodos en desarrollo
El blog de ManiacBug.
Librería Mirf Ejemplo: Una demostración simple
Grupo de Google especializado en NRF24-Arduino
Traducido y adaptado de arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
b. tardes, necesito saber el costo de este modulo que tienen en su pagina. y el costo por mayoreo.
gracias.
Puedes ver los precios y disponibilidad en nuestra tienda en línea
hola, quisiera saber si dispone del modulo nrf24l01 + PA(power amplifier), cuanto es el precio?
saludos
Marcos, no te podemos indicar si tenemos en stock un producto, nuestra tienda en línea funciona en tiempo real, el primero que compra es el primero que se lo lleva, lo mejor es que busques directamente en nuestra tienda en línea y hagas directamente tus consultas.
¿Puedo transmitir videos con el NRF24L01?
Si damos un certificado, el próximo es Sábado 15 y Domingo 16 de Agosto 2015
Debo realizar un proyecto de comunicación bidireccional (dos modulos) con un alcance de 100 metros, donde exista alguna señal (sea un led o un vibrador), que indique a ambos modulos su proximidad con el otro modulo, (100mts, 50mts, 20mts), es decir que una vez un modulo se acerque a el otro 50mts se emita una señal a modo de alarma, asi mismo para 100mts y 20mts; saben si es posible???
Si es posible, utilizando los modulos de comunicaciones adecuados.
Hola buen día!
Este módulo solamente trabaja con arduino?, o puedo enviar cualquier señal utilizando un pic?
Muchas gracias
Se supone que puede trabajar con cualquier micro compatible en voltaje