Quando queremos desenvolver um projeto de comunicação sem fio arduino sempre encontramos problemas quando o assunto é instalação e implementação dos mesmos, ou até mesmo tem vezes que desejamos realizar um simples projeto de acionamento para portas e portões através de sistemas que possibilitam o acionamento à distância.
Para estes processos citados, a maioria encontramos resistências na hora de desenvolver os mesmos devido à falta de equipamentos capazes de executar tais características e os disponíveis para venda são de custo elevado ou de alta complexibilidade para a implementação em seus projetos.
Pensando nesta dificuldade que muitos encontram durante o desenvolvimento de seus projetos, trouxemos uma opção barata e de fácil implementação que trabalha com sistemas de comunicação de rádio frequência, utilizando-se de um módulo transmissor e outro receptor que permitem a comunicação entre dois pontos distintos por meio do Projeto Comunicação sem Fio Arduino com Transmissor e Receptor RF 433Mhz STX882RF.
Existem diversos meios de realizar comunicações sem fio utilizando-se de um Arduino para os seus projetos, é o caso do Bluetooth e do Ethernet Shield, por exemplo, utilizados para verificar a situação de sensores e enviar dados e comandos de um equipamento para outro, cada qual com suas limitações de uso.
Classificado como uma opção barata e que realiza a comunicação direta de dados entre dois diferentes Arduinos, o Kit de Módulo Transmissor e Módulo Receptor RF de 433Mhz é extremamente funcional e de fácil aplicação podendo ter sua capacidade de alcance ampliada com a utilização de antenas externas.
Módulo de Radiofrequência Transmissor + Receptor 433Mhz
O sistema de comunicação por radiofrequência é classificado como um sistema de comunicação sem fio que possui como base a utilização de ondas eletromagnéticas em uma faixa de frequência estabelecida de acordo com o equipamento, neste nosso caso, 433Mhz.
Muito utilizada nos mais diversificados equipamentos a rádio frequência está presente em radares, telefones, sistemas de alarme, satélites, dentre outros, o que nos possibilitará em nosso projeto de hoje trocar dados entre dois Arduinos e auxiliar-nos no acionamento de portas digitais.
Existem dois modelos principais de módulos de rádio frequência para distribuição no mercado hoje, sua diferença está principalmente no preço e na distância que cada um possui para realizar a comunicação entre seus semelhantes, optamos por apresentar neste artigo o Kit RF com Chip Super Heteródino, uma tecnologia exclusiva que aumenta ainda mais a capacidade de comunicação do mesmo.
Diferente dos outros modelos de receptores RF, o Receptor RF em questão como dito anteriormente, possui um exclusivo chip super heteródino que se encontra na parte superior do módulo junto de um cristal oscilador que em conjunto com o chip é capaz de uma recepções de alta potência e continuidade elevada, sem interrupções e sem problemas na troca de sinal.
O Kit Módulo RF é constituído de dois módulos que juntos conseguem executar o envio de dados e sinais, um é o transmissor, responsável por enviar os dados e outro é o receptor, responsável por receber os dados e executar os comandos junto ao microcontrolador que está utilizando ou projeto o qual está implementado.
Aplicação e Funcionamento
O referente projeto será desenvolvido utilizando-se dois Arduinos conectados junto ao transmissor e o receptor de radio frequência para assim, realizar uma comunicação sem fio entre o Arduino Nano e o Arduino UNO.
Utilizando-se da porta serial iremos enviar dados do Arduino UNO para o Arduino Nano, neste exemplo utilizaremos somente valores numéricos para indicar a ação de liga e deliga de um LED instalado junto à porta 13 do Arduino correspondente ao receptor de rádio frequência.
A comunicação sem fio Arduino neste exemplo irá se desenvolver de forma rápida e simples, podendo ser acompanhada através da porta COM (Monitor Serial) correspondente de ambos os equipamentos em comunicação, veja um exemplo de funcionamento no vídeo abaixo:
[VÍDEO DEMONSTRATIVO EM BREVE]
Produtos Utilizados para o Projeto
- 1 – Arduino Uno R3 + Cabo USB AB;
- 1 – Arduino Nano V3.0 + Cabo Mini USB;
- 1 – Transmissor RF + Receptor RF com Chip Super Heteródino;
- 1 – LED Branco de Alto Brilho 5mm;
- Jumpers
Montagem Física (Hardware)
A montagem física é simples e rápida, bastando conectar os respectivos pinos junto às respectivas portas do Arduino, com uma alimentação de 5V para de ambos os equipamentos de comunicação, garantimos maior praticidade e agilidade para a sua montagem física, observe abaixo a montagem física de ambos os produtos, Transmissor e Receptor RF de 433MHz:
Transmissor RF
Através da imagem abaixo, podemos observar o esquema de ligação do transmissor de rádio frequência é de fácil desenvolvimento, bastando conectar os pinos do módulo em seus respectivos pinos junto ao Arduino, pode ser feito com ligação direta de jumper ou até mesmo junto de protoboard, por exemplo.
Neste projeto não utilizamos antena devido ao alcance natural do equipamento ser suficiente para os nossos testes, mas caso necessário seja, basta incluir a antena que é encaminhada junto ao produto no local indicado anteriormente.
Para auxiliar no desenvolvimento do seu projeto, disponibilizamos abaixo as especificações do Transmissor RF, observe:
- Modelo: SRX882;
- Temperatura de operação: -30 a 85°C;
- Tensão de operação: 2,4 a 5,5V;
- Corrente de operação: 2,8mA;
- Frequência de transmissão: 433MHz;
- Dimensões (CxLxA): 36x11x8mm;
- Peso do transmissor: 1,5g;
- Peso do transmissor com antena: 2,9g.
Por trabalhar com uma faixa de tensão de 2,4 a 5,5V, com um baixo consumo de corrente e pequenas dimensões, este produto é extremamente indicado para os mais diversificados projetos, além de trabalhar com uma frequência padrão para projetos que é de 433MHz, o que torna o mesmo compatível com outros módulos de mesma frequência.
Receptor RF
A montagem física desta parte do projeto por sua vez, diferencia-se da anterior devido ao fato de utilizar-se de uma protoboard para a instalação do Arduino Nano e consequentemente a instalação dos demais itens utilizados no projeto, como o LED e o Receptor de Rádio Frequência.
Para auxiliar no desenvolvimento do seu projeto, disponibilizamos abaixo as especificações do Transmissor RF, observe:
- Modelo: SRX882;
- Temperatura de operação: -20 a 70°C;
- Tensão de operação: 1,2 a 6V;
- Corrente de operação: 2,8mA;
- Frequência de recepção: 433MHz;
- Sensibilidade: -110dB;
- Dimensões (CxLxA): 13x15x7mm;
- Peso do receptor: 1,1g;
- Peso do receptor com antena: 2,7.
Mesmo que com uma faixa de tensão acessível de 1,2 a 6V para a alimentação do produto, o recomendado é uma tensão próxima de 5V, ou de 3,3V dependendo do modelo de Arduino o qual está sendo utilizado.
Funcionamento do Programa (Software)
Desenvolvido de uma forma prática e simples com o intuito de estabelecer uma comunicação sem Arduino, o referente projeto é dividido em dois códigos, um código para o Transmissor conectado junto ao Arduino NO e outro código para o Receptor, instalado junto ao Arduino Nano.
Cada qual com suas variáveis específicas para o envio e o recebimento de dados, ambos os códigos são de fácil compreensão e podem ser alterados e melhorados facilmente de acordo com a necessidade do hobbista / projetista que estiver fazendo uso do mesmo.
Vamos verificar agora o funcionamento de cada um dos códigos, vale lembrar que para este projeto é necessária a utilização da biblioteca VirtualWire, comumente encontrada junto a pasta libraries do Arduino, caso contrário segue link abaixo:
Download da Biblioteca VirtualWire: DOWNLOAD AQUI.
Transmissor RF
Neste primeiro código iremos configurar nosso Arduino para realizar o envio de dados através do Monitor Serial do Arduino, então após carregar o código abaixo junto ao Arduino será possível realizar o envio de dados para o outro equipamento Arduino conectado junto ao Receptor e devidamente configurado.
Veja abaixo o código de funcionamento do Transmissor RF com suas variáveis comentadas para a melhor compreensão do mesmo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// Código de funcionamento Transmissor RF // Projeto de comunicação sem fio Arduino #include <VirtualWire.h> // Inclui biblioteca necessária para comunicação void setup() { Serial.begin(9600); // Configura a comunicação serial em 9600 vw_set_tx_pin(12) // Configura o pino Digital utilizado pelo Módulo vw_setup(2000); // Bits per segundo Serial.println("Digite o texto que deseja Enviar ..."); //Imprime na Porta Serial } void loop() { char data[40]; int numero; if (Serial.available() > 0) { numero = Serial.readBytesUntil (13, data, 40); data[numero] = 0; Serial.print("Enviado : "); // Imprime na porta serial a mensagem em destaque Serial.println(data); // Imprime o valor enviado send(data); // Envia o valor para o receptor } } void send (char *message) { vw_send((uint8_t *)message, strlen(message)); vw_wait_tx(); // Aguarda o envio de dados } |
Após carregar o código em seu equipamento Arduino e abrir a Porta Serial que corresponde ao Arduino UNO, no caso do nosso projeto, você receberá a seguinte mensagem de confirmação para o envio de dados: “Digite o texto que deseja Enviar …”, veja:
Caso a mensagem não apareça ou alguns dados estranhos apareçam junto à tela, verifique se a comunicação está configurada em 9600, na parte inferior direita da tela em questão.
Após esta confirmação o seu Arduino já está pronto para enviar mensagens e estabelecer a comunicação sem fio Arduino, para cada mensagem enviada será impresso antes o texto “Enviado : “, o que confirma que o texto foi enviado para o Receptor, veja:
Com isto temos como terminada a configuração do Transmissor RF e agora basta configurar o Receptor RF para podermos realizar a comunicação entre os dis equipamentos Arduino.
Receptor RF
Agora temos como pronta a configuração do Transmissor precisamos configurar o receptor, nesta fase iremos utilizar as variáveis necessárias para a interpretação dos valores recebidos e configurar funções para os valores recebidos pelo mesmo para, por exemplo acionar um LED posicionado junto ao pino Digital 13.
Através do código abaixo iremos receber o dado do transmissor, identificar, e atribuir as funções HIGH e LOW para controlar o estado de um LED, para este código precisaremos da mesma biblioteca utilizada anteriormente, caso já tenha esta biblioteca na pasta libraries podemos continuar para os próximos passos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
// Código de funcionamento Receptor RF // Projeto de comunicação sem fio Arduino #include <VirtualWire.h> // Inclui biblioteca necessária para comunicação byte message[VW_MAX_MESSAGE_LEN]; // Variável para armazenagem de mensagens byte messageLength = VW_MAX_MESSAGE_LEN; // Tamanho da mensagem void setup() { Serial.begin(9600); // Configura a comunicação serial em 9600 Serial.println("Dispositivo pronto para receber dados!"); //Imprime na Porta Serial vw_set_rx_pin(11); // Configura o pino Digital utilizado pelo Módulo vw_setup(2000); // Bits por segundo vw_rx_start(); // Inicializa o receptor } void loop() { if (vw_get_message(message, &messageLength)) { // Elimina o bloqueio Serial.print("Recebido: "); // Imprime na porta serial a mensagem em destaque Serial.write(message[0]); if (message[0] == '0') { // Se receber o valor 0 digitalWrite(13, LOW); // Põem o pino 13 em estado LOW } else if (message[0] == '1') { // Se receber o valor 1 digitalWrite(13, HIGH); // Põem o pino 13 em estado HIGH } Serial.println(); } } |
Como podemos observar, sempre que receber o caractere “1”, o Arduino alterará o estado do pino digital 13 para HIGH e fará com que o LED se ascenda, caso contrário, ou seja, caso receba o caractere “0”, o Arduino alterará o estado do pino para LOW e apagará o LED.
Todo este processo pode ser observado através da Porta Serial do Arduino antecedido pela mensagem “Dispositivo pronto para receber dados!”, vale ressaltar que o funcionamento do Receptor não depende da Porta Serial e pode ser realizado até mesmo desconectado de um computador, mas com alimentação externa.
Veja abaixo um exemplo do que é exibido pela porta serial, que é utilizado nas primeiras vezes como um método de testa para a confirmação da comunicação entre os equipamentos.
Conclusão
Com isto, temos desenvolvido um projeto de comunicação sem fio Arduino, que torna capaz realizar a comunicação entre dois equipamentos Arduino distantes através de transmissores e receptores de rádio frequência.
Este é um projeto base que pode ser utilizado como inspiração para o desenvolvimento de algo ainda mais complexo, como por exemplo, que tal adicionar um teclado matricial para possibilitar o envio de dados sem a necessidade de um computador, ou utilizar um sensor para captar os dados à distância.
Agora libere sua criatividade, explore as funcionalidades do Arduino e faça projetos ainda mais incríveis com a ajuda deste artigo e não se esqueça de compartilhar conosco a sua experiência e os resultados que obteve.
Poderia usar dois arduíno nano com essa projeto, e colocar um relé no receptor
Dorival Bonini
Como faço para mandar mais de um comando por ele? Gostaria de fazer um controle de carrinho de controle remoto.
Bom dia Guilherme! Você pode mandar quantos comandos quiser, cada caractere, por exemplo, pode ter um comando associado para ser interpretado como desejado pelo Arduino do Receptor.
BOA TARDE, QUAL DISTÂNCIA ALCANÇADA ENTRE O RECEPTOR E O TRANSMISSOR?
Olá Fábio! Infelizmente não tem-se um valor exato, o mesmo pode variar com o local de instalação e o campo externo podendo diminuir a distância na presença de obstáculos, por exemplo.
Qual é a maior distância entre receptor e transmissor , que pode ser atingida com esse projeto?
Bom dia Carlos!
A distância entre ambos vai variar do tipo de antena utilizada, comprimento da antena e formato da mesma. Infelizmente o fornecedor não dos disponibilizou um valor exato para esta informação.
Excelente conteúdo, parabéns!
Sabe me informar, se posso substituir o Arduino ao qual o receptor RF foi conectado por um ESP8266 (Nodemcu)?
Bom dia Renata!
A princípio é possível desenvolver sim um projeto utilizando ambos os equipamentos, basta desenvolver um esquema de ligação e código compatível com o que se deseja.
ola a equipe esta de parabens muito bom o conteudo muito esclarecedor queria saber como faço para adquirir novos conhecimento sobre o assunto .
Bom dia Gustavo!
Ficamos bastante felizes pelo retorno, assim que possível estamos adicionando novos conteúdos ao nosso blog para proporcionar maior interação e especialização dos nossos clientes, vamos anotar o seu desejo de mais conteúdos referentes ao assunto e assim que possível estaremos disponibilizando maiores informações e novos projetos.
Boa noite, primeiramente queria parabenizar pelo compartilhamento de ideia de forma fácil e simples de entender.
Gostaria de saber se tem como utilizar vários Arduíno e cada um recebendo 1 informação independente dos demais.
Exemplo 1 (sua vez) 2 (você será o próximo) utilizando 1 exemplo de uma fila
Muito obrigado, ficamos felizes em poder auxiliar.
Caso todos estejam no mesmo endereço, sempre receberão a mesma mensagem, porém pode configurar uma ordem independentemente para cada equipamento.
Oi, boa noite, gostaria de saber se tem como fazer esse projeto usando apenas um Arduino?
Boa Tarde Jade!
A ideia de utiliza-se dois Arduinos se dá ao fato de possibilitar com que a comunicação seja feita a distância, com dois equipamentos ligados a apenas um Arduino isto não poderia ser feito.
Caso refira-se ao modelo, pode ser feito com dois Arduinos de um único modelo sem problema.
Olá, parabéns pelo suporte!
Adquiri na loja o receptor e transmissor, porém preciso utilizá-los com PIC, e não com Arduino, preciso de uma ajuda em relação á programação. Existe uma biblioteca de devo usar? Não poderiam disponibilizar um programa para receptor e outro para o transmissor?
Obrigado
Olá Leonardo!
Infelizmente não trabalhamos este sensor com PIC até o momento e não temos um projeto de utilização, assim como infelizmente não temos um código para funcionamento do mesmo.
Boa noite! Estou tentando fazer um carrinho de controle remoto usando esse módulo semelhante de 315Mhz mas estou tendo o seguinte problema: o transmissor só envia o comando se o arduino estiver conectado a um PC. Como consigo contornar este problema? Preciso enviar os comandos via teclado feito com divisor de tensão.
Olá Victor!
A princípio, se desconectado do computador o sensor deve continuar enviando sinal, porém não será possível fazer alguma leitura, por exemplo.
Vale verificar apenas o sistema de alimentação se supre as necessidades de funcionamento do seu projeto.
Boa tarde Matheus, tudo joia?
Eu quero fazer um projeto onde eu preciso enviar dados de um ponto qualquer para um celular/smartphone (independente da interface).
Basicamente seria enviar uma notificação (qualquer tipo de notificação) para um celular que se aproxima deste ponto. Ou seja, o ponto precisa reconhecer a aproximação e enviar uma notificação para o smartphone.
Qual seria a maneira ideal de realizar esse projeto? Você poderia me ajudar, por favor?
Obrigado e abraços!
Boa Tarde Arthur!
Tudo certo. No momento infelizmente a Usinainfo não possui nada que realize tal procedimento, porém fiquei sabendo que em breve estará chegando o iBeacon no site, um produto que acredito solucionar o seu problema.
Olá equipe. Parabéns e obrigado pelo post.
Tenho duas dúvidas:
1 – como codificar o programa ou o hardware para que os dados não sejam lidos por outro dispositivo?
2 – Como fazer para controlar a velocidade de um motor (5V), com este módulo (ou outro)?
Obrigado.
Bom Dia Sebastião! Obrigado pelos elogios, quanto as suas dúvidas, é possível incluir um sistema de senha para acesso ou até mesmo a possibilidade de criptografia dos dados, porém para isto seria necessário o desenvolvimento de um projeto específico que comporte tais funcionalidades e para controlar a velocidade de motores é necessário apenas a inclusão de um drive controlador / ponte h e incluir tais funções no código base do projeto.
Boa Noite, primeiro parabéns pelo conteúdo!!!
Gostaria de tirar uma duvida, é possível fazer uma comunicação onde ambos arduinos possam enviar e receber dados, ou seja, arduino1 envia dados para arduino2 que poderá enviar dados de resposta para o arduino1. Como seria possível essa aplicação?
Boa Tarde Leonardo! Infelizmente com apenas um receptor/emissor não é possível realizar esta aplicação, teria que incluir mais um kit ao seu projeto, porém com frequência diferente para não gerar interferência nos sinais.
Boa noite, não sei se é possível mas acredito que sim, teria como eu usar um teclado resistivo enviar um comando para o Arduíno A por radiofrequência ele enviar um comando para o Arduíno B e esse Arduíno enviar um comando IR para uma tv ou som? Minha ideia seria um controle de volante para o som do carro.
Boa Tarde Rafavianna! Até onde deu para compreender o projeto é possível sim, basta apenas selecionar os produtos ideais para lhe auxiliar e desenvolver a programação adequada.