12
Procurar Registre-se Acessar Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) #42 Início Perfil Garagistas Incubadora Loja Área Técnica Discussões Galeria Grupos Sobre Todas as mensagens do blog Meu blog Adicionar Tutorial transmissor e receptor RF Link com Arduino Postado por Laboratório de Garagem em 7 maio 2012 às 15:00 Exibir blog No mercado existe vários tipos e meios de comunicação para usar com Arduino. Neste tutorial usaremos os RF Link Receiver - 4800bps(315Mhz) e RF Link Transmitter - 315Mhz e testaremos a comunicção Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-... 1 de 12 29/06/2013 23:23

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Embed Size (px)

Citation preview

Page 1: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Procurar

Registre-seAcessar

Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

#42

InícioPerfilGaragistasIncubadoraLojaÁrea TécnicaDiscussõesGaleriaGruposSobre

Todas as mensagens do blogMeu blogAdicionar

Tutorial transmissor e receptor RF Link comArduino

Postado por Laboratório de Garagem em 7 maio 2012 às 15:00Exibir blog

No mercado existe vários tipos e meios de comunicação para usar com Arduino. Neste tutorial usaremosos RF Link Receiver - 4800bps(315Mhz) e RF Link Transmitter - 315Mhz e testaremos a comunicção

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

1 de 12 29/06/2013 23:23

Page 2: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

entre eles utilizando a biblioteca Virtual Wire e a documentação disponível aqui.

Neste tutorial vamos mostrar como mandar uma mensagem utilizando o RF Link Transmitter -315Mhz com um Arduino e recebendo a mensagem utilizando o RF Link Receiver -4800bps(315Mhz) com outro Arduino.

Antes de mais nada, baixe a biblioteca Virtual Wire e extraia para a pasta "libraries" localizada dentro dapasta da IDE do Arduino. Nesta biblioteca é bem fácil de usar, pois já existe um tratamento de erros parafiltrar os erros que chegam no receptor.

Agora para montar o emissor RF Link Transmitter - 315Mhz com Arduino, faça a seguinte ligação:

Onde:

O Fio vermelho vai para o VCC ou 5VO Fio preto vai para o GNDO FIo verde vai para o pino digital 12 do ArduinoPor opção, pode-se colocar uma antena para melhor captação de dados. O comprimento da antena éde cerca de 25cm

Agora, abra a IDE do Arduino e vá em File/Examples/VirtualWire e selecione "transmitter",conecte oArduino, selecione a versão do Arduino(UNO, Duemilanove,etc) e clique em UPLOAD. Abaixo mostra aprogramação:

// transmitter.pde//// Simple example of how to use VirtualWire to transmit messages// Implements a simplex (one-way) transmitter with an TX-C1 module//// See VirtualWire.h for detailed API docs// Author: Mike McCauley ([email protected])

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

2 de 12 29/06/2013 23:23

Page 3: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

// Copyright (C) 2008 Mike McCauley// $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include <VirtualWire.h>

