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

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.

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.

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:


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.

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

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.

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.

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

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.

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


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

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

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

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

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.

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.

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:

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
: