Nota
Ciao, benvenuti nella Comunità degli Appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci la tua conoscenza di Raspberry Pi, Arduino e ESP32 con altri appassionati.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Regali: Partecipa a regali e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [qui] e unisciti oggi!
Lezione 48: Monitoraggio Meteo con ThingSpeak
Questo progetto raccoglie dati di temperatura e pressione utilizzando un Sensore di Pressione Atmosferica. I dati raccolti vengono poi trasmessi alla piattaforma cloud ThingSpeak tramite un modulo ESP8266 e una rete Wi-Fi a intervalli regolari.
Componenti Necessari
Per questo progetto, abbiamo bisogno dei seguenti componenti.
È decisamente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
---|---|---|
Universal Maker Sensor Kit |
94 |
Puoi anche acquistarli separatamente dai link sottostanti.
Introduzione ai Componenti |
Link di Acquisto |
---|---|
Arduino UNO R3 o R4 |
|
- |
|
- |
Cablaggio

Configurazione di ThingSpeak
ThingSpeak ™ è un servizio di piattaforma analitica IoT che ti permette di aggregare, visualizzare e analizzare flussi di dati in tempo reale nel cloud. ThingSpeak fornisce visualizzazioni istantanee dei dati inviati dai tuoi dispositivi a ThingSpeak. Con la possibilità di eseguire codice MATLAB® in ThingSpeak, puoi eseguire analisi e elaborazioni dei dati in tempo reale. ThingSpeak è spesso utilizzato per prototipi e sistemi IoT di prova del concetto che richiedono analisi.

1) Creazione dell’account ThingSpeak
La prima cosa da fare è creare un account su ThingSpeak. Dalla collaborazione con MATLAB, puoi utilizzare le tue credenziali MathWorks per accedere a ThingSpeak .
Se non ne possiedi uno, devi creare un account con MathWorks e accedere all’applicazione ThingSpeak.

2) Creazione del canale
Dopo aver effettuato l’accesso, crea un nuovo canale per archiviare i dati andando su «Canali» > «I Miei Canali» e cliccando su «Nuovo Canale».

Per questo progetto, dobbiamo creare un canale chiamato «Weather Monitor» con due campi: Campo 1 per «Temperatura» e Campo 2 per «Pressione Atmosferica».

Codice
Apri il file
Lesson_48_Iot_Weather_Monitor.ino
nel percorsouniversal-maker-sensor-kit\arduino_uno\Lesson_48_Iot_Weather_Monitor
, o copia questo codice nell”Arduino IDE.Nota
Per installare la libreria, utilizza il Gestore Librerie di Arduino e cerca «Adafruit BMP280» e installala.
Devi inserire il
mySSID
e ilmyPWD
del WiFi che stai utilizzando.String mySSID = "your_ssid"; // SSID WiFi String myPWD = "your_password"; // Password WiFi
Devi anche modificare il
myAPI
con la tua chiave API del canale ThingSpeak.String myAPI = "xxxxxxxxxxxx"; // Chiave API
Qui puoi trovare la tua unica CHIAVE API che devi mantenere privata.
Dopo aver selezionato la scheda corretta e la porta, clicca sul pulsante Upload.
Apri il monitor seriale (imposta il baudrate a 9600) e attendi un prompt come una connessione riuscita che appaia.
Analisi del Codice
Inizializzazione e configurazione del Bluetooth
// Impostazione della comunicazione con il modulo Bluetooth #include <SoftwareSerial.h> const int bluetoothTx = 3; const int bluetoothRx = 4; SoftwareSerial bleSerial(bluetoothTx, bluetoothRx);
Iniziamo includendo la libreria SoftwareSerial, utile per la comunicazione Bluetooth. I pin TX e RX del modulo Bluetooth sono quindi definiti e associati ai pin 3 e 4 sull’Arduino. Infine, inizializziamo l’oggetto
bleSerial
per la comunicazione Bluetooth.Definizioni dei pin dei LED
// Numeri dei pin per ciascun LED const int rledPin = 10; //rosso const int yledPin = 11; //giallo const int gledPin = 12; //verde
Qui, definiamo a quali pin dell’Arduino sono connessi i nostri LED. Il LED rosso è sul pin 10, il giallo sul 11 e il verde sul 12.
Funzione setup()
void setup() { pinMode(rledPin, OUTPUT); pinMode(yledPin, OUTPUT); pinMode(gledPin, OUTPUT); Serial.begin(9600); bleSerial.begin(9600); }
Nella funzione
setup()
, impostiamo i pin dei LED comeOUTPUT
. Avviamo anche la comunicazione seriale sia per il modulo Bluetooth che per la seriale di default (collegata al computer) con un baud rate di 9600.Ciclo principale loop() per la comunicazione Bluetooth
void loop() { while (bleSerial.available() > 0) { character = bleSerial.read(); Serial.println(character); if (character == 'R') { toggleLights(rledPin); } else if (character == 'Y') { toggleLights(yledPin); } else if (character == 'G') { toggleLights(gledPin); } } }
All’interno del nostro
loop()
principale, controlliamo continuamente se sono disponibili dati dal modulo Bluetooth. Se riceviamo dati, leggiamo il carattere e lo visualizziamo nel monitor seriale. A seconda del carattere ricevuto (R, Y, o G), attiviamo il rispettivo LED usando la funzionetoggleLights()
.Funzione Toggle Lights
void toggleLights(int targetLight) { digitalWrite(rledPin, LOW); digitalWrite(yledPin, LOW); digitalWrite(gledPin, LOW); digitalWrite(targetLight, HIGH); }
Questa funzione,
toggleLights()
, spegne prima tutti i LED. Dopo aver verificato che siano tutti spenti, accende il LED target specificato. Questo garantisce che solo un LED sia acceso alla volta.