Categories: Circuits de microcontroladors
Nombre de visualitzacions: 9996
Comentaris sobre l'article: 0

Mesura de temperatura i humitat a Arduino: una selecció de maneres

 

Per crear una estació meteorològica o un termòmetre domèstic, heu d’aprendre a sincronitzar la placa Arduino i un dispositiu de mesura de temperatura i humitat. El mesurament de la temperatura es pot fer servir mitjançant un termistor o un sensor digital DS18B20, però per mesurar la humitat utilitzeu dispositius més complexos: sensors DHT11 o DHT22. En aquest article, us mostrarem com es mesura la temperatura i la humitat mitjançant l'Arduino i aquests sensors.

Mesura de temperatura i humitat a Arduino: una selecció de maneres

Mesura del termistor

La manera més fàcil de determinar la temperatura és fer servir termistor. Aquest és un tipus de resistència la resistència de la qual depèn de la temperatura ambient. Hi ha termistors amb un coeficient de resistència de resistència positiu i negatiu: PTC (també anomenats posistors) i termistors NTC, respectivament.

Al gràfic següent es mostra la dependència de la resistència de temperatura. La línia guionada mostra la dependència d’un termistor TCS negatiu (NTC) i la línia sòlida d’un termistor TCS positiu (PTC).

Dependència de la resistència a la temperatura

Què veiem aquí? El primer que crida l’atenció és que el calendari del termistor PTC es trenca i serà difícil o impossible mesurar diversos valors de temperatura, però el calendari del termistor NTC és més o menys uniforme, tot i que clarament no lineal. Què vol dir això? Mitjançant un termistor NTC és més fàcil mesurar la temperatura, perquè és més fàcil esbrinar la funció amb què canvien els seus valors.

Per convertir la temperatura en resistència, podeu prendre manualment els valors, però això és difícil de fer a casa i necessiteu un termòmetre per determinar els valors reals de la temperatura del medi. En els fulls de dades d'alguns components, aquesta taula es mostra, per exemple, per a una sèrie de termistors NTC de Vishay.

Datashit Vishay TC Termistors

Aleshores, podeu organitzar la traducció a través de les branques mitjançant la funció if ... else o switchcase. Tanmateix, si no hi ha aquestes taules als fulls de dades, heu de calcular la funció mitjançant la qual canvia la resistència amb l’augment de la temperatura.

Per descriure aquest canvi, existeix l’equació Steinhart-Hart.

Equació de Steinhart-hart

on A, B i C són les constants de termistor determinades mitjançant la mesura de tres temperatures amb una diferència d'almenys 10 graus centígrads. Al mateix temps, diferents fonts indiquen que per a un termistor NTC típic de 10 kΩ són iguals:

Constants de termistor

Coeficient B: es calcula a partir de la mesura de la resistència de dues temperatures diferents. S'indica en el full de dades (com es mostra a continuació) o calculat de forma independent.

B - coeficient beta del full de dades

En aquest cas, B s’indica en el formulari:

proporció beta

Això significa que el coeficient es va calcular a partir de les dades obtingudes quan es mesura la resistència a temperatures de 25 i 100 graus centígrads, i aquesta és l’opció més habitual. Llavors es calcula mitjançant la fórmula:

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

A continuació es mostra un esquema de connexió típic d'un termistor a un microcontrolador.

Esquema de connexió del termistor al microcontrolador

Aquí R1 és una resistència constant, el termistor està connectat a la font d’energia i les dades es prenen des del punt mig entre ells, el diagrama indica que el senyal es subministra al pin A0 - això entrada analògica Arduino.

Esquema de connexió del termistor al microcontrolador

Per calcular la resistència d’un termistor, podeu utilitzar la fórmula següent:

R de termistor = R1⋅ ((Vcc / Voutput) −1)

Per traduir a un idioma que sigui comprensible per a arduino, heu de recordar que l’arduino té un ADC de 10 bits, de manera que el valor digital màxim del senyal d’entrada (tensió 5V) serà de 1023. Aleshores, condicionalment:

  • Dmax = 1023;

  • D és el valor real del senyal.

Després:

R de termistor = R1⋅ ((Dmax / D) 1)

