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