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