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.

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

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.

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

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:


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

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

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.

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

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-anturin kytkentäkaavio Arduinoon näyttää seuraavalta:


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

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:

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

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

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.

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.

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

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