Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
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:
Exemplos:
#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
}
#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);
}
}
#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
}
#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);
}
}