luokat: Mikrokontrolleripiirit
Katselukuvien lukumäärä: 9996
Kommentit artikkeliin: 0

Lämpötilan ja kosteuden mittaaminen Arduinolla - valikoima tapoja

 

Koti-sääaseman tai lämpömittarin luomiseksi sinun on opittava yhdistämään Arduino-kortti ja laite lämpötilan ja kosteuden mittaamiseksi. Lämpötilan mittaus voidaan hoitaa käyttämällä termistoria tai digitaalista anturia DS18B20, mutta kosteuden mittaamiseksi käytä monimutkaisempia laitteita - antureita DHT11 tai DHT22. Tässä artikkelissa näytämme sinulle kuinka mitata lämpötila ja kosteus Arduinon ja näiden antureiden avulla.

Lämpötilan ja kosteuden mittaaminen Arduinolla - valikoima tapoja

Termistorin mittaus

Helpoin tapa määrittää lämpötila on käyttää termistori. Tämä on tyyppi vastus, jonka vastus riippuu ympäristön lämpötilasta. On termistoreita, joiden lämpötilakestokerroin on positiivinen ja negatiivinen - vastaavasti PTC (jota kutsutaan myös posistereiksi) ja NTC-termistoria.

Alla olevassa kaaviossa näet vastuksen lämpötilariippuvuuden. Katkoviiva osoittaa riippuvuuden negatiivisesta TCS-termistorista (NTC) ja kiinteä viiva positiivisesta TCS-termistorista (PTC).

Vastuksen lämpötilariippuvuus

Mitä näemme täällä? Ensimmäinen asia, joka kiinnittää huomiota, on se, että PTC-termistorin aikataulu on rikki ja tiettyjen lämpötila-arvojen mittaaminen on vaikeaa tai mahdotonta, mutta NTC-termistorin aikataulu on enemmän tai vähemmän yhdenmukainen, vaikkakin selvästi epälineaarinen. Mitä tämä tarkoittaa? NTC-termistorin käyttäminen on helpompaa mitata lämpötilaa, koska on helpompi selvittää toiminto, jolla sen arvot muuttuvat.

Lämpötilan muuntamiseksi resistanssiksi voit ottaa arvot manuaalisesti, mutta tätä on vaikea tehdä kotona. Tarvitset lämpömittarin väliaineen lämpötilan todellisten arvojen määrittämiseksi. Joidenkin komponenttien lomakkeissa tällainen taulukko on annettu esimerkiksi Vishayn NTC-termistorien sarjalle.

Datashit Vishay TC -termistorit

Sitten voit järjestää käännöksen haarojen kautta toiminnon, jos ... else tai switchcase, avulla. Jos lomakkeissa ei kuitenkaan ole sellaisia ​​taulukoita, sinun on laskettava toiminto, jolla vastus muuttuu lämpötilan noustessa.

Tämän muutoksen kuvaamiseksi on olemassa Steinhart-Hart-yhtälö.

Steinhart-hart-yhtälö

missä A, B ja C ovat termistorivakiot, jotka määritetään mittaamalla kolme lämpötilaa erolla, joka on vähintään 10 celsiusastetta. Samanaikaisesti eri lähteet osoittavat, että tyypilliselle 10 kΩ NTC-termistorille ne ovat yhtä suuret:

Termistorivakiot

B-beeta-kerroin, se lasketaan kahden eri lämpötilan vastusmittauksen perusteella. Se ilmoitetaan joko lomakkeessa (kuten alla kuvassa) tai laskettu itsenäisesti.

B - beetakerroin teknisestä taulukosta

Tässä tapauksessa B merkitään muodossa:

beeta-suhde

Tämä tarkoittaa, että kerroin laskettiin niiden tietojen perusteella, jotka saatiin mittaamalla vastus lämpötiloissa 25 ja 100 celsiusastetta, ja tämä on yleisin vaihtoehto. Sitten se lasketaan kaavalla:

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

Termistorin tyypillinen kytkentäkaavio mikro-ohjaimeen on esitetty alla.

Termistorin kytkentäkaavio mikro-ohjaimeen

Tässä R1 on vakiovastus, termistori on kytketty virtalähteeseen ja tiedot otetaan niiden välisestä keskipisteestä, kaavio osoittaa ehdollisesti, että signaali syötetään napaan A0 - tämä analogiatulo Arduino.

Termistorin kytkentäkaavio mikro-ohjaimeen

Termistorin vastus voidaan laskea seuraavan kaavan avulla:

Termistorin R = R1⋅ ((Vcc / Voutput) −1)

Jotta käännettäisiin arduinolle ymmärrettävälle kielelle, sinun on muistettava, että arduinolla on 10-bittinen ADC, joten tulosignaalin (jännite 5V) suurin digitaalinen arvo on 1023. Sitten ehdollisesti:

  • Dmax = 1023;

  • D on signaalin todellinen arvo.

