categorie: Circuiti a microcontrollore
Numero di visite: 9996
Commenti sull'articolo: 0

Misurazione della temperatura e dell'umidità su Arduino: una selezione di metodi

 

Per creare una stazione meteorologica o un termometro domestico, è necessario imparare come accoppiare la scheda Arduino e un dispositivo per misurare la temperatura e l'umidità. La misurazione della temperatura può essere gestita utilizzando un termistore o un sensore digitale DS18B20, ma per misurare l'umidità utilizzare dispositivi più complessi: i sensori DHT11 o DHT22. In questo articolo, ti mostreremo come misurare la temperatura e l'umidità usando Arduino e questi sensori.

Misurazione della temperatura e dell'umidità su Arduino: una selezione di metodi

Misura del termistore

Il modo più semplice per determinare la temperatura è usare termistore. Questo è un tipo di resistenza la cui resistenza dipende dalla temperatura ambiente. Esistono termistori con un coefficiente di resistenza alla temperatura positivo e negativo - PTC (detti anche posistori) e termistori NTC, rispettivamente.

Nel grafico qui sotto vedi la dipendenza dalla temperatura della resistenza. La linea tratteggiata mostra la dipendenza per un termistore TCS negativo (NTC) e la linea continua per un termistore TCS positivo (PTC).

Dipendenza dalla temperatura della resistenza

Cosa vediamo qui? La prima cosa che attira la tua attenzione è che il programma per il termistore PTC è rotto e sarà difficile o impossibile misurare un numero di valori di temperatura, ma il programma per il termistore NTC è più o meno uniforme, sebbene sia chiaramente non lineare. Cosa significa questo? L'uso di un termistore NTC è più facile da misurare la temperatura, perché è più facile scoprire la funzione con cui cambiano i suoi valori.

Per convertire la temperatura in resistenza, è possibile rimuovere manualmente i valori, ma questo è difficile da fare a casa e è necessario un termometro per determinare i valori effettivi della temperatura del mezzo. Nei fogli dati di alcuni componenti, una tabella di questo tipo viene fornita, ad esempio, per una serie di termistori NTC di Vishay.

Termistori Datashit Vishay TC

Quindi puoi organizzare la traduzione attraverso i rami usando la funzione if ... else o switchcase. Tuttavia, se non ci sono tali tabelle nei fogli dati, è necessario calcolare la funzione con cui la resistenza cambia all'aumentare della temperatura.

Per descrivere questo cambiamento, esiste l'equazione di Steinhart-Hart.

Equazione di Steinhart-hart

dove A, B e C sono le costanti del termistore determinate misurando tre temperature con una differenza di almeno 10 gradi Celsius. Allo stesso tempo, fonti diverse indicano che per un tipico termistore NTC da 10 kΩ sono uguali a:

Costanti del termistore

B - coefficiente beta, viene calcolato in base alla misurazione della resistenza per due diverse temperature. È indicato nel foglio dati (come illustrato di seguito) o calcolato in modo indipendente.

B - coefficiente beta dal foglio dati

In questo caso, B è indicato nel modulo:

rapporto beta

Ciò significa che il coefficiente è stato calcolato sulla base dei dati ottenuti quando si misura la resistenza a temperature di 25 e 100 gradi Celsius, e questa è la variante più comune. Quindi viene calcolato dalla formula:

B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)

Di seguito è mostrato uno schema di collegamento tipico di un termistore a un microcontrollore.

Schema di collegamento del termistore al microcontrollore

Qui R1 è un resistore costante, il termistore è collegato alla fonte di alimentazione e i dati sono presi dal punto medio tra loro, il diagramma indica condizionalmente che il segnale è fornito al pin A0 - questo ingresso analogico Arduino.

Schema di collegamento del termistore al microcontrollore

Per calcolare la resistenza di un termistore, è possibile utilizzare la seguente formula:

R del termistore = R1⋅ ((Vcc / Voutput) −1)

Per tradurre in una lingua comprensibile per Arduino, è necessario ricordare che Arduino ha un ADC a 10 bit, quindi il valore digitale massimo del segnale di ingresso (tensione 5 V) sarà 1023. Quindi, condizionatamente:

  • Dmax = 1023;

  • D è il valore effettivo del segnale.

poi:

R del termistore = R1⋅ ((Dmax / D) −1)

