NRF24L01: módulo para comunicação sem fio para Arduino

NRF24L01

Certamente você precisa criar um projeto DIY usando Arduino ou qualquer outro elemento e você tem que fazer uso de comunicação sem fio. E isso acontece por ter algum tipo de módulo ou dispositivo que permite transmitir usando IR, RF, Bluetooth, WiFi, etc. Ou seja, você deve ter clareza sobre a necessidade de saber que tipo de sinal seria o mais adequado para o seu caso.

Neste caso, temos um guia no NRF24L01 para você. É um chip de comunicação sem fio que fornecerá o que você precisa para enviar e receber sinais. O tipo de sinais que atende é de RF ou radiofrequência, ou seja, ondas de grande comprimento de onda e, portanto, de baixa energia, que no espectro eletromagnético estão entre 3 Hz e 300 Ghz de frequência.

O que é NRF24L01?

NRF24L01

El NRF24L01 é um chip fabricado pela Nordic Semiconductor. Se isso Nenhum produto encontrado., o chip vem montado em uma pequena placa de circuito impresso com alguns elementos auxiliares de que você precisa e, portanto, compondo um módulo. Você pode usá-lo de várias maneiras, incluindo conectá-lo ao Adruino, como mostrarei mais tarde.

NRF24L01, como pode ser deduzido de seu nome, é um dispositivo de comunicação sem fio que usa RF ou radiofrequência com a capacidade de operar em 2,4 Ghz - 2,5 Ghz. Essa é a banda gratuita para uso gratuito. Você já sabe que outras bandas estão reservadas e você tem que pagar se quiser usá-las para transmitir informações. Além disso, integra um transmissor + um receptor.

Especificamente, a banda de frequência que você pode usar é de 2.400 MHz a 2.525 MHz, com a possibilidade de selecionar entre canais 125 com espaços de 1Mhz entre eles. No entanto, não é recomendado usar frequências de 2.4 GHz se você estiver usando redes WiFi, drones que funcionam com essa frequência, etc., ou haverá interferência. É por isso que é preferível usar a partir de 2.501Mhz.

Em relação às suas características, funciona de 1.9 a 3.6 V, Assim, será fácil para você alimentá-lo com a própria placa Arduino com a conexão 3.3, usando baterias, e até mesmo com uma fonte de alimentação que tenha essa tensão. Além disso, você pode configurar a velocidade de transmissão entre 250 Kbps, 1 Mbps e até 2 Mbps.

O chip em emissões e recepções pode funcionar simultaneamente com até 6 conexões de vários dispositivos. Com isso você poderá estar transmitindo ou recebendo de diversos pontos sem nenhum problema. E se você estiver preocupado com a robustez ou confiabilidade da comunicação, o próprio chip possui circuitos lógicos para corrigir erros de dados e encaminhar informações, se necessário. Portanto, ele libera o processador dessa tarefa.

Para controlá-lo, você pode usar o ônibus SPI, então seu controle com o Arduino é muito simples. Além disso, os pinos de dados do NRF24L01 suportam até 5v sem problemas. O consumo de energia em Stand By é bastante baixo, por isso não será um elemento com que se preocupar, e quando está em funcionamento não é dos mais custosos, pois só precisa de 15mA para enviar e receber dados.

No mercado você encontrará vários diferentes módulos que montam o chip NRF24L01, eles só mudam nos elementos auxiliares que possuem ou em alguns detalhes. Por exemplo, no tipo de antena. Alguns têm uma antena impressa no PCB em forma de zigue-zague com alcance de cerca de 20-30 metros. Outros admitem uma antena externa um pouco mais potente com um amplificador para ir de 700 metros a 1 km.

Não obstante, o escopo real é limitado por alguns fatores, como obstáculos na estrada, ruído ou interferência de outros elementos ou sinais presentes, velocidade de transmissão, tensão de alimentação (tensão mais alta, distância maior), etc. Por exemplo, se você quiser transmitir na velocidade máxima de 2Mbps terá uma grande penalidade na distância, que será de apenas 2 ou 3 metros no máximo. Em velocidades mais baixas, você pode escalar essa distância.

ESP8266
Artigo relacionado:
ESP8266: o módulo WIFI para Arduino

