Cómo usar el módulo inalámbrico NRF24L01 2.4GHz con un Arduino 1

Comparte este Post

VISIÓN DE CONJUNTO

Hay muchas maneras de agregar capacidad inalámbrica a sus proyectos Arduino.

Los módulos WiFi como el ESP8266 lo hacen posible, pero debe estar cerca de una señal WiFi, y el código deberá reconfigurarse si desea conectarse a un enrutador WiFi diferente, ya que la contraseña probablemente sea diferente.

Los módulos Bluetooth lograrán casi lo mismo, pero usando la comunicación Bluetooth en su lugar.

Pero a veces es posible que desee poder enviar o recibir sin tener que usar WiFi o Bluetooth, entonces la NRF24L01 sería una buena opción.

A diferencia de los demás, utiliza ondas de radio para comunicarse entre módulos, el mismo tipo que se utiliza en los teléfonos inalámbricos de su casa.

En este tutorial lo mantendremos simple y usaremos un interruptor regular de cereza, que al hacer clic enviará un valor que luego será recogido por otro módulo y encenderá un LED WS2812 de diferentes colores según el valor recibido.

CONEXIONES DEL TRANSMISOR

La parte del transmisor de este tutorial, al que está conectado Cherry Switch, está basado en la placa Arduino NANO.

Como puede ver, estamos conectando un módulo NRF24L01 y un Cherry Switch.

Aquí están las conexiones:

El interruptor está conectado a GND y el pin 8 en el NANO

Los pines NRF24L01:

MISO se conecta al pin 12 del NANO

MOSI se conecta al pin 11 del NANO

SCK se conecta al pin 13 del NANO

CE se conecta al pin 9 del NANO

CSN se conecta al pin 10 del NANO

GND y VCC del NRF24L01 están conectados a GND y 3.3V del NANO

El NRF24L01 utiliza el protocolo de comunicación SPI, por lo que debe asegurarse de estar utilizando los pines SPI de la versión de la placa Arduino que desee utilizar.

Los tableros NANO y UNO tienen los mismos:

Pin 11 = MOSI (Master Out Slave In)
Pin 12 = MISO ( Master In Slave Out )
Pin 13 = SCK ( Reloj serial )

Pero si planea usar, digamos un MEGA 2560, esos pines serán diferentes.

Pin 51 = MOSI (Master Out Slave In)
Pin 50 = MISO ( Master In Slave Out )
Pin 52 = SCK ( Reloj serial )

CONEXIONES DEL RECEPTOR

La parte del Receptor de este tutorial, que es la que tiene el LED Stick WS2812 y recibirá la información enviada por el Transmisor, usa la placa Arduino UNO.

Aquí están las conexiones:

El pin WS2812 RGB Stick DI (entrada digital) está conectado al pin 8 en el UNO

GND y VCC están conectados a GND y 5V de UNO

Los pines NRF24L01:

MISO se conecta al pin 12 de la UNO

MOSI se conecta al pin 11 de la UNO

SCK se conecta al pin 13 de UNO

CE se conecta al pin 9 de la UNO

CSN se conecta al pin 10 de la UNO

GND y VCC del NRF24L01 están conectados a GND y 3.3V de UNO

EL CÓDIGO – TRANSMISOR

Para este tutorial, tendremos 2 códigos separados: 1 para el transmisor y uno para el receptor.

El transmisor o el cliente será el que tenga el conmutador conectado que enviará información al servidor que tiene conectada la memoria RGB.

En este tutorial solo tenemos 1 conmutador conectado, pero podríamos conectar más conmutadores o sensores si quisiéramos y simplemente cambiar la información enviada en base a aquellos, en la cual el servidor realizará una acción basada en eso.

Como siempre, no olvide ver nuestros videos Tutoriales en el lado izquierdo de esta página para más información.



/ * Creado por Yvan / https: // Inteligente - Bits . com

 Este código es  en el dominio público ... Puede: copiarlo, usarlo, modificarlo, compartirlo o simplemente ignóralo ! Gracias ! 

* / 

// Tutorial del módulo NRF24L01 - Código para Transmisor con Arduino NANO // Incluir bibliotecas necesarias al principio #include "nRF24L01.h" // Biblioteca NRF24L01 creada por TMRh20 https://github.com/TMRh20/RF24 
#include "RF24.h" 
#include "SPI.h" 

