19-2 Grupo 8

## **Autores**

Bruno de Andrade Patrocinio - 0040961813040

Bruno Henrique Diniz Ladeia - 0040961613017

Caio Felipe Motta Ladeia - 0040961813052

Leonardo Rodrigues de Matos - 0040961813026

## **Resumo**

Este projeto possui o objetivo de demonstrar o funcionamento de envio de
informações e comandos por radiofrequência, entre um emissor e receptor.

## **Softwares/Materiais Utilizados**

* Microcontrolador Arduino UNO;
* Microcontrolador Arduino NANO
* Cabos Jumper
* 1 Led Vermelho
* 1 Modulo Transmissor RF de 433 Mhz
* 1 Modulo Receptor
* Biblioteca de Recursos VirtualWire.h (Necessário a importação para o Arduino)
* IDE (Ambiente de desenvolvimento do Arduino)
* Fritzing 0.93 (Ambiente para construção de esquemas)

## **Metodologia**

Este módulo de Radiofrequência, possui uma série de utilidades, sendo
algumas delas muito conhecidas por nós, controles remotos e sistemas de alarmes são alguns exemplos. Este dispositivo é composto por dois módulos, sendo um transmissor(TX) e outro o receptor(RX). Estes operam em 433 MHZ e quando o módulo emissor se encontra em estado HIGH, sendo 5 Volts, é emitido o sinal na
frequência de 433 MHZ. Quando está em LOW, não é emitido nenhum sinal. Este dispositivo infelizmente é bastante vulnerável a interferências, mas quando soldado uma antena no transmissor e receptor. um fio enrolado de 17cm, basta para auxiliar no alcance de transmissão e recepção dos dados, podendo chegar ao
máximo de 100 metros (alguns usuários dizem que pode chegar a 200 metros) em campo aberto e sem obstáculos. A interferência de obstáculos certamente fará cair o alcance.

Neste projeto, se faz possível o usuário enviar uma mensagem digitada através do monitor serial do Arduíno e esta sendo recebida no outro lado por outro Arduíno, também pelo monitor serial. Está incluído a possibilidade de enviar comandos para acender um LED, piscar e apagar, digitando 1, 11 e 0 respectivamente.

## **Desenvolvimento**

Esquema de montagem

O circuito a ser desenvolvido em protoboard é relativamente simples,
dispensando até sua utilização. Fora necessário a importação de uma biblioteca
de recursos, para auxiliar na utilização de funções disponibilizadas pelos
criadores.

## **Resultado**

Houve uma certa dificuldade em enviar mensagens um pouco maiores do que
fora testado em fases iniciais de teste do módulo, mas após isso os resultados
foram mais satisfatórios. O envio de dados foi feito entre dois computadores,
sendo um deles notebook. Em pontos mais distantes da sala de aula, o envio de
informações foi possível normalmente. Na questão do acionamento e controle do
LED, através do envio de comandos, não foram encontrado nenhum tipo de
problema.

## **Conclusão**

O grupo pôde experienciar o funcionamento do módulo Transmissor/Receptor
de 433 MHZ e a utilização deste no envio de comandos e informações. Os membros
do grupo se mostraram bastante interessados pelo funcionamento do item
utilizado e decidiram posteriormente colocar uma antena para uma melhor
transmissão e recepção de dados. Foi visto que existem outros modelos de modulo
de transmissão e recepção de dados que possuem maior confiabilidade na
transmissão de informações e alcance, como o Módulo Transceptor Wireless
NRF24L01 2.4GHz, que pode chegar a 1KM de alcance. Certamente o grupo encara
como um item de grande utilização no ambiente de automação e controle o envio
de dados sem fio por Radiofrequência.

## **Código**

**Código do Emissor:**

```
//Comunicação com Emissor de RF de 430 MHZ
#include <VirtualWire.h>
void setup() {
Serial.begin(9600);

 vw_set_tx_pin(12);
 vw_setup(2000);

 Serial.println("Digite o texto que deseja Enviar ...");
 }

 void loop() {
 char data[60];
 int numero;

 if (Serial.available() > 0)  {
 numero = Serial.readBytesUntil (400, data, 60);
 data[numero] = 0;
 Serial.print("Enviado : ");
 Serial.println(data);

 send(data);
 }
 }

 void send (char *message) {
 vw_send((uint8_t *)message, strlen(message));
 vw_wait_tx();
 }

```

**Código do Receptor:**

```
#include <VirtualWire.h>
byte mensagem[VW_MAX_MESSAGE_LEN];
byte mensagemLength = VW_MAX_MESSAGE_LEN;
int guardaPisca = 0;
void setup()
{
    Serial.begin(9600);
    Serial.println("Pronto para receber dados: ");

    vw_set_ptt_inverted(true);
    vw_setup(2000);

    vw_rx_start();
}

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

  if (vw_get_message(buf, &buflen))
  {
   int i;

   digitalWrite(13, true);
   Serial.print("Recebido: ");

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

//digitando 1 o led liga e digitando 0 o led apaga
        if(buf[0] == '1'){
          digitalWrite(13, true);
        }
        else if(buf[0] == '0'){
          digitalWrite(13, false);
        }

        if(buf[0] == '1' && buf[1] == '1'){
          for(int y=0; y<=9; y++){
          digitalWrite(13, true);
          delay(300);
          digitalWrite(13, false);
          delay(300);
          }
        }
        Serial.println("");
    }

}

```