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

Rede de Sensores com Arduino

A rede de sensores é uma tecnologia essencial em diversas aplicações modernas, desde automação residencial até monitoramento ambiental. Com a popularização do Arduino, tornou-se mais acessível criar e implementar redes de sensores de maneira eficiente e econômica. Este artigo abordará a criação de uma rede de sensores utilizando o Arduino, demonstrando sua importância e aplicabilidade em projetos reais.

Project: Neste projeto, criaremos uma rede de sensores para monitorar a temperatura e a umidade de diferentes ambientes. Usaremos módulos de comunicação sem fio para permitir a troca de informações entre os sensores e um ponto central de coleta de dados. O objetivo é construir um sistema escalável e eficiente que possa ser utilizado em diversas aplicações, como monitoramento de estufas, controle de ambientes internos e muito mais.

Components List:

  • 3x Arduino Uno
  • 3x Módulo Sensor de Temperatura e Umidade DHT11
  • 3x Módulo de Comunicação RF 433MHz (Transmissor e Receptor)
  • 1x Protoboard
  • 1x Conjunto de Jumpers
  • 1x Fonte de Alimentação 5V

Examples:

Código para o Sensor Node (Transmissor)

#include <dht.h>
#include <VirtualWire.h>

#define DHTPIN 2  // Pino onde o DHT11 está conectado
#define DHTTYPE DHT11

dht DHT;
const int transmit_pin = 12;

void setup() {
  Serial.begin(9600);
  vw_set_tx_pin(transmit_pin);
  vw_setup(2000);  // Configura a velocidade de transmissão em bps
}

void loop() {
  int chk = DHT.read11(DHTPIN);
  float temperature = DHT.temperature;
  float humidity = DHT.humidity;

  char msg[20];
  sprintf(msg, "T:%.2f H:%.2f", temperature, humidity);
  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 para o Central Node (Receptor)

#include <VirtualWire.h>

const int receive_pin = 11;

void setup() {
  Serial.begin(9600);
  vw_set_rx_pin(receive_pin);
  vw_setup(2000);  // Configura a velocidade de recepção em bps
  vw_rx_start();   // Inicia o receptor
}

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

  if (vw_get_message(buf, &buflen)) {
    // Mensagem recebida com sucesso
    Serial.print("Mensagem recebida: ");
    for (int i = 0; i < buflen; i++) {
      Serial.print((char)buf[i]);
    }
    Serial.println();
  }
}

Comentários sobre o código:

  • No código do Sensor Node, utilizamos a biblioteca dht para ler os valores de temperatura e umidade do sensor DHT11. Esses valores são formatados em uma string e enviados via RF utilizando a biblioteca VirtualWire.
  • No código do Central Node, configuramos o receptor RF para receber as mensagens enviadas pelos Sensor Nodes. Quando uma mensagem é recebida, ela é exibida no monitor serial.

Desafios comuns:

  • Interferência na comunicação RF: A comunicação RF pode ser suscetível a interferências. Certifique-se de que os módulos RF estejam a uma distância adequada e longe de fontes de interferência eletromagnética.
  • Alimentação inadequada: Verifique se todos os componentes estão recebendo a tensão correta, especialmente os módulos RF, que podem precisar de uma fonte de alimentação estável para funcionar corretamente.

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.