void setup(){Serial.begin(9600); // Debugging onlySerial.println("setup");

// Initialise the IO and ISRvw_set_ptt_inverted(true); // Required for DR3100vw_setup(2000); // Bits per sec}

void loop(){const char *msg = "hello";

digitalWrite(13, true); // Flash a light to show transmittingvw_send((uint8_t *)msg, strlen(msg)); //Send the messagevw_wait_tx(); // Wait until the whole message is gonedigitalWrite(13, false);delay(200);}

A programação "transmitter" é um exemplo básico onde manda a palavra "hello" para o receptor.

Pronto, agora vamos montar o RF Link Receiver - 4800bps(315Mhz):

Onde:

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

3 de 12 29/06/2013 23:23

Page 4: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

O fio vermelho vai para o VCC ou 5VO fio preto vai para GNDO fio verde vai para o pino digital 11 do ArduinoPor opção, pode-se colocar uma antena para melhor captação de dados. O comprimento da antena éde cerca de 25cm

Agora, com outro Arduino e com a IDE do Arduino aberto, vá em File/Examples/ e clique em "receiver" efaça o mesmo procedimento que o do emissor. Abaixo mostra a programação do "receiver":

// receiver.pde//// Simple example of how to use VirtualWire to receive messages// Implements a simplex (one-way) receiver with an Rx-B1 module//// See VirtualWire.h for detailed API docs// Author: Mike McCauley ([email protected])// Copyright (C) 2008 Mike McCauley// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $

#include <VirtualWire.h>

void setup(){Serial.begin(9600); // Debugging onlySerial.println("setup");

// Initialise the IO and ISRvw_set_ptt_inverted(true); // Required for DR3100vw_setup(2000); // Bits per sec

vw_rx_start(); // Start the receiver PLL running}

void loop(){uint8_t buf[VW_MAX_MESSAGE_LEN];uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message(buf, &buflen)) // Non-blocking{int i;

digitalWrite(13, true); // Flash a light to show received good message// Message with a good checksum received, dump it.Serial.print("Got: ");

for (i = 0; i < buflen; i++){Serial.print(buf[i], HEX);Serial.print(" ");}Serial.println("");digitalWrite(13, false);}}

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

4 de 12 29/06/2013 23:23

Page 5: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Este exemplo mostra o receiver recebendo a informação do emissor, que nesse caso é o "hello". Ao abriro Serial monitor do Arduino-1.0, você verá que os dados que chegam são números, estes números sãonúmeros da tabela ASCII. Você pode ver que o número hexadecimal "68" equivale a letra "h".

E é isso!!! Esperamos que tenham gostado!!! Caso tenham dúvida sobre este tutorial, postem aqui mesmoneste blog. Vocês podem ver outros tutoriais, clicando aqui. Temos a seção de projetos também que vocêspodem ver e postar seus projetos! Até a próxima!!

Referências:

http://www.labdegaragem.org/loja/index.php/38-comunicacao/rf-link-r...

http://www.labdegaragem.org/loja/index.php/38-comunicacao/rf-link-t...

http://arduino.cc/playground/Main/InterfacingWithHardware#Communica...

http://www.sparkfun.com/products/10533

http://www.open.com.au/mikem/arduino/VirtualWire.pdf

http://www.open.com.au/mikem/arduino/VirtualWire-1.9.zip

http://www.sparkfun.com/datasheets/RF/KLP_Walkthrough.pdf

http://winavr.scienceprog.com/example-avr-projects/running-tx433-an...

Exibições: 11154

Tags: Rádio, arduino, frequência, tutorial

Curtir3 membros curtem isto

Compartilhar Twitter Facebook

< Post AnteriorPróximo Post >

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica,robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Evandro Gomes da Silva em 17 junho 2013 às 23:11

socorro!!!!!

alguem sabe o porque quando eu vou compilar esse codigo dar um erro na parte"vw_set_ptt_inverted(true); // Required for DR3100" porque será? Sou novo nessaárea e me interessei muito por esse artigo. Quem puder me ajudar agradeço bastante.

Curtir 12

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

5 de 12 29/06/2013 23:23

Page 6: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Rodrigo Moraes Silveira em 19 abril 2013 às 23:11

Olá, fiz algumas modificações nos exemplos transmiter e receiver, usando os exemplos server eclient da biblioteca VirtualWire. Porém com ambos equipamedos com um emissor e um redeptor deRF

Um arduino envia a mensagem "hello", o outro verifica o conteúdo da mensagem e responde comum ok. Meio tosco mas funcional, fontes no final da mensagem

A questão é: liguei a entrada RSSI do receptor no pino 3 do Arduino, e fiz uma leitura analógica

#define RSSI_PIN 3

...

Serial.println(getRSSI(RSSI_PIN));

...

int getRSSI(int pin)

{

pinMode(pin, INPUT);

return analogRead(pin);

} // end getRSSI()

Estou recebendo valores entre 640 e 650, mas gostaria de modificá-los para RSSI mesmo (0 a 31)ou até mesmo em dBm. Alguém tem alguma idéia?

Abraço

Segue os fontes

ArduinoRF1(onde começa tudo)

/

#include <VirtualWire.h>

#define TX_PIN 12

#define RX_PIN 11

#define RSSI_PIN 3

void setup()

{

Serial.begin(9600); // Debugging only

Serial.println("setup");

// Initialise the IO and ISR

vw_set_tx_pin(TX_PIN);

vw_set_rx_pin(RX_PIN);

vw_set_ptt_inverted(true); // Required for DR3100

vw_setup(2000); // Bits per sec

vw_rx_start(); // Start the receiver PLL running

}

void loop()

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

6 de 12 29/06/2013 23:23

Page 7: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

{

const char *msg = "hello";

uint8_t buf[VW_MAX_MESSAGE_LEN];

uint8_t buflen = VW_MAX_MESSAGE_LEN;

Serial.println(getRSSI(RSSI_PIN));

digitalWrite(13, true); // Flash a light to show transmitting

vw_send((uint8_t *)msg, strlen(msg));

vw_wait_tx(); // Wait until the whole message is gone

//Serial.print("Message sent\n");

digitalWrite(13, false);

delay(200);

// Wait at most 200ms for a reply

if (vw_wait_rx_max(800))

{

if (vw_get_message(buf, &buflen)) // Non-blocking

{

int i;

digitalWrite(13, true); // Flash a light to show received good message

// Message with a good checksum received, dump it.

Serial.print("Got: ");

String str = "";

for (i = 0; i < buflen; i++)

{

Serial.print((char)buf[i]);//, HEX);

Serial.print(" ");

str += (char)buf[i];

} // end for

Serial.println("");

digitalWrite(13, false);

} // end if

} // end if

else

Serial.println("Timout");

} // end loop()

int getRSSI(int pin)

{

pinMode(pin, INPUT);

return analogRead(pin);

} // end getRSSI()

ArduinoRF2 (o segundo arduino)

#include <VirtualWire.h>

#define TX_PIN 12

#define RX_PIN 11

void setup()

{

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

7 de 12 29/06/2013 23:23

Page 8: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Serial.begin(9600); // Debugging only

Serial.println("setup");

// Initialise the IO and ISR

vw_set_tx_pin(TX_PIN);

vw_set_rx_pin(RX_PIN);

vw_set_ptt_inverted(true); // Required for DR3100

vw_setup(2000); // Bits per sec

vw_rx_start(); // Start the receiver PLL running

}

void loop()

{

const char *msg = "ok";

uint8_t buf[VW_MAX_MESSAGE_LEN];

uint8_t buflen = VW_MAX_MESSAGE_LEN;

// Wait for a message

vw_wait_rx();

if (vw_get_message(buf, &buflen)) // Non-blocking

{

int i;

digitalWrite(13, true); // Flash a light to show received good message

// Message with a good checksum received, dump it.

Serial.print("Got: ");

String str = "";

for (i = 0; i < buflen; i++)

{

Serial.print((char)buf[i]);//, HEX);

Serial.print(" ");

str += (char)buf[i];

} // end for

Serial.println("");

if (str == "hello") {

vw_send((uint8_t *)msg, strlen(msg));

vw_wait_tx(); // Wait until the whole message is gone

Serial.print("Response sent\n");

delay(200);

} // end if

digitalWrite(13, false);

} // end if

} // end loop()

Comentário de Valdir Nunes Santos em 8 abril 2013 às 18:13

seria uma pequena distancia, aproximadamente 50,00 metros no máximo e a comunicação seria emum único sentido.

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

8 de 12 29/06/2013 23:23

Page 9: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Eduardo Nogueira em 8 abril 2013 às 15:59

Poder, pode... mas veja com quais distâncias irá trabalhar e se vai precisar que a comunicação seja"vai e volta"

Comentário de Valdir Nunes Santos em 8 abril 2013 às 15:44

preciso transmitir um sinal para um receptor que será instalado em um veículo usando arduino, seráque posso usar o projeto acima como base.

Comentário de Fábio Pereira em 2 abril 2013 às 21:23

"Comentário de felipe araujo dos santos 4 horas atrás

Boa Tarde

Estou precisando montar um projeto para facul

e nao sei como pode ser feito ....... um circuito para acender 3 lampadas via botao. e

desligar cada lampada via controle rf

alguem me ajuda ?

abracos"

Se tu usar um controle baseado no HT6P20 (esses de learn code), tem um script pra decriptar aquino site. Estes controles geralmente possuem 3 botões. Resolvido o problema do controle.

Vai precisar de um Derivado do arduino (Garagino, UNO, NANO, duemilanove , ......) e umreceptor rf de 433mhz.

Vai precisar de um shield de reles para acionamento das lampadas, se for mais prendado, ou estiverafim de por a mão na massa, tem vários esquemas de como fazer no google.

Um pouco de conhecimento em programação (hehehehhe), um pouco de google, cola e dois clipesde papel. É .... da pra fazer.

Comentário de Eduardo Nogueira em 2 abril 2013 às 19:43

Felipe, faz assim, monta seu projeto e posta as dúvidas específicas, assim dá pra ajudar... :)

