Ecco un esempio di codice Arduino per la comunicazione wireless di dati meteo utilizzando due moduli Arduino con trasmettitore e ricevitore RF (ad esempio, moduli RF433 o NRF24L01). In questo esempio, uno dei moduli Arduino raccoglie dati meteo (come la temperatura e l’umidità) da un sensore e li invia all’altro modulo Arduino, che riceve i dati e li visualizza sul monitor seriale.
Assicurati di aver collegato correttamente i moduli RF ai tuoi Arduino prima di eseguire il codice.
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // Collega il modulo NRF24L01 ai pin 9 (CE) e 10 (CSN)
struct DatiMeteo {
float temperatura;
float umidita;
};
DatiMeteo dati;
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(0xF0F0F0E1E2LL); // Indirizzo del canale di trasmissione
radio.setPALevel(RF24_PA_HIGH); // Imposta la potenza di trasmissione al massimo
}
void loop() {
// Simula la raccolta dei dati meteo (da sostituire con il tuo sensore)
dati.temperatura = 25.5;
dati.umidita = 55.0;
// Invia i dati
radio.write(&dati, sizeof(DatiMeteo));
Serial.println("Dati inviati: ");
Serial.print("Temperatura: ");
Serial.println(dati.temperatura);
Serial.print("Umidità: ");
Serial.println(dati.umidita);
delay(5000); // Attendi 5 secondi prima di inviare nuovamente i dati
}
Ora, dovresti caricare questo codice sull’Arduino che raccoglie i dati meteo e collegarlo al modulo NRF24L01 o RF433 configurato come trasmettitore.
Qui di seguito, puoi trovare il codice per l’Arduino che riceve i dati e li visualizza sul monitor seriale:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // Collega il modulo NRF24L01 ai pin 9 (CE) e 10 (CSN)
struct DatiMeteo {
float temperatura;
float umidita;
};
DatiMeteo dati;
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, 0xF0F0F0E1E2LL); // Imposta l'indirizzo del canale di ricezione
radio.startListening();
}
void loop() {
if (radio.available()) {
radio.read(&dati, sizeof(DatiMeteo));
Serial.println("Dati ricevuti: ");
Serial.print("Temperatura: ");
Serial.println(dati.temperatura);
Serial.print("Umidità: ");
Serial.println(dati.umidita);
}
}
Carica questo codice sull’Arduino che riceve i dati meteo e collega il modulo NRF24L01 o RF433 configurato come ricevitore.
Ora, quando avvii entrambi gli Arduino, il sensore invierà i dati meteo al ricevitore wireless, che li visualizzerà sul monitor seriale. Assicurati che entrambi i moduli NRF24L01 o RF433 siano configurati con gli stessi indirizzi del canale di trasmissione e ricezione per far funzionare correttamente la comunicazione wireless.