Az Arduino, ESP32, ESP8266 és más fejlesztési kártyákkal kompatibilis hőmérséklet-érzékelők széles választéka létezik. Így nehéz lehet kiválasztani a legmegfelelőbb érzékelőt a projekthez. Ebben a cikkben 6 széles körben használt hőmérséklet-érzékelőt hasonlítunk össze: DHT11, DHT22, LM35, DS18B20, BME280 és BMP180.
Az érzékelőket a kommunikációs protokoll, a hőmérsékleti tartomány, a pontosság, a könnyű kezelhetőség és még sok más tekintetében hasonlítjuk össze.
Egy egyszerű kísérletet is lefuttatunk, amelyben az összes hőmérséklet-érzékelővel ugyanabban a környezetben mértük a hőmérsékletet az idő múlásával. Ezzel a kísérlettel láthattuk, hogyan reagálnak az érzékelők a hőmérsékletváltozásra. Ezt a kísérletet körülbelül 36 órán keresztül futtattuk, és a cikk későbbi részében megmutatjuk az eredményeket.
Elolvasásra ajánlott: 9 Arduino-kompatibilis hőmérséklet-érzékelő az elektronikai projektjeidhez
Hőmérsékletérzékelők összehasonlítása: DHT11 vs DHT22 vs LM35 vs DS18B20 vs BME280 vs BMP180
Az érzékelők gyors összehasonlításához összeállítottuk az alábbi táblázatot, amely a hőmérséklet-érzékelő kiválasztásakor a legfontosabb információkat mutatja, nevezetesen: kommunikációs protokoll, tápfeszültség, hőmérsékleti tartomány és pontosság.
Figyelem: a táblázat vízszintesen gördül asztali számítógépen, táblagépen és mobilon egyaránt.
Sensor
DHT11
DHT22 (AM2302)
LM35
DS18B20
BME280
BMP180
Mérések
Hőmérséklet Páratartalom
Hőmérséklet Páratartalom
Hőmérséklet
Páratartalom
Hőmérséklet
Hőmérséklet Páratartalom Nyomás
Hőmérséklet Nyomás
Kommunikációs protokoll
Egyes…vezetékes
Egyvezetékes
Analog
Egyvezetékes
I2C SPI
I2C
Supply voltage
3 to 5.5V DC
3 – 6V DC
4 – 30 V DC
3 – 5,5V DC
1,7 – 3,6V (a chiphez) 3,3 – 5V a kártyához
1,8 – 3,6V (a chiphez) 3.3 és 5V között a lapka számára
ds18b20 modul (szerepel a MicroPython firmware-ben)
BME280 Adafruit Library
BMP180 modul
Hol lehet megvásárolni?
Áruk ellenőrzése
Áruk ellenőrzése
Áruk ellenőrzése
Áruk ellenőrzése
Áruk ellenőrzése Áruk ellenőrzése (vízálló)
Áruk ellenőrzése
Áruk ellenőrzése
DHT11 vs DHT22 (AM2302)
A DHT11 és a DHT22 (AM2302) digitális hőmérséklet- és páratartalom érzékelők, amelyek a hőmérsékletet és a páratartalmat mérik. Nagyon hasonlóan néznek ki és ugyanúgy működnek, de eltérő specifikációkkal rendelkeznek.
Mindkét érzékelőt 3,3V vagy 5V-os tápfeszültséggel lehet táplálni. Így könnyen használhatja őket az Arduino vagy ESP projektjeiben.
A DHT22 érzékelő jobb felbontással és szélesebb hőmérséklet- és páratartalom mérési tartományban rendelkezik. Azonban egy kicsit drágább, és csak 2 másodperces időközönként kérhet leolvasást.
A DHT11 valamivel olcsóbb, kisebb a tartománya, és kevésbé pontos. Viszont másodpercenként kaphatsz szenzoros leolvasásokat.
A különbségek ellenére hasonlóan működnek, és ugyanazt a kódot használhatod a hőmérséklet és a páratartalom leolvasására. Csak ki kell választania a kódban, hogy milyen típusú érzékelőt használ.
Szóval, ha hajlandó egy dollárral többet költeni, akkor a DHT22-t ajánljuk a DHT11 helyett.
A DHT11 és a DHT22 érzékelők használatáról több útmutatót is közzéteszünk:
ESP32 (Arduino IDE) a DHT11/DHT22 hőmérséklet- és páratartalom-érzékelővel
ESP8266 (Arduino IDE) DHT11/DHT22 hőmérséklet- és páratartalom-érzékelővel
ESP8266 (Arduino IDE) DHT11/DHT22 hőmérséklet- és páratartalom web Server
Arduino a DHT11/DHT22 páratartalom és hőmérséklet érzékelővel
ESP32/ESP8266 (MicroPython) a DHT11/DHT22 Web Serverrel
LM35, LM335 és LM34
Az LM35, LM335 és LM34 lineáris hőmérsékletérzékelők, amelyek a hőmérséklet értékével arányos feszültséget adnak ki. Az LM35 Celsius fokban, az LM335 Kelvinben, az LM34 pedig Fahrenheitben kalibrálva kerül forgalomba. Tehát attól függően, hogy milyen hőmérsékleti egységeket fog használni a projektjében, az egyik érzékelő praktikusabb lehet, mint a másik.
Az LM335 helyett az LM35 vagy LM34 használatát javasoljuk, mert ha az LM335 méréseiből nagy számot vonunk le a hőmérséklet Kelvinből történő átalakításához, az veszélyeztetheti az eredmények pontosságát.
Az adatlap szerint az LM35 és LM34 érzékelők működéséhez nagyon kevés áram szükséges, körülbelül 60uA. Ez nagyon alacsony önmelegedést eredményez (kb. 0,08ºC nyugodt levegőben), ami azt jelenti, hogy a hőmérsékletméréseket nem befolyásolja maga az érzékelő.
A hőmérséklet leolvasásához ezekről az érzékelőkről csak az érzékelő kimeneti feszültségét kell leolvasni egy analóg pin segítségével. Ha Arduino-t használ, csak az analógRead() függvényt kell használnia, és két tizedesvesszővel kapja meg a hőmérséklet leolvasását.
Szóval, ha olcsó és könnyen használható érzékelőre van szüksége a hőmérséklet megfigyeléséhez, az LM35 jó választás lehet. Továbbá, mivel nagyon kevés energiát fogyaszt, nagyszerű a hordozható projektekhez, ahol alacsony energiafogyasztásra van szükség.
Tanulja meg, hogyan használja az LM35, LM335 és LM34 hőmérsékletérzékelőket az Arduino-val:
Útmutató az LM35, LM335 és LM34 hőmérsékletérzékelőkhöz az Arduino-val
DS18B20 hőmérsékletérzékelő
A DS18B20 hőmérsékletérzékelő egy egyvezetékes digitális hőmérsékletérzékelő. Ez azt jelenti, hogy csak egy adatvezetékre (és GND-re) van szüksége a mikrokontrollerekkel való kommunikációhoz.
Az áramellátás történhet külső tápegységről, vagy az adatvezetékből is nyerhet áramot (úgynevezett “parazita üzemmód”), így nincs szükség külső tápegységre.
Minden DS18B20 hőmérsékletérzékelő egyedi 64 bites soros kóddal rendelkezik. Ez lehetővé teszi, hogy több érzékelőt csatlakoztasson ugyanarra az adatvezetékre. Így egyetlen GPIO segítségével több érzékelőtől is lekérheti a hőmérsékletet.
Kiegészítésképpen a hőmérséklet-érzékelő felbontása 9, 10, 11 vagy 12 bitre állítható, ami 0,5°C, 0,25°C, 0,125°C és 0,0625°C lépéseknek felel meg. Az alapértelmezett felbontás bekapcsoláskor 12 bites.
A DS18B20 hőmérséklet-érzékelő vízálló változatban is kapható, amely ideális kültéri projektekhez vagy folyadékhőmérséklet méréséhez.
A DS18B20 hőmérsékletérzékelő ESP32-vel, ESP8266-tal és Arduino-val való használatának megtanulásához az Arduino IDE vagy MicroPython segítségével követheti útmutatónkat:
ESP32 (Arduino IDE) DS18B20 hőmérsékletérzékelő (egy, több, webszerver)
ESP8266 (Arduino IDE) DS18B20 hőmérsékletérzékelő (egy, több, Web Server)
ESP32 és ESP8266 (MicroPython) DS18B20 hőmérsékletérzékelővel