Comentário de felipe araujo dos santos em 2 abril 2013 às 17:06

Boa Tarde

Estou precisando montar um projeto para facul

e nao sei como pode ser feito ....... um circuito para acender 3 lampadas via botao. e desligar cada

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

9 de 12 29/06/2013 23:23

Page 10: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

lampada via controle rf

alguem me ajuda ?

abracos

Comentário de Rafael Spessotto em 22 janeiro 2013 às 19:07

Senhores, nao consegui fazer funcionar esse exemplo...pelo que to vendo a luzinha do transmissorso fica acessa...nao parece que ta enviando nada..alguem pode ajudar? pelo que vi fiz tudo certinhoexatamente como nas figuras... :(

Comentário de Leonilde Diogenes Gurgel Neto em 6 dezembro 2012 às 0:03

Fábio,

Pode utilizar os controles já prontos... mas eles vem com uma codificação e vc precisa testar issocom mais calma.

O "ajuste" é para sintonizar somente.

‹ Anterior1234Próximo ›Página

RSS

Bem-vindo aLaboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Registre-seou acesse

Or sign in with:

Publicidade

Convide um amigo para o Lab!

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

10 de 12 29/06/2013 23:23

Page 11: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Loja Lab de Garagem

Novo!

Garagino Rev1

Por: R$ 29,00

Ou em até 6x de

R$ 5,18

Android 4.0 Mini PC

Por: R$ 195,00

Ou em até 18x de

R$ 13,00

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

11 de 12 29/06/2013 23:23

Page 12: Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Osciloscópio Digital

(ADS1102C) - 100MHz - 2 Canais

Por: R$ 1920,00

Ou em até 18x de

R$ 127,96

Kit Completo de Ferramentas - Avançado

Por: R$ 540,00

Ou em até 18x de

R$ 35,99

© 2013 Criado por Marcelo Rodrigues.

Badges | Relatar um incidente | Termos de serviço

Entrar no bate-papo

Tutorial transmissor e receptor RF Link com Arduino - Laboratorio de ... http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-...

12 de 12 29/06/2013 23:23