sitten:

Termistorin R = R1⋅ ((Dmax / D) −1)

Nyt käytämme tätä laskeaksesi vastus ja laskemaan sitten termistorin lämpötila beetayhtälön avulla ohjelmointikielellä Arduinolle. Luonnos on seuraava:

luonnos

DS18B20

Vielä suositumpi lämpötilan mittaamiseen.Arduino löysi digitaalisen anturin DS18B20. Se kommunikoi mikrokontrollerin kanssa 1-johdinrajapinnan kautta, voit kytkeä useita antureita (jopa 127) yhteen johtimeen, ja käyttääksesi niitä sinun on selvitettävä kunkin anturin tunnus.

Huomaa: sinun pitäisi tietää tunnus, vaikka käytät vain yhtä anturia.

DS18B20 digitaalianturi

Ds18b20-anturin kytkentäkaavio Arduinoon näyttää seuraavalta:

Ds18b20-anturin kytkentäkaavio Arduinoon
Ds18b20-anturin kytkentäkaavio Arduinoon

Siellä on myös loisvoimatila - sen kytkentäkaavio näyttää tältä (tarvitset kaksi johtoa kolmen sijaan):

Arduino-anturin kytkentäkaavio

Tässä tilassa oikea toiminta ei ole taattu mitattaessa lämpötiloja yli 100 celsiusastetta.

Digitaalinen DS18B20-lämpötila-anturi koostuu kokonaisesta joukosta solmuja, kuten mikä tahansa muu SIMS. Voit katsella sen sisäistä laitetta alla:

Digitaalinen lämpötila-anturi DS18B20

Jotta voit työskennellä sen kanssa, sinun on ladattava Onewire-kirjasto Arduinolle, ja itse anturille on suositeltavaa käyttää DallasTemperature-kirjastoa.

luonnos

Tämä koodiesimerkki osoittaa yhden lämpötila-anturin kanssa työskentelyn perusteet, celsiusasteina ilmaistu tulos sarjaportin kautta jokaisen lukemisen jälkeen.


DHT11 ja DHT22 - kosteus- ja lämpötila-anturit

DHT11 ja DHT22 - kosteus- ja lämpötila-anturit

Nämä anturit ovat suosittuja ja niitä käytetään usein mittaamaan kosteutta ja ympäristön lämpötilaa. Seuraavassa taulukossa ilmoitimme niiden tärkeimmät erot.

 
DHT11
DHT22
Kosteuden määritys alueella
20-80%
0-100%
Mittaustarkkuus
5%
2-5%
Lämpötilan määrittäminen
0 ° C - + 50 ° C
-40 ° C - + 125 ° C
Mittaustarkkuus
2,5%
plus tai miinus 0,5 astetta
Äänestystaajuus
1 kerran sekunnissa
1 kerran 2 sekunnissa
Kosteusanturin kytkentäkaavio arduinoon

Yhteyskaavio on melko yksinkertainen:

  • 1 johtopäätös - ravitsemus;

  • 2 johtopäätös - tiedot;

  • 3 johtopäätös - ei käytetty;

  • 4 johtopäätös - yleinen lanka.

Jos anturi on tehty moduulin muodossa, sillä on kolme lähtöä, mutta vastusta ei tarvita - se on jo juotettu levyyn.

Moduulin muodossa olevan kosteusanturin kytkentäkaavio arduinoon

Toimiaksesi tarvitsemme dht.h-kirjaston, se ei ole vakioasetuksessa, joten se on ladattava ja asennettava arduino IDE -kansion kansiokirjastoihin. Se tukee kaikkia tämän perheen antureita:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Esimerkki kirjaston käytöstä:

Kirjaston käyttöesimerkki

johtopäätös

Nykyään oman aseman luominen lämpötilan ja kosteuden mittaamiseksi on erittäin helppoa Arduino-alustan ansiosta. Tällaisten hankkeiden kustannukset ovat 3–4 sataa ruplaa. Akun käyttöikää voidaan käyttää, eikä sitä tarvitse tulostaa tietokoneelle merkkinäyttö (kuvasimme niitä äskettäisessä artikkelissa), voit sitten rakentaa kannettavan laitteen käytettäväksi sekä kotona että autossa. Kirjoita kommentteihin mitä muuta haluat oppia yksinkertaisista kotitekoisista käsityöistä arduinolla!

Katso myös tästä aiheesta:Suositut anturit Arduinolle - liitäntä, kaaviot, luonnokset

Katso myös osoitteesta i.electricianexp.com:

  • Arduinon suosituimmat anturit
  • Yhdistetään analogiset anturit Arduinoon, lukemisen anturit
  • Wheatstone-sillan käyttö ei-sähköisten määrien mittaamiseen
  • Lämpötila-anturit. Toinen osa termistorit
  • Kosteusanturit - miten ne on järjestetty ja toimivat

  •