Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Transmitindo Dados de Sensores via RF com Arduino

Neste pequeno projeto vamos demonstrar como usar o Arduino para transmitir dados de sensores via wireless (RF – Rádio Frequência)


Nosso objetivo é testar a transmissão RF com Arduino.
Para isso, vamos usar o módulo RF 433 Mhz (transmissor e receptor) muito simples, barato e fácil de configurar.

Módulo RF 433 MHz

Hardware Necessário

Para o transmissor:

  • Arduino compatível (no meu caso, usei o Arduino Mega 2560);
  • Sensor de temperatura DHT11;
  • Módulo transmissor RF 433 Mhz.

Para o receptor:

  • Arduino compatível;
  • Módulo receptor RF 433 Mhz.

Software Necessário

Para controlar o sensor DHT11, precisaremos da biblioteca da Adafruit que você pode baixar do seguinte endereço:

https://github.com/adafruit/DHT-sensor-library

Essa lib é dependente da Adafruit Unified Sensor Library que você encontra aqui:

https://github.com/adafruit/Adafruit_Sensor

Lembre-se: Para instalar essa bibliotecas, você pode usar a própria IDE do Arduino através do Gerenciador de Bibliotecas.

Para a transmissão RF, vamos usar uma biblioteca bem leve que é especializada nos módulos que estamos usando:

Transmissor:  https://github.com/zeitgeist87/RFTransmitter

Receptor: https://github.com/zeitgeist87/RFReceiver

Esquema de ligação

No transmissor, ligamos o DHT11 na Porta Digital 3 e o Transmissor RF na porta digital 11.

No receptor, ligamos o Receptor RF na porta digital 2.

Veja o Vídeo da montagem aqui:

O Sketch

Para o transmissor:

#include "DHT.h"
#define DHTPIN 3     
#define DHTTYPE DHT11   
DHT dht(DHTPIN, DHTTYPE);

#include 
#define NODE_ID          1
#define OUTPUT_PIN       11
RFTransmitter transmitter(OUTPUT_PIN, NODE_ID);

void setup() {
  dht.begin();
}
void loop() {
  delay(5000); //Tempo entre as transmissões
  int t = dht.readTemperature(); //Leitura da temperatura em Celsius
  if (isnan(t)) {
    Serial.println("Falha na leitura da temperatura!");
    return;
  }

  //Nessas 3 linhas convertemos a temperatura de int para array de chars
  String temp = String(t);
  char msg[5];
  temp.toCharArray(msg,5);
  
  transmitter.send((byte *)msg, strlen(msg) + 1) // Envio dos dados
  delay(5000);
  transmitter.resend((byte *)msg, strlen(msg) + 1); //Retransmissão para garantir a integridade
}

Para o Receptor:

#include 
#include 

// Leitura na porta 2
RFReceiver receiver(2);

void setup() {
  Serial.begin(9600);
  receiver.begin();
}

void loop() {
  char msg[MAX_PACKAGE_SIZE];
  //As 2 variáveis abaixo podem ser usadas para determinar o pacote e o canal
  byte senderId = 0; 
  byte packageId = 0;
  byte len = receiver.recvPackage((byte *)msg, &senderId, &packageId);

  Serial.println("");
  Serial.print("Temperatura: ");
  Serial.print(msg);
  Serial.println(" C");
  
}

Conclusão

Espero ter ajudado o(a)  leitor(a) em seus estudos sobre transmissão wireles RF com Arduino.

Alguns aprimoramentos que podem ser feitos nesse projeto:

  • Utilização de antenas para aumentar o alcance da transmissão
  • Uso de criptografia para dar mais segurança à transmissão

Até a próxima…

O post Transmitindo Dados de Sensores via RF com Arduino apareceu primeiro em BlogDoJoséCintra.



This post first appeared on BlogDoJoséCintra, please read the originial post: here

Share the post

Transmitindo Dados de Sensores via RF com Arduino

×

Subscribe to Blogdojosécintra

Get updates delivered right to your inbox!

Thank you for your subscription

×