Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Transferência de Dados Wireless com Arduino

A transferência de dados sem fio é uma área crucial da eletrônica moderna, permitindo a comunicação entre dispositivos sem a necessidade de cabos físicos. No contexto do Arduino, isso se torna especialmente relevante para projetos que requerem mobilidade, flexibilidade e a capacidade de comunicação remota. Este artigo abordará a implementação de um sistema de transferência de dados wireless usando módulos RF e Bluetooth, destacando a importância dessa tecnologia e como ela pode ser aplicada em projetos práticos.

Projeto: O projeto consiste em criar um sistema de transferência de dados sem fio entre dois dispositivos Arduino. Um Arduino atuará como transmissor e o outro como receptor. O objetivo é enviar dados de sensores (como temperatura e umidade) do transmissor para o receptor, que exibirá esses dados em um display LCD. Esse tipo de projeto pode ser utilizado em diversas aplicações, como monitoramento remoto de ambientes, automação residencial e sistemas de alerta.

Lista de componentes:

  • 2 x Arduino Uno
  • 1 x Módulo RF 433 MHz Transmissor e Receptor (ou módulos Bluetooth HC-05)
  • 1 x Sensor de Temperatura e Umidade DHT11
  • 1 x Display LCD 16x2 com módulo I2C
  • Jumpers e Protoboard

Exemplos:

Código do Transmissor (Arduino com Módulo RF 433 MHz)

#include <VirtualWire.h>
#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  vw_setup(2000);  // Bits per second
  vw_set_tx_pin(12); // Pino de transmissão
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Falha ao ler do sensor DHT!");
    return;
  }

  char msg[20];
  sprintf(msg, "T:%.2f H:%.2f", t, h);
  vw_send((uint8_t *)msg, strlen(msg));
  vw_wait_tx(); // Aguarda a conclusão da transmissão

  delay(2000); // Aguarda 2 segundos antes de enviar novamente
}

Código do Receptor (Arduino com Módulo RF 433 MHz)

#include <VirtualWire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  vw_setup(2000);  // Bits per second
  vw_set_rx_pin(11); // Pino de recepção
  vw_rx_start(); // Inicia o receptor
  lcd.begin();
  lcd.backlight();
}

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

  if (vw_get_message(buf, &buflen)) { // Verifica se há mensagem recebida
    String message = "";
    for (int i = 0; i < buflen; i++) {
      message += (char)buf[i];
    }
    Serial.println(message);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(message);
  }
}

Código do Transmissor (Arduino com Módulo Bluetooth HC-05)

#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

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

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Falha ao ler do sensor DHT!");
    return;
  }

  char msg[20];
  sprintf(msg, "T:%.2f H:%.2f", t, h);
  Serial.println(msg); // Envia os dados via Serial para o módulo Bluetooth

  delay(2000); // Aguarda 2 segundos antes de enviar novamente
}

Código do Receptor (Arduino com Módulo Bluetooth HC-05)

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  lcd.begin();
  lcd.backlight();
}

void loop() {
  if (Serial.available() > 0) {
    String message = Serial.readStringUntil('\n');
    Serial.println(message);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(message);
  }
}

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.