Que tal, estoy probando por primera vez el modulo transceptor NRF2401L para comunicaciones inalambricas y no mejor que preguntarle a ChatGPT por un codigo basico y conexionado. Esto ademas no encontre bien en internet el conexionado para el ESP32 y el ESP8266.
Adjunto a continucacion el conexionado y el codigo para el transmisor y el receptor.
Transmisor
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 5
#define CSN_PIN 18
RF24 radio(CE_PIN, CSN_PIN); // Configurar NRF24L01 en los pines
// Dirección de las dos nodos (Emisor y Receptor)
const byte address[6] = "1Node";
void setup() {
Serial.begin(115200);
if (!radio.begin()) {
Serial.println("Error: El hardware de radio no responde!");
while (1);
}
radio.openWritingPipe(address); // Abrir canal de escritura
radio.setPALevel(RF24_PA_LOW); // Configurar el nivel de potencia a bajo
radio.stopListening(); // Configurar el módulo en modo transmisión
}
void loop() {
const char text[] = "Hola desde ESP32!"; // Mensaje que se enviará
bool ok = radio.write(&text, sizeof(text)); // Enviar el mensaje
if (ok) {
Serial.println("Mensaje enviado correctamente.");
} else {
Serial.println("Error en el envío.");
}
delay(1000); // Esperar 1 segundo antes de enviar de nuevo
}
Receptor:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 4
#define CSN_PIN 5
RF24 radio(CE_PIN, CSN_PIN); // Configurar NRF24L01 en los pines
// Dirección de las dos nodos (Emisor y Receptor)
const byte address[6] = "1Node";
void setup() {
Serial.begin(115200);
if (!radio.begin()) {
Serial.println("Error: El hardware de radio no responde!");
while (1);
}
radio.openReadingPipe(1, address); // Abrir canal de lectura
radio.setPALevel(RF24_PA_LOW); // Configurar el nivel de potencia a bajo
radio.startListening(); // Configurar el módulo en modo recepción
}
void loop() {
if (radio.available()) {
char receivedMessage[32] = ""; // Almacenará el mensaje recibido
radio.read(&receivedMessage, sizeof(receivedMessage)); // Leer el mensaje
Serial.print("Mensaje recibido: ");
Serial.println(receivedMessage);
}
}
Agradeceria si alguno me ayuda, supongo que es algo basico. Mi miedo ya seria que el componente ya este en problemas.
PD: En los dos casos siempre los alimente con 3.3v, nunca probe con 5v ya que "supuestamente" no se debe hacer. Pido disculpas si no es el canal debido, supuse que network es lo que busco.
He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español@tomkas06 .
En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.
I'm sorry if u can't visit the products, there are from argentina. Also, it seems weird that any light turns on when I connect the cables, is it common?
Thank you so much for answering
Estamos en el foro en español, movieron tu tema aquí porque indebidamente posteaste en español en el foro en Inglés, así que por favor, escribe en español.
O pide que cierren este tema y abre uno nuevo en Inglés pero edita los comentarios del código porque si los dejas en español te van a volver a mover el tema al foro en español.
Respecto a los NFR, hay muchos falsificados y de éstos unos cuantos ni siquiera funcionan, hay un tema que habla de ello.
Gracias por toda la ayuda, termino siendo el problema que el conexionado es muy ligero, al minimo toque deja de recibir datos. Lo hice con un ESP32 como TX y un Arduino Uno como receptor y ha funcionado. Ahora los cables macho y hembra los ajustare para que entren bien al filamento. Muchas Gracias
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 4
#define CSN_PIN 5
RF24 radio(CE_PIN, CSN_PIN); // Configurar NRF24L01 en los pines
// Dirección de las dos nodos (Emisor y Receptor)
const byte address[6] = "1Node";
void setup() {
Serial.begin(9600);
if (!radio.begin()) {
Serial.println("Error: El hardware de radio no responde!");
while (1);
}
radio.openReadingPipe(1, address); // Abrir canal de lectura
radio.setPALevel(RF24_PA_LOW); // Configurar el nivel de potencia a bajo
radio.startListening(); // Configurar el módulo en modo recepción
}
void loop() {
if (radio.available()) {
char receivedMessage[32] = ""; // Almacenará el mensaje recibido
radio.read(&receivedMessage, sizeof(receivedMessage)); // Leer el mensaje
Serial.print("Mensaje recibido: ");
Serial.println(receivedMessage);
}
}
Conexionado que me sirvieron:
// ESP32 connections
// ESP32 SCK pin GPIO18 goes to NRF24L10_pin SCK
// ESP32 MISO pin GPIO19 goes to NRF24L10_pin MI
// ESP32 MOSI pin GPIO23 goes to NRF24L10_pin MO
// NRF24L10 CE to ESP32 pin GPIO4
// NRF24L10 CSN to ESP32 pin GPIO 5
Hasta ahora me doy cuenta, para que le agregas un nRF24 a un ESP32 y a un ESP8266 que pueden comunicarse por WIFI TCP/IP o UDP o tambien pueden usar ESP-NOW?