O que você precisa saber antes de comprar?

Antena NRF40L01

El NRF24L01 é um chip muito barato que pode ser usado em uma infinidade de projetos. Por exemplo, se não tem antena externa, pode comprá-la por até € 0.65, sendo o modelo da antena externa aquele um pouco mais caro do que este mas ainda muito barato e normalmente não ultrapassa os € 1.7 .

Se você não possui outro elemento de emissão ou recepção, você já sabe que deve adquirir dois módulos NRF24L01, um para usar de um lado e outro do outro lado de onde deseja transmitir. Ambos vão agir como remetente ou receptor Como você quiser.

Pinagem e montagem do NRF24L01

pinagem NRF40L01

Quanto à montagem, é bastante simples. O NRF24L01 possui 8 pinos, portanto sua pinagem é muito fácil para entender como você pode ver nesta imagem que eu te deixo. À direita você pode ver o diagrama de pinos de uma placa Arduino UNO e como cada um dos pinos do módulo seria conectado a ele.

Como você pode deduzir, o prato NRF24L01 é alimentado usando os pinos GND e 3.3v do Arduino. Lembre-se de não fazer isso com o sinal 5v ou você danificará o módulo.

Integração com Arduino

2 NRF24L01 com Arduino (circuito)

Depois de saber o que é o NRF24L01 e como ele pode ser conectado e ligado, além do número de projetos que você pode fazer com alguns desses dispositivos baratos, o próximo passo é mostrar um exemplo de programação para que você possa começar a experimentar seu IDE Arduino. Lembre-se de que o formato dos dados que você pode transmitir pode ser modificado no código-fonte.

L298n
Artigo relacionado:
L298N: módulo de controle do motor para Arduino

Você pode optar por enviar e receber uma string, um número inteiro, dados de ponto flutuante, etc. Eu recomendo nosso guia de programação em Arduino se você está começando. Com ele você pode criar seus primeiros projetos. E como um exemplo concreto para o NRF24L01, deixo-vos aqui os códigos necessários para uma string.

Código que você deve escrever no IDE do Arduino e programar a placa do Arduino conectada ao NRF24L01 que você vai atribuir como transmissor:

#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
 
const int pinCE = 9;
const int pinCSN = 10;
RF24 radio(pinCE, pinCSN);
 
// Single radio pipe address for the 2 nodes to communicate.
const uint64_t pipe = 0xE8E8F0F0E1LL;
 
char data[16]="Aquí tu mensaje" ;
 
void setup(void)
{
   radio.begin();
   radio.openWritingPipe(pipe);
}
 
void loop(void)
{
   radio.write(data, sizeof data);
   delay(1000);
}

Aqui está o código que você deve inserir no IDE do Arduino e registrar na placa que você conectou ao NRF24L01 dedicado como receptor:

#incluir <nRF24L01.h>
#incluir <RF24.h>
#include &lt;RF24_config.h&gt;
#incluir <SPI.h>

const int pinCE = 9;
const int pinCSN = 10;
Rádio RF24 (pinCE, pinCSN);

// Endereço de canal de rádio único para os 2 nós se comunicarem.
const uint64_t tubo = 0xE8E8F0F0E1LL;

dados char [16];

configuração de void (void)
{
Serial.begin (9600);
radio.begin ();
radio.openReadingPipe (1, tubo);
radio.startListening ();
}

loop vazio (vazio)
{
if (radio.available ())
{
int done = radio.read (data, sizeof data);
Serial.println (dados);
}
}

Com isso você terá tudo que precisa e você pode tentar enviar palavras ou strings de um e ver como o outro os recebe. Use dois computadores conectados por USB à placa Arduino para usar o console como um meio de visualizar os dados. Separe-os a uma distância prudente de acordo com o módulo que possui ou com a configuração que lhe deu e começará a ver no ecrã do outro computador os caracteres que introduziu no primeiro código ...


Um comentário deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Stefan dito

    Ola isaac
    Quero concluir um projeto com arduino, rasberry ou qualquer outra coisa.
    Você pode fornecer um contato de e-mail para explicar?
    Uma mina a01b02@abv.bg
    obrigado