Ara ho fem servir per calcular la resistència i després calcular la temperatura del termistor mitjançant l’equació beta en un llenguatge de programació per a Arduino. L’esbós serà així:

Esbós

DS18B20

Encara és més popular per mesurar la temperatura amb.Arduino va trobar un sensor digital DS18B20. Es comunica amb el microcontrolador a través de la interfície d’un fil, podeu connectar diversos sensors (fins a 127) a un fil, i per accedir-hi, haureu d’esbrinar l’ID de cadascun dels sensors.

Nota: heu de conèixer l'identificador, encara que només utilitzeu un sensor.

Sensor digital DS18B20

El diagrama de connexió del sensor ds18b20 a Arduino sembla:

Esquema de connexió del sensor ds18b20 a Arduino
Esquema de connexió del sensor ds18b20 a Arduino

També hi ha un mode d'alimentació paràsit: el seu esquema de connexió és així (necessiteu dos cables en lloc de tres):

Esquema de connexió del sensor Arduino

En aquest mode, no es garanteix un funcionament correcte quan es mesuren temperatures superiors als 100 graus centígrads.

El sensor de temperatura digital DS18B20 consta d'un conjunt de nodes, com qualsevol altra SIMS. Podeu veure el seu dispositiu intern a continuació:

Sensor de temperatura digital DS18B20

Per treballar-hi, cal descarregar la biblioteca Onewire per a Arduino, i per al sensor en si es recomana utilitzar la biblioteca DallasTemperature.

Esbós

Aquest exemple de codi demostra els conceptes bàsics per treballar amb un sensor de temperatura, el resultat en graus centígrads es produeix a través del port sèrie després de cada lectura.


DHT11 i DHT22: sensors d’humitat i temperatura

DHT11 i DHT22: sensors d’humitat i temperatura

Aquests sensors són populars i s’utilitzen sovint per mesurar la humitat i la temperatura ambient. A la taula següent indiquem les seves principals diferències.

 
DHT11
DHT22
Determinació d’humitat en l’interval
20-80%
0-100%
Precisió de la mesura
5%
2-5%
Determinació de la temperatura
De 0 ° C a + 50 ° C
De -40 ° C a + 125 ° C
Precisió de la mesura
2,5%
més o menys 0,5 graus centígrads
Freqüència de sondeig
1 vegada per segon
1 vegada en 2 segons
Esquema de connexió del sensor d’humitat a arduino

El diagrama de connexió és bastant simple:

  • 1 conclusió: nutrició;

  • 2 conclusió: dades;

  • 3 conclusió: no s'utilitza;

  • 4 conclusió: el filferro general.

Si teniu un sensor en forma de mòdul, tindrà tres sortides, però no necessiteu resistència, ja està soldada a la placa.

Esquema de connexió del sensor d’humitat en forma de mòdul a arduino

Per treballar, necessitem la biblioteca dht.h, no es troba en el conjunt estàndard, per la qual cosa cal descarregar-lo i instal·lar-lo a la carpeta de biblioteques de la carpeta amb l'arduo IDE. Admet tots els sensors d'aquesta família:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Exemple d’ús de la biblioteca:

Exemple d’ús de la biblioteca

Conclusió

Avui en dia, crear la vostra pròpia estació per mesurar la temperatura i la humitat és molt senzill gràcies a la plataforma Arduino. El cost d'aquests projectes és de tres-cents rubles. Per a la vida de la bateria, i no la sortida a un ordinador, es pot utilitzar visualització de personatges (els vam descriure en un article recent), llavors podeu crear un dispositiu portàtil per utilitzar-lo tant a casa com al cotxe. Escriu als comentaris què més t’agradaria aprendre sobre artesanies senzilles casolanes a arduino!

Vegeu també aquest tema:Sensors populars per a Arduino: connexió, esquemes, esbossos

Consulteu també a electro-ca.tomathouse.com:

  • Sensors més populars per a Arduino
  • Connexió de sensors analògics a Arduino, sensors de lectura
  • L'ús del pont de Wheatstone per a la mesura de quantitats no elèctriques
  • Sensors de temperatura. Segona part Termistors
  • Sensors d’humitat: com s’ordenen i funcionen

  •