Gostaria de agradecer a todos aqui que me ajudaram a resolver esse problema.

estava com um dificuldade para conseguir conectar o Uno a um Pro mini pelo modulo WiFi NRF24L01.

vou deixar abaixo o código que usei.

Código do emissor.

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"


int dados[1]; //Armazena os dados enviados pelo rádio
int valor = 0;

RF24 radio(9,10); //Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino

const uint64_t pipe = 0xE14BC8F482LL; //Define o endereço para comunicacao entre os módulos

void setup()
{
Serial.begin(115200);
radio.begin(); //Inicializa a comunicação entre os módulos
radio.openWritingPipe(pipe); //Entra em modo de transmissao
}

void loop(){
if (Serial.available() > 0){
valor = Serial.parseInt();
}

if (valor == 1) //Envia o comando para disparo caso a Porta Digital 7 entre em nível baixo
{
Serial.print("Liga Led 1");
dados[0] = 1; // salva o valor 1 no índice dos valores enviados pelo rádio
radio.write(dados, 1); // escreve o valor 1 na variável dados
Serial.println("");
}
if (valor == 2)
{
Serial.print("Desliga Led 1");
dados[0] = 2;
radio.write(dados, 2);
Serial.println("");
}

if (valor == 3)
{
Serial.print("Liga Led 2");
dados[0] = 3;
radio.write(dados, 3);
Serial.println("");
}

if (valor == 4)
{
Serial.print("Desliga Led 2");
dados[0] = 4;
radio.write(dados, 4);
Serial.println("");
}

}

Código do Receptor.

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"


int recebidos[1];//Armazena os dados recebidos
int receb[1];

RF24 radio(9, 10); //Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino

const uint64_t pipe = 0xE14BC8F482LL; //Define o endereco para comunicaçao entre os módulos

int LED1 = 8; //Inclui a Porta Digital 5 na estrutura da programação do módulo

void setup()
{

pinMode(LED1, OUTPUT); //Define a Porta Digital 5 como saída de sinal para disparo do Dispositivo Secundário

radio.begin(); //Inicializa a comunicaçao entre os módulos
radio.openReadingPipe(1, pipe); //Entra em modo de recepcao
radio.startListening(); ////Entra em modo de recepcao
}

void loop()
{
/*
if (radio.available()) //Verifica se há sinal de radio
{
bool done = false; //determina a variável booleana como falsa
while (!done) //executa uma rotina determinada enquanto a variável booleana é negada
{
*/
if (radio.available()) {
radio.read(recebidos, 1); // Lê a variável transmitida
if (recebidos[0] == 1) //Se recebeu o numero 1, executa determinada ação
{
delay(10); //Tempo até executar a rotina de ativamento
digitalWrite(LED1, HIGH); //Ativa a Porta Digital 5 em nível alto para disparo do Dispositivo Secundário
}
if (recebidos[0] == 2)
{
digitalWrite(LED1, LOW); //Desativa Porta Digital 5 caso o valor recebido não seja igual ao valor 1
}
}
delay(100); //Tempo para reiniciar a verificação do sinal transmitido
/*
}
}
*/
}

Em anexo deixo a biblioteca RF24 que utilizei.

Exibições: 853

Anexos

Responder esta

Respostas a este tópico

Olá Raul,

    Cara, parabéns pelos seus resultados é com esforço que alcançamos nossos objetivos.

    Pooooooremm,  deixa eu corrigir você só um pouco...   Corrigindo o enunciado do seu post,  você não realizou uma comunicação WIFI,   você realizou uma comunicação WIRELESS.

   Qual a diferença?:   WIFI é o tipo de comunicação que utiliza um protocolo 802.11,  se você estivesse se comunicando atraves desse protocolo poderia acessar seu computador atraves da rede de sua casa, ou até acessar a internet.

   Já a comunicação WIRELESS criada com o NRF24L01 utiliza um protocolo chamado shockburst, o que possibilita que ele só converse com outros modulos que estejam utilizando o mesmo protocolo.

   Pooooooooooremmmm,  existe um figuraça que criou uma biblioteca chamada  RF24ETHERNET  que possibilita aos NRF24L01 acessarem a internet, controlar seu PC, e tudo que uma verdadeira rede wifi possibilita.

   veja o video abaixo:

https://www.youtube.com/watch?v=rBAIqAaRu0g

  

Weider.

Obrigado pelo esclarecimento.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço