Boa noite..

Estou com um projeto aqui e preciso usar esse modulo NRF24, estou usando as bibliotecas 

<RF24Network.h>    e   <RF24.h>

minha duvida e a seguinte...

preciso que eles trabalhem com RX e TX ao mesmo tempo:

tenho um codigo aqui onde o NRF01 usa um botão para acender um led no NRF02....

agora quero que o NRF02 tmb possa acender um led no NRF01... ...

NRF 01:

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>

RF24 radio(9,10);
RF24Network network(radio); 

const uint16_t t_node_0 = 0; // Endereço deste node
const uint16_t r_node_A = 1; // Endereços dos outros nodes


int memoriaA[4]; // Declaração dos vetores que receberão os valores dos botões

int botaoA=4; //botao pino 4

void setup(void)

{
SPI.begin();
radio.begin();
network.begin(/*canal*/ 90, /*endereço do node*/ t_node_0);

pinMode(botaoA,INPUT);
digitalWrite(botaoA,HIGH);

}

void loop(void){
network.update(); //RECEBER VALORES DOS BOTÕES

memoriaA[0]=digitalRead(botaoA); //ENVIO PARA JOGADOR A


RF24NetworkHeader forA(r_node_A);
network.write(forA,memoriaA,sizeof(memoriaA));

}

-----------------------------------------------------------------

NFR02:

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>

RF24 radio(9,10);// portas usadas, podem ser modificadas
RF24Network network(radio);// Rede usa o rádio

const uint16_t r_node_A = 1;// Endereço deste node
const uint16_t t_node_0 = 0;// Endereços dos outros nodes (que interessam)
int memoriaA[4]; // Declaração do vetor que receberá os valores dos botões

void setup(void){
Serial.begin(9600);
Serial.println("RF24Network/examples/helloworld_rx/");

SPI.begin();
radio.begin();
network.begin(/*channel*/ 90, /*node address*/ r_node_A);

// Setar os pinos p/ acionamento dos LEDs
pinMode(4,OUTPUT);
}

void loop(void){
//Atualiza a rede
network.update();
// Testa disponibilidade da rede
if ( network.available() )
{
RF24NetworkHeader header(r_node_A);
network.read(header,joystickA,sizeof(memoriaA));
Serial.print("recebendo em ");
Serial.println(millis()); // Usamos para cálculo do máximo de ciclos sem comunicação
Serial.println(memoria[0]);
Serial.println(" ");
}
else{
Serial.println("radio nao disponivel"); }

if (memoriaA[0] == 0 ){
digitalWrite(4,HIGH); }
else {
digitalWrite(4,LOW); }

}

Fico no aguardo .. Obrigado a todos!!

Exibições: 1012

Responder esta

Respostas a este tópico

Procure ajuda aqui, aproveite para fazer parte.

http://labdegaragem.com/group/nrf24l01

Abs.

Olá Lesley,  a pergunta principal aqui é  quantos modulos você pretende colocar pra se comunicarem ?     eu fiz a algum tempo um codigo que faz o que vocë deseja, mas só teste entre dois radios.

  Usei na epoca so a RF24 que suporta no maximo 6 radios em uma rede.

  A RF24NETWORK suporta um numero gigantesco porem,  eu ainda não testei.

  Mas um bom caminho é estudar os exemplos que vem com as bibliotecas,  em geral elas ensinam esse tipo de coisa,  por, exemplo para fazer a comunicação de que vocë precisa colocando qualquer um dos radios tanto como tx como rx,  existe o exemplo PINGPAIR da rf24.

Weider.. vc ainda tem esse codigo????

Iesley,

   Cara, infelizmente não tenho,  mas lembro que não fiz nada mais que pegar o codigo PINGPAIR, que vem com a biblioteca RF24, dai meti o codigo no google translator para traduzir os comentários que eram em ingles, dai lembro que nem inclui muita coisa,  na verdade mais retirei e apaguei.

   Estou estudando a RF24network, vou ver se amanhã faço um exemplo desse tipo, onde qualquer modulo pode ser emissor como receptor.

   Mas você não disse se vai criar uma rede, ou apenas colocar dois modulos pra conversar,  qual seu objetivo ?

    

o seguinte... vou fazer...

01 arduino mega com ethernet shild ligado na net como servidor web ..

4 ou 5 modulos arduino nano + NFR comunicando com o Servidor para informar estatus das lampadas e sensores

preciso que o servidor alem de receber os dados.. ele tmb possa enviar comandos....

tenho tudo aqui funcionado via cabo.. queria usar tudo com modulos nrf ...

estou estudando varias bibliotecas e exemplos e estou fazendos alguns testes aqui...

...

Olha Iesley,

    Tem que tentar, não tem outro jeito,  as bibliotecas do NRF depois de você ler elas um pouquinho ve que são bem faceis de lidar, ao menos pra o uso basico.

     Posso te dar algumas dicas com a experiência que tenho,  mas pra valer mesmo,  tem que montar e testar.

     Vamos lá, do que você citou ai em cima e não só eu, mas outros andaram apanhando, o maior problema foi utilizar "Tipos diferente de arduino com os nrf"  as vezes pode acontecer de eles não se vêem,  eu acredito que tem alguma coisa a ver com frequencia de clock, mas é só um chute.

     Tipo, já teve gente reclamando da comunicação do nano com o uno,   eu fiz a ligação e não tive problemas,  porem,   quando tentei comunicar um arduino UNO normal, com um arduino UNO com atmega SMD,  não funcionou de jeito nenhum, e ambos eram UNOs.

     Reparei que um arduino UNO normal utiliza um cristal de 16MHZ enquanto a versão do UNO com chip em SMD utiliza um cristal de 12MHZ,  acho que pode ser isso.

    Outra coisa, se você deseja comunicar no maximo 5 modulos,  ou seja,  menos que 6,  pode usar a biblioteca RF24 mesmo,  porem, eu te aconselho a procurar a versão do GREG COPELAND que é uma revisão da original.

   De resto tudo que vocÊ deseja, pode se conseguido com o exemplo PINGPAIR que já vem com a biblioteca, dá uma estudada nela ok.

Ola... Estou tentando a comunicacao entre dois esp32s com dois nrf24l01 mas sem suceso...

Alguem tem alguma dica?

Bom dia,

Não seria mais simples usar o WIFI dos ESP32?

O NRF24L01 usa a mesma frequencia do WIFI - 2,4GHz. 

E o alcance, dependendo do modelo é reduzido. 

Jose,

     Cara, hoje eu entendo bastante sobre o NRF24L01 e a unica razão que eu colocaria um NRF ligado a um ESP32 seria para comunicar ele com um outro NRF ligado a um arduino.... explico.

      ESPs e NRFs são radio comunicadores usados em IOT, porem, Os ESP utilizam WIFI e BLUETOOTH ou seja padrões de redes populares e faceis de serem hackeadas.

     Logo se você vai interligar toda sua casa ou empresa(industria) , o ideal é que você faça com um padrão proprietario como o NFR24L01 ( que usa tecnologia shockburst ) ou algo como Xbee ou Lora, ou rfm69w, afinal todos usam protocolos proprios dificeis de quebrar, e internamente você pode isolar toda sua rede da internet, colocando apenas uma porta de entrada, caso deseje acessar e controlar por aplicativos,  e ai sim entra a comunicação com um ESP8266 ou um ESP32.

     Ou seja, o ESP seria usado para se comunicar com a internet, e nele teria um dos radios citados para se comunicar com sua rede interna.

    Veja bem, eu nunca tentei usar o ESP32 pra o que você pede, pois para mim é matar uma mosca com um canhão,  pra mim basta usar um arduino com um ESP-01 pra falar com a internet e em outras portas um NRF24L01 que vai fazer a comunicação com a internet e depois com minha rede privada.

     Sinceramente, assim como falou o Ze Gustavo ai acima, eu não vejo qualquer outra fazão pra meter um NRF24L01 em um ESP-32, visto que ele já vem embutido o WIFI e o bLUETOOTH.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço