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 Usando Arduino e Módulo NRF24L01

No mundo da Internet das Coisas (IoT), a comunicação eficiente entre sensores é crucial para a coleta de dados em tempo real e a automação de processos. Uma rede de sensores permite que múltiplos dispositivos se comuniquem entre si, compartilhando informações e respondendo a eventos de forma coordenada. Este artigo foca na implementação de uma rede de sensores utilizando o microcontrolador Arduino e o módulo de comunicação sem fio NRF24L01. A importância deste projeto reside na sua aplicabilidade em diversas áreas, como automação residencial, monitoramento ambiental e sistemas de segurança.

Projeto: O projeto consiste em criar uma rede de sensores onde múltiplos sensores de temperatura (DHT11) enviam dados para uma unidade central que exibe as informações em um display LCD. O objetivo é demonstrar como configurar e programar uma rede de sensores usando o módulo NRF24L01 para comunicação sem fio. A unidade central (Arduino receptor) receberá os dados de temperatura de diferentes sensores (Arduino transmissores) e exibirá os valores em um display LCD.

Lista de componentes:

  • 3x Arduino Uno (ou qualquer outro modelo compatível)
  • 3x Módulo NRF24L01
  • 2x Sensor de Temperatura e Umidade DHT11
  • 1x Display LCD 16x2 com módulo I2C
  • 1x Protoboard
  • Cabos jumper

Exemplos:

Código para o Arduino Transmissor (Sensor de Temperatura)

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT.h>

#define DHTPIN 2 // Pin connected to the data pin of DHT11
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

RF24 radio(9, 10); // CE, CSN pins
const byte address[6] = "00001";

void setup() {
  Serial.begin(9600);
  dht.begin();
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
}

void loop() {
  float temperature = dht.readTemperature();
  if (isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  radio.write(&temperature, sizeof(temperature));
  delay(2000);
}

Código para o Arduino Receptor (Unidade Central)

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

RF24 radio(9, 10); // CE, CSN pins
const byte address[6] = "00001";
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  lcd.begin();
  lcd.backlight();
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}

void loop() {
  if (radio.available()) {
    float temperature;
    radio.read(&temperature, sizeof(temperature));
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Temp: ");
    lcd.print(temperature);
    lcd.print(" C");
  }
}

Explicação do Código

  1. Transmissor:

    • #include <SPI.h>, #include <nRF24L01.h>, #include <RF24.h>: Bibliotecas necessárias para a comunicação NRF24L01.
    • #include <DHT.h>: Biblioteca para o sensor DHT11.
    • DHT dht(DHTPIN, DHTTYPE);: Inicializa o sensor DHT11.
    • radio.begin(), radio.openWritingPipe(address): Configura o módulo NRF24L01.
    • radio.write(&temperature, sizeof(temperature)): Envia a temperatura lida.
  2. Receptor:

    • #include <Wire.h>, #include <LiquidCrystal_I2C.h>: Bibliotecas para o display LCD com I2C.
    • LiquidCrystal_I2C lcd(0x27, 16, 2);: Inicializa o display LCD.
    • radio.openReadingPipe(0, address): Configura o módulo NRF24L01 para receber dados.
    • radio.read(&temperature, sizeof(temperature)): Lê a temperatura enviada pelo transmissor e exibe no LCD.

Este projeto demonstra a criação de uma rede de sensores simples e eficaz utilizando Arduino e o módulo NRF24L01, aplicável em diversos cenários de IoT.

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.