Microcontrollers Lab

Tabela de Conteúdos

NRF24L01 é um dos comunicadores RF legais para aplicações modernas. O NRF24L01 é o mais barato e vem com ótimas características. Um único módulo se comunica na freqüência de 2,4 GHz o que o torna legal. Ele pode transmitir e receber dados por um único módulo. Transreceber não é sua única capacidade, ele pode se comunicar com um total de 6 outros módulos NRF24L01 de uma só vez. O dispositivo faz interface com a aplicação Arduino e cobre todos os tipos de aplicações de controlo remoto. Este módulo sem fios utiliza o protocolo de comunicação SPI e oferece uma taxa de dados de 10MBs com 125 endereços, o que o torna o módulo de RF mais fiável. O módulo RF usa o módulo GFSK para transceptor de dados.

NRF24L01 Pinout Configuration

No NRF24L01 não existem pinos especiais, todos os pinos que ele oferece para comunicar estão presentes em todos os microcontroladores e placa. O dispositivo irá fazer interface com um microcontrolador/Arduino externo através destes pinos para operar. Ele é composto por 8 pinos. Todos os pinos disponíveis são:

Pinos de alimentação

VCC

O pino de alimentação do módulo é VCC, que se conecta com a fonte de alimentação.

GND

nRF24L01 opera com outro microcontrolador e precisará de um terra comum para operar com ele. O pino GND irá resolver o requisito de terra comum.

Pinos de comunicação

CE

CE é um pino de habilitação, que ativa a transmissão/recepção do módulo. Ele só ativará o dispositivo quando houver um estado ALTO em si mesmo.

CSN

Este pino é para ativar a escuta e o processamento de dados a partir do microcontrolador. Para manter a comunicação de dados entre o microcontrolador e o módulo deve ser HIGH.

SCK

É o pino de pulso de relógio da comunicação SPI em nRF24L01. Os dados se moverão entre o módulo e o microcontrolador de acordo com o pulso de relógio no pino SCK.

MOSI

Os dados transmitidos do microcontrolador através dos pinos SPI serão recebidos pelo nRF24L01 no pino MOSI.

MISO

As instruções transmitidas do nRF24L01 usando pinos SPI vão ser recebidas pelo microcontrolador no pino MISO.

Pino de Interrupção IRQ

IRQ é um pino de interrupção, que gera o evento sempre que um novo dado estiver disponível para os pinos SPI. Ele ajuda a enviar feedback para o transmissor.

NRF24L01 RF Module Feature

  • Funciona na freqüência de 2,4GHz, o que o torna legal em quase todos os países.
  • Um único módulo pode atuar como transmissor ou receptor.
  • Uma antena embutida pode enviar os dados até 100 metros.
  • Um módulo nRF24L01 pode comunicar com um máximo de 6 outros módulos de cada vez.
  • Requer 3,3 volts para operar, mas as tensões só podem se estender até 3,6V, caso contrário não levará muito tempo para aquecer e queimar.
  • O dispositivo tem um oscilador incorporado de 16MHz.
  • A velocidade de transmissão do nRF24L01 é de 256kbps a 2Mbps.
  • O dispositivo tem um alcance de 125 canais que dá a característica de operar 125 redes diferentes em um único lugar.
  • As frequências dos canais variam de 2400MHz a 2525MHz.

NRF24L01 Aplicações

  • Na criação de uma rede de malha pequena, nRF24L01 é a melhor escolha para usar.
  • Aplicações de controle remoto em desenvolvimento e trabalhos comerciais maravilhosamente com o nRF24L01.
  • A maioria das aplicações IoT a nível doméstico têm este módulo wireless mas apenas a um nível pequeno.

Como usar o Módulo de Comunicação NRF24L01

nRF24L01 é utilizável com todos os microcontroladores e placas inteligentes mas para usá-lo, alguns pinos e informações de dados devem ser entendidos. Para utilizar o módulo conecte-o com outro microcontrolador com protocolo SPI. Primeiro, dê a entrada de energia aos dispositivos e depois ligue os seus pinos SPI de acordo com o circuito dado.

Depois de o ligar tenha em mente que existem duas formas de o nRF24L01 poder funcionar. A primeira é o transmissor e a segunda e o receptor. Para comunicar como transmissor e receptor, o microcontrolador deve ter sabido primeiro. Na aplicação moderna, o Arduino é o único dispositivo que suporta a comunicação mais eficiente do nRF24L01.

Interfacing with Arduino

