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

Comunicación Inalámbrica con Arduino y Módulo RF

La comunicación inalámbrica es una tecnología crucial en el mundo moderno, permitiendo la transmisión de datos sin necesidad de cables. En el contexto de Arduino, la comunicación inalámbrica abre un abanico de posibilidades para proyectos de automatización, robótica y dispositivos IoT (Internet de las Cosas). Este artículo se centrará en la implementación de comunicación inalámbrica utilizando módulos RF (Radio Frecuencia) con Arduino, mostrando cómo enviar y recibir datos de manera eficiente.

Project: En este proyecto, crearemos un sistema básico de comunicación inalámbrica entre dos placas Arduino utilizando módulos RF 433 MHz. El objetivo es enviar datos de un sensor de temperatura desde un Arduino emisor a otro Arduino receptor, donde se mostrará la temperatura en un display LCD. Este proyecto es ideal para aplicaciones de monitoreo remoto.

Components List:

  • 2 x Placas Arduino Uno
  • 1 x Módulo RF 433 MHz Transmisor
  • 1 x Módulo RF 433 MHz Receptor
  • 1 x Sensor de Temperatura (DHT11)
  • 1 x Display LCD 16x2
  • 1 x Potenciómetro (para ajustar el contraste del LCD)
  • 1 x Protoboard
  • Cables de conexión

Examples:

Código para el Arduino Emisor

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

#define DHTPIN 2     // Pin donde está conectado el sensor DHT11
#define DHTTYPE DHT11   // Tipo de sensor DHT
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  vw_setup(2000);       // Velocidad de datos en bits por segundo
  vw_set_tx_pin(12);    // Pin de transmisión
  dht.begin();
}

void loop() {
  float temp = dht.readTemperature(); // Lee la temperatura
  if (isnan(temp)) {
    Serial.println("Error al leer el sensor DHT11");
    return;
  }

  char msg[7];
  dtostrf(temp, 6, 2, msg); // Convierte el valor de temperatura a string
  vw_send((uint8_t *)msg, strlen(msg));
  vw_wait_tx(); // Espera a que se complete la transmisión
  delay(1000);  // Espera 1 segundo antes de la siguiente lectura
}

Código para el Arduino Receptor

#include <VirtualWire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup() {
  Serial.begin(9600);
  vw_setup(2000);       // Velocidad de datos en bits por segundo
  vw_set_rx_pin(11);    // Pin de recepción
  vw_rx_start();        // Inicia el receptor
  lcd.begin(16, 2);     // Inicializa el display LCD
  lcd.print("Temp: ");
}

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

  if (vw_get_message(buf, &buflen)) { // Si se recibe un mensaje
    buf[buflen] = '\0'; // Asegura que el buffer termine en NULL
    float temp = atof((char *)buf); // Convierte el mensaje a float
    lcd.setCursor(6, 0);
    lcd.print(temp);
    lcd.print(" C");
  }
}

En estos ejemplos, el Arduino emisor lee la temperatura del sensor DHT11 y la envía a través del módulo RF. El Arduino receptor recibe estos datos y los muestra en un display LCD. Asegúrate de conectar correctamente los pines según las especificaciones de los módulos y componentes utilizados.

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.