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”.
