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.

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).

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.

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.

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:


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.

In questo caso, B è indicato nel modulo:

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.

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.

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ì:

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.

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


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

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:

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

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

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

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.

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:

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 electro-it.tomathouse.com
: