Facciamo lavorare Arduino
Arduino R4 WiFi + DHT11 + ThingSpeak
Lo sketch (programma Arduino) che è stato sviluppato permette di leggere i valori di temperatura e umidità da un sensore DHT11 collegato a un Arduino UNO R4 WiFi ed inviarli ad un canale ThingSpeak per la visualizzazione grafica del servizio cloud.
![]() |
| Il sensore DHT11 |
Per consultare l'ultima versione del codice basta puntare al repository GitHub pubblico https://github.com/andreadeldottore2009/GiornataScienzaGalfer2026 e analizzare lo sketch ThingspeakR4.ino
Hardware richiesto
Microcontrollore: Arduino UNO R4 WiFi (identificato dalla libreria
WiFiS3.h).Sensore: DHT11 (Temperatura e Umidità).
Collegamenti:
Segnale (Data): Pin Digitale 2.
VCC: 3.3V o 5V (a seconda del modulo).
GND: GND
Librerie necessarie
Per compilare questo codice è necessario installare le seguenti librerie tramite il Library Manager dell'IDE Arduino:
WiFiS3: per il modulo WIFI, già preinstallata per Arduino R4 WiFi.
ThingSpeak: libreria sviluppata da MathWorks.
DHT11: Libreria specifica per il sensore DHT11.
Configurazione delle credenziali (arduino_secrets.h)
Il codice utilizza un file separato, chiamato arduino_secrets.h, per proteggere le credenziali di accesso alla rete WiFi e al servizio cloud ThigSpeak.
Il file deve risiedere nella cartella del progetto e contenere le seguenti definizioni:
// Esempio di contenuto per arduino_secrets.h
#define SECRET_SSID "NomeWiFi" // Nome della rete WiFi
#define SECRET_PASS "PasswordWiFi" // Password della rete WiFi
#define SECRET_CH_ID 66070443 // Channel ID di ThingSpeak
#define SECRET_WRITE_API_KEY "KxQ5689Wd" // Write API Key di ThingSpeak
Funzionamento del codice
Il codice è strutturato in tre blocchi logici principali: Setup, Loop e Gestione Sensore.
1. Inizializzazione (setup)
- Avvia la comunicazione seriale a 9600 baud per il debug.
- Inizializza il client ThingSpeak.
- Si connette alla rete WiFi specificata nelle credenziali.
2. Ciclo Principale (loop)
Il loop esegue queste operazioni ogni 15 secondi (per rispettare il limite della licenza gratuita di ThingSpeak):
- Controllo WiFi: Se la connessione cade, tenta la riconnessione automatica.Lettura Dati: Chiama la funzione personalizzata leggiDatiDHT. Se la lettura ha successo (true), procede.
- Preparazione Dati:
- Campo 1: Temperatura (t).
- Campo 2: Umidità (h).
- Invio al Cloud: Invia i dati a ThingSpeak. Se il codice di risposta è 200, l'invio è riuscito.
3. Lettura del Sensore (leggiDatiDHT)
Questa funzione controlla il funzionamento del sensore DHT11 ed evita errori di lettura:
- Legge la temperatura.
- Pausa di stabilità: Attende 1000 ms (1 secondo) tra la lettura della temperatura e quella dell'umidità. Questo passaggio è cruciale per la stabilità del sensore DHT11.
- Legge il valore dell'umidità.
- Controllo Errori: Verifica se il sensore restituisce errori di Checksum o Timeout. Se ci sono errori, li stampa sul monitor seriale e interrompe l'invio.
- Debug: Se la lettura è corretta, stampa i valori su Serial Monitor.
Risoluzione problemi
Errore HTTP != 200
Errore API o Connessione, controllare la API Key e che il canale non sia bloccato. Verificare il ritardo di 15s.
Errore sensore E-DTH
Controllare i cavi e i collegamenti: il pin dati utilizzato è il 2.
Provare a sostituire il sensore o i cavetti jumper.
Mancata connessione WiFi
Credenziali errate: verificare SECRET_SSID e SECRET_PASS.
Problema di frequenza della rete: Arduino R4 supporta connessioni sulla banda 2.4GHz.
Flowchart


Commenti
Posta un commento