#define SwitchPin 8 // El conmutador Arcade está conectado al Pin 8 en NANO 
En t Mensaje enviado[ 1 ] = { 000 }; // Se usa para almacenar el valor antes de ser enviado a través del NRF24L01

 Radio RF24 ( 9 , 10 ); // NRF24L01 usó pins SPI + Alfiler 9  y  10 en el NANO

 const uint64_t pipe =  0xE6E6E6E6E6E6 ; // Necesita ser el mismo para comunicando entre 2 NRF24L01


 Configuración de vacío (nulo) {

 pinMode (SwitchPin, INPUT_PULLUP); // Definir el conmutador arcade NANO pin como una Entrada usando pullups internos
 digitalWrite (SwitchPin, ALTO); // Establezca Pin en ALTO al principio

 radio . empezar(); // Inicie el NRF24L01
 radio . openWritingPipe (pipe); // Obtenga NRF24L01 listo para transmitir
 }

 void loop (void) { Si (digitalRead (SwitchPin) == BAJO){ // Si el interruptor es Activado
 Mensaje enviado[ 0 ] =  111 ;
 radio . escribir (SentMessage, 1 ); // Enviar valor a través de NRF24L01
 } más {
 Mensaje enviado[ 0 ] =  000 ;
 radio . escribir (SentMessage, 1 );
 }
 }


EL CÓDIGO – RECEPTOR

/ * Creado por Yvan / https: // Inteligente - Bits . com

 Este código es  en el dominio público ... Puede: copiarlo, usarlo, modificarlo, compartirlo o simplemente ignóralo ! Gracias ! 

* / 


// Tutorial del módulo NRF24L01 - Código para Receptor usando Arduino UNO // Incluir bibliotecas necesarias al principio #include "nRF24L01.h" // Biblioteca NRF24L01 creada por TMRh20 https://github.com/TMRh20/RF24 
#include "RF24.h" 
#include "SPI.h" 
#include "FastLED.h" // Biblioteca FastLED para WS2812 RGB Stick http://fastled.io/ 

#define NUM_LEDS 8 // Número de leds en stick 
#define LED_PIN 8 // Entrada digital (DI) de RGB Stick conectado al pin 8 de UNO LED CRGB [NUM_LEDS]; // Biblioteca FastLED Init En t ReceivedMessage [ 1 ] = { 000 }; // Se usa para almacenar el valor recibido por NRF24L01

 Radio RF24 ( 9 , 10 ); // NRF24L01 usó pins SPI + Alfiler 9  y  10 en la ONU

 const uint64_t pipe =  0xE6E6E6E6E6E6 ; // Necesita ser el mismo para comunicando entre 2 NRF24L01


 Configuración de vacío (nulo) {

 FastLED . addLeds NEOPIXEL, LED_PIN > (leds, NUM_LEDS); // Configurar la biblioteca FastLED
 FastLED . claro(); // Borrar los LED RGB Stick // Iluminar el LED de arranque es 
para ( En t X =  0 ;  X ! = NUM_LEDS;  X ++ ) {
 leds [x] = CRGB :: Rojo;
 }

 FastLED . setBrightness ( 50 );
 FastLED . espectáculo();

 radio . empezar(); // Inicie el NRF24L01

 radio . openReadingPipe ( 1 ,tubo); // Obtenga NRF24L01 listo para recibir

 radio . empieza a escuchar(); // Escuche para ver Si Información recibida

 pinMode (LED_PIN, SALIDA); // Establecer el pin RGB Stick UNO en una SALIDA
 }

 void loop (void) { mientras (radio . disponible())
 {
 radio . leer (ReceivedMessage, 1 ); // Leer información de  el  NRF24L01 

Si (ReceivedMessage [ 0 ] ==  111 ) // Indica cambio es presionado
 { para ( En t X =  0 ;  X ! = NUM_LEDS;  X ++ )
 {
 leds [x] = CRGB :: Verde;
 FastLED . espectáculo();
 }
 } más { para ( En t X =  0 ;  X ! = NUM_LEDS;  X ++ )
 {
 leds [x] = CRGB :: Rojo;
 FastLED . espectáculo();
 }
 }
 retrasar( 10 );
 }
 }
VIDEO TUTORIAL

DESCARGAR

Copie el código de Sketch anterior en su software Arduino IDE para programar su Arduino.

Bibliotecas usadas:

Descargue la biblioteca NRF24L01 creada por TMRh20 aquí: https://github.com/TMRh20/RF24

Descargue la biblioteca FastLED creada por focalintent aquí: https://github.com/FastLED/FastLED/releases

Una vez descargado, simplemente extrae el contenido de los archivos zip dentro de tu ” arduino / carpeta “libraries”.


Comparte este Post

One Comment

  1. hola estoy usando arduino uno com este codigo saco los datos de la pc y los tengo en paralelo en los led,
    quiero transmitirlos serie a otro arduino nano para prender los led en ota lugar con mrf24lo1 pueden ayudarme con el codigo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Abrir chat
0

Tu carrito