Ora lo usiamo per calcolare la resistenza e quindi calcolare la temperatura del termistore usando l'equazione beta in un linguaggio di programmazione per Arduino. Lo schizzo sarà così:

abbozzo

DS18B20

Ancora più popolare per la misurazione della temperatura con.Arduino ha trovato un sensore digitale DS18B20. Comunica con il microcontrollore tramite l'interfaccia a 1 filo, è possibile collegare più sensori (fino a 127) a un filo e per accedervi è necessario scoprire l'ID di ciascuno dei sensori.

Nota: dovresti conoscere l'ID anche se usi solo 1 sensore.

Sensore digitale DS18B20

Lo schema di collegamento del sensore ds18b20 ad Arduino è simile al seguente:

Schema di collegamento del sensore ds18b20 ad Arduino
Schema di collegamento del sensore ds18b20 ad Arduino

C'è anche una modalità di alimentazione parassita - il suo diagramma di connessione è simile al seguente (sono necessari due fili anziché tre):

Schema di collegamento del sensore Arduino

In questa modalità, il corretto funzionamento non è garantito quando si misurano temperature superiori a 100 gradi Celsius.

Il sensore di temperatura digitale DS18B20 è costituito da un'intera serie di nodi, come qualsiasi altra SIMS. Puoi vedere il suo dispositivo interno di seguito:

Sensore di temperatura digitale DS18B20

Per funzionare con esso, è necessario scaricare la libreria Onewire per Arduino e per il sensore stesso si consiglia di utilizzare la libreria DallasTemperature.

abbozzo

Questo esempio di codice dimostra le basi del lavoro con 1 sensore di temperatura, il risultato in gradi Celsius viene emesso attraverso la porta seriale dopo ogni lettura.


DHT11 e DHT22 - sensori di umidità e temperatura

DHT11 e DHT22 - sensori di umidità e temperatura

Questi sensori sono popolari e spesso utilizzati per misurare l'umidità e la temperatura ambiente. Nella tabella seguente abbiamo indicato le loro principali differenze.

 
DHT11
DHT22
Determinazione dell'umidità nell'intervallo
20-80%
0-100%
Precisione di misura
5%
2-5%
Determinazione della temperatura
Da 0 ° C a + 50 ° C
Da -40 ° C a + 125 ° C
Precisione di misura
2,5%
più o meno 0,5 gradi Celsius
Frequenza di polling
1 volta al secondo
1 volta in 2 secondi
Schema di collegamento del sensore di umidità ad Arduino

Lo schema di collegamento è abbastanza semplice:

  • 1 conclusione - nutrizione;

  • 2 conclusione - dati;

  • 3 conclusione - non utilizzato;

  • 4 conclusione: il filo generale.

Se il tuo sensore è realizzato sotto forma di un modulo, avrà tre uscite, ma non è necessaria alcuna resistenza: è già saldato alla scheda.

Schema di collegamento del sensore di umidità sotto forma di un modulo ad Arduino

Per lavoro, abbiamo bisogno della libreria dht.h, non è nella serie standard, quindi deve essere scaricata e installata nella cartella delle librerie nella cartella con l'IDE arduino. Supporta tutti i sensori di questa famiglia:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Esempio di utilizzo della libreria:

Esempio di utilizzo della libreria

conclusione

Oggi creare la propria stazione per misurare la temperatura e l'umidità è molto semplice grazie alla piattaforma Arduino. Il costo di tali progetti è di 3-4 cento rubli. Per la durata della batteria, e non in uscita su un computer, è possibile utilizzare visualizzazione dei caratteri (li abbiamo descritti in un recente articolo), quindi puoi costruire un dispositivo portatile da usare sia a casa che in macchina. Scrivi nei commenti cos'altro vorresti sapere sui semplici mestieri fatti in casa su Arduino!

Vedi anche su questo argomento:Sensori popolari per Arduino: connessione, diagrammi, schizzi

Vedi anche su bgv.electricianexp.com:

  • Sensori più popolari per Arduino
  • Collegamento di sensori analogici ad Arduino, lettura dei sensori
  • L'uso del ponte di Wheatstone per misurare quantità non elettriche
  • Sensori di temperatura Seconda parte termistori
  • Sensori di umidità: come sono disposti e funzionano

  •