Lämpötila-antureita, jotka ovat yhteensopivia Arduinon, ESP32:n, ESP8266:n ja muiden kehitysalustojen kanssa, on laaja valikoima. Niinpä voi olla vaikeaa valita projektiin sopivin anturi. Tässä artikkelissa vertailemme 6 yleisesti käytettyä lämpötila-anturia: DHT11, DHT22, LM35, DS18B20, BME280 ja BMP180.
Vertailemme antureita kommunikaatioprotokollan, lämpötilan vaihteluvälin, tarkkuuden, helppokäyttöisyyden ja monien muiden seikkojen osalta.
Toteutamme myös yksinkertaisen kokeen, jossa mittasimme lämpötilaa samassa ympäristössä kaikilla lämpötila-antureilla ajan mittaan. Tämän kokeen avulla näimme, miten anturit reagoivat lämpötilan muutoksiin. Suoritimme tätä koetta noin 36 tunnin ajan ja näytämme tulokset myöhemmin tässä artikkelissa.
Lämpötila-antureiden vertailu: DHT11 vs. DHT22 vs. LM35 vs. DS18B20 vs. BME280 vs. BMP180
Lämpötila-antureiden nopeaa vertailua varten olemme koonneet seuraavan taulukon, joka näyttää tärkeimmät tiedot lämpötila-anturia valittaessa, nimittäin: tiedonsiirtoprotokollan, syöttöjännitteen, lämpötila-alueen ja tarkkuuden.
Huomautus: taulukko rullaa vaakasuoraan sekä työpöytäkoneella että tabletilla ja matkapuhelimella.
DHT11 ja DHT22 (AM2302) ovat digitaalisia lämpötila-antureita, jotka mittaavat lämpötilan ja kosteuden. Ne näyttävät hyvin samankaltaisilta ja toimivat samalla tavalla, mutta niillä on erilaiset tekniset tiedot.
Kummallekin anturille voidaan syöttää virtalähteenä joko 3,3V tai 5V. Voit siis helposti käyttää niitä Arduino- tai ESP-projekteissasi.
DHT22-anturilla on parempi resoluutio ja laajempi lämpötilan ja kosteuden mittausalue. Se on kuitenkin hieman kalliimpi ja voit pyytää lukemia vain 2 sekunnin välein.
DHT11 on hieman halvempi, sillä on pienempi alue ja se on epätarkempi. Mutta voit saada anturin lukemat sekunnin välein.
Eroistaan huolimatta ne toimivat samalla tavalla, ja voit käyttää samaa koodia lämpötilan ja kosteuden lukemiseen. Sinun on vain valittava koodissa käyttämäsi anturityyppi.
Jos siis olet valmis käyttämään ylimääräisen dollarin, suosittelemme DHT22:ta DHT11:n sijaan.
Meillä on useita oppaita DHT11- ja DHT22-antureiden käytöstä:
ESP32 (Arduino IDE) DHT11/DHT22 lämpötila- ja kosteusanturilla
ESP8266 (Arduino IDE) DHT11/DHT22 lämpötila- ja kosteusanturi Web Palvelin
Arduino ja DHT11/DHT22 kosteus- ja lämpötila-anturi
ESP32/ESP8266 (MicroPython) ja DHT11/DHT22 Web-palvelin
LM35, LM335 ja LM34
LM35, LM335 ja LM34 ovat lineaarisia lämpötila-antureita, jotka antavat lämpötila-arvoon verrannollisen jännitteen. LM35 toimitetaan kalibroituna Celsius-asteina, LM335 kelvineinä ja LM34 Fahrenheitinä. Riippuen siis siitä, mitä lämpötilayksiköitä käytät projektissasi, toinen näistä antureista saattaa olla käytännöllisempi kuin toinen.
Suosittelemme LM35:n tai LM34:n käyttämistä LM335:n sijasta, koska suuren luvun vähentäminen LM335:n mittaustuloksista lämpötilan muuntamiseksi kelvinistä voi heikentää tulosten tarkkuutta.
Tietolehden mukaan LM35:n ja LM34:n anturien virrankulutus on hyvin vähäinen, noin 60uA. Tämä johtaa hyvin vähäiseen itselämmitykseen (noin 0,08ºC tyynessä ilmassa), mikä tarkoittaa, että anturi itse ei vaikuta lämpötilamittauksiin.
Lämpötilan lukemiseksi näiltä antureilta sinun tarvitsee vain lukea anturin lähtöjännite käyttämällä analogista pinniä. Jos käytät Arduinoa, sinun tarvitsee vain käyttää analogRead()-funktiota ja saat lämpötilalukemat kahdella desimaalipisteellä.
Jos siis tarvitset halvan ja helppokäyttöisen anturin lämpötilan seuraamiseen, LM35 voi olla hyvä vaihtoehto. Koska se kuluttaa myös hyvin vähän energiaa, se sopii erinomaisesti kannettaviin projekteihin, joissa vaaditaan pientä virrankulutusta.
Opi käyttämään LM35-, LM335- ja LM34-lämpötila-antureita Arduinon kanssa:
Ohje LM35-, LM335- ja LM34-lämpötila-antureiden käyttämiseen Arduinon kanssa
DS18B20-lämpötila-anturi
>Ds18B20-lämpötila-anturi on yksijohtiminen digitaalinen lämpötilan anturi. Tämä tarkoittaa, että se tarvitsee vain yhden datajohdon (ja GND:n) kommunikoidakseen mikrokontrollereiden kanssa.
Se voi saada virtansa ulkoisesta virtalähteestä tai se voi saada virtansa datajohdosta (ns. ”loistila”), jolloin ulkoista virtalähdettä ei tarvita.
Kullakin DS18B20-lämpötila-anturilla on yksilöllinen 64-bittinen sarjakoodi. Tämän ansiosta voit kytkeä useita antureita samaan datajohtimeen. Voit siis saada lämpötilan useista antureista yhdellä GPIO:lla.
Lämpötila-anturin resoluutio voidaan lisäksi asettaa 9, 10, 11 tai 12 bittiin, mikä vastaa vastaavasti 0,5 °C:n, 0,25 °C:n, 0,125 °C:n ja 0,0625 °C:n askelia. Oletusresoluutio käynnistyksen yhteydessä on 12-bittinen.
DS18B20-lämpötila-anturi on saatavana myös vedenpitävänä versiona, joka on ihanteellinen ulkotiloihin tai nesteen lämpötilan mittaamiseen.
Voit seurata oppaita, joissa opit käyttämään DS18B20-lämpötila-anturia ESP32:n, ESP8266:n ja Arduinon kanssa Arduino IDE:n tai MicroPythonin avulla: