Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto Esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue abilità.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.
Sconti Esclusivi: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a promozioni e concorsi durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
5. Monitoraggio dell’ambiente domestico¶
In questo capitolo utilizzeremo Blynk per creare un monitor per l’ambiente domestico. Puoi misurare la temperatura, l’umidità e l’intensità della luce di una stanza utilizzando il DHT11 e la fotoresistenza. Inviando questi valori a Blynk, sarai in grado di conoscere le condizioni ambientali della tua casa tramite internet.
Componenti necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente comodo acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
Kit 3 in 1 Starter |
380+ |
Puoi anche acquistarli separatamente dai link seguenti.
INTRODUZIONE AI COMPONENTI |
LINK DI ACQUISTO |
|---|---|
- |
1. Costruisci il Circuito
Nota
Il modulo ESP8266 richiede un’elevata corrente per garantire un ambiente di funzionamento stabile, quindi assicurati che la batteria da 9V sia collegata.
2. Modifica il Dashboard
Per registrare i valori di umidità, crea un Datastream di tipo Virtual Pin nella pagina Datastream. Imposta il TIPO DI DATO su Double e MIN e MAX su 0 e 100. Imposta anche le unità su Percentuale, %.
Successivamente, crea un Datastream di tipo Virtual Pin per registrare la temperatura. Imposta il TIPO DI DATO su
Double, MIN e MAX su-30e50, e le unità su Celsius, °C.
Crea anche un Datastream di tipo Virtual Pin per registrare l’intensità della luce. Utilizza il tipo di dato predefinito - Integer, con MIN e MAX impostati su
0e1024.
Vai alla pagina Wed Dashboard, trascina due widget Label e imposta i loro flussi di dati rispettivamente su V4 e V5, e trascina un widget Gauge impostando il flusso di dati su V6. Nelle impostazioni del widget, puoi anche abilitare Cambia colore in base al valore e selezionare i colori appropriati per rendere il widget più intuitivo e gradevole alla vista.
3. Esegui il Codice
Apri il file
5.home_environment_monitoring.inonel percorso3in1-kit\iot_project\5.home_environment_monitoring, o copia questo codice in Arduino IDE.Nota
Qui viene utilizzata la libreria
DHT sensor, che puoi installare dal Library Manager.
Sostituisci il
Template ID,Device Name, eAuth Tokencon i tuoi. Devi anche inserire ilsside lapassworddel WiFi che stai utilizzando. Per tutorial dettagliati, fai riferimento a 1.3 Collegare la scheda R3 a Blynk.Dopo aver selezionato la scheda e la porta corrette, clicca sul pulsante Upload.
Apri il Monitor seriale (imposta il baudrate su 115200) e attendi che appaia un messaggio che confermi la connessione avvenuta con successo.
Nota
Se appare il messaggio
ESP is not respondingquando ti connetti, segui questi passaggi.Assicurati che la batteria da 9V sia collegata.
Resetta il modulo ESP8266 collegando il pin RST a GND per 1 secondo, quindi scollegalo.
Premi il pulsante di reset sulla scheda R3.
A volte potrebbe essere necessario ripetere l’operazione sopra 3-5 volte, sii paziente.
Ora vedrai la temperatura, l’umidità e l’intensità della luce dell’ambiente su Blynk.
Se desideri utilizzare Blynk sui dispositivi mobili, fai riferimento a Come usare Blynk su dispositivi mobili?.
Come funziona?
Queste due funzioni vengono utilizzate per ottenere la temperatura, l’umidità e l’intensità della luce della stanza.
int readLight(){
return analogRead(lightPin);
}
bool readDHT() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
humidity = dht.readHumidity();
// Read temperature as Celsius (the default)
temperature = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return false;
}
return true;
}
Con il Timer di Blynk, la temperatura, l’umidità e l’intensità della luce dell’ambiente vengono ottenute ogni secondo e inviate al flusso di dati sul Cloud di Blynk, da cui i widget visualizzano i dati.
void myTimerEvent()
{
bool chk = readDHT();
int light = readLight();
if(chk){
Blynk.virtualWrite(V4,humidity);
Blynk.virtualWrite(V5,temperature);
}
Blynk.virtualWrite(V6,light);
}