Há muito trabalho e pesquisa sobre o nRF24L01 na internet que pode ajudar a utilizá-lo em muitas aplicações, mas existe a base deste módulo no Arduino que cada desenvolvedor deve entender. O funcionamento básico do nRF24L01 é transmissor e receptor, no Arduino, ambos são alcançáveis através dos seguintes métodos. Aqui está o circuito para Arduino UNO.

Como usar como um Transmissor Exemplo

Quando o nRF24L01 atuará como um transmissor então ele só poderá transmitir dados em um único canal para outro módulo. Para utilizá-lo como um transmissor o programa no Arduino deveria ter conhecido. Depois de carregar o programa não há formas sem programar os modos entre o transmissor e o receptor são mutáveis. Para usá-lo como transmissor o seguinte código deve ser carregado:

Detalhes sobre o código do transmissor

A comunicação entre Arduino e nRF24L01 depende das seguintes bibliotecas:

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

Como sabemos que cada placa Arduino tem um pino SPI específico de MISO, MOSI, e SCK. Portanto, o Arduino não terá que contar sobre eles, mas os pinos CSN e CE precisam ser inicializados. A biblioteca nRF24L01 tem uma função integrada para obter o PIN do CSN e CE que é:

RF24 radio(3, 2);

O número 3 representa o pino CE e o 2 representa o pino CSN. Ambos são mutáveis de acordo com qualquer pino digital; aqui eles estão de acordo com o circuito dado acima.

Após este módulo deve inicializar usando o seguinte comando:

radio.begin();

O endereço é definível com 5 bits para o dispositivo no qual ele deve comunicar o receptor. Qualquer número de 5 bits é utilizável.

radio.openWritingPipe(10101);

Após esse módulo deve conhecer o seu modo. Ou ele está trabalhando como receptor ou transmissor. O seguinte comando tornará o nRF24L01 um transmissor.

 radio.stopListening();

Então o dispositivo é utilizável como transmissor. A única coisa conhecida para inicializar é o envio de dados. Tenha sempre em mente que apenas 32 bytes de dados são enviáveis de cada vez, devido à limitação do módulo. O seguinte comando ajudará a definir que:

const char data = "DATA";radio.write(&data, sizeof(data));

Os dados de transmissão são definíveis na configuração ou loop do programa.

Como usar NRF24L01 como um Receptor Exemplo

A parte acima é toda sobre o método de transmissão, mas o método do receptor não é diferente do transmissor. No transmissor, somente três instruções vão mudar.

  • O canal de endereço, que não estava disponível no transmissor
  • A inicialização do módulo como receptor
  • O método de recepção e verificação de dados

Aqui está o seguinte código para o receptor.

Detalhe sobre o código do receptor

Como você observa apenas três partes são diferentes para o receptor do transmissor.

A primeira parte é a parte do endereço:

radio.openReadingPipe(0,10101);

Na parte do endereço, há duas partes agora. a segunda é a parte do endereço que define o endereço do dispositivo de transmissão. A primeira parte, que é “0”, define o canal. Como falamos acima que o módulo oferece 6 canais para comunicar de cada vez, a primeira parte da programação ajudará a construir múltiplos canais.

A segunda parte é a inicialização do módulo como um transmissor. Para inicializar o módulo como um transmissor, inicialize o seguinte comando:

radio.startListening();

A terceira é a recepção de dados.

if (radio.available())

A ajuda a saber sobre os dados recebidos

radio.read( data, size );

A ajuda a ler os dados.

NRF24L01 Exemplo

Existem um monte de aplicações nRF24L01 é utilizável mas fazer uma malha é uma das melhores habilidades do nRF24L01 o que o torna diferente de outro módulo. Para utilizá-lo como um total de 3-7 módulos de malha deve estar disponível. Siga a imagem dada.

Então a instrução seguinte deve ser usada para inicializar os diferentes canais no final do receptor.

O receptor é incapaz de diferenciar entre dispositivos para que os desenvolvedores tenham sempre em mente que os dados não devem ser os mesmos entre transmissores.

Diagrama 2D

Módulos Alternativos:

  • XBee Módulo S2C
  • SX1278 Módulo LoRa RF
  • SIM900A Módulo GSM
  • ESP12E Módulo WiFi
  • PN532 Módulo NFC RFID
  • HM-10 Módulo Bluetooth
  • HC-05 Módulo Bluetooth
  • 433MHz Módulo Receptor RF
  • 433MHz Módulo Transmissor RF
  • TSOP1738 Receptor IR
  • Arduino MKR1000 Placa WiFi

Deixe uma resposta

O seu endereço de email não será publicado.