Obsah:
- Zásoby
- Krok 1: Obvody
- Krok 2: Metoda
- Krok 3: TMP36 - počáteční zkouška
- Krok 4: Výsledky substituce potenciometru
- Krok 5: Průměrné hodnoty a výsledek
- Krok 6: DS18B20 - Počáteční testování
- Krok 7: DS18B20 funguje dobře
- Krok 8: DHT22 a DHT11
- Krok 9: Výsledky DHT22
- Krok 10: Test DTH11
- Krok 11: BME680
- Krok 12: Který mám použít?
- Krok 13: Další myšlenky a experimentování
- Krok 14: Úplný graf
- Krok 15: Závěry
Video: Testování teplotních senzorů - který z nich pro mě?: 15 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Jedním z prvních senzorů, které chtějí vyzkoušet nováčci v oblasti fyzických počítačů, je měření teploty. Čtyři z nejpopulárnějších senzorů jsou TMP36, který má analogový výstup a potřebuje převodník analog na digitální, DS18B20, který používá jednovodičové připojení, DHT22 nebo o něco levnější DHT11, který potřebuje pouze digitální pin, ale také poskytuje odečet vlhkosti a nakonec BME680, který používá I2C (s SPI také na některých breakout deskách) a udává teplotu, vlhkost, plyn (VOC) a atmosférický tlak, ale stojí o něco více.
Chci vidět, jak jsou přesné, a zjistit všechny výhody nebo nevýhody. Již vlastním přesný rtuťový teploměr, který zbyl z barevného fotografického tisku v dobách chemického zpracování, abych je porovnal. (Nikdy nic nevyhazujte - budete to potřebovat později!)
Pro tyto testy použiji CircuitPython a vývojovou desku Adafruit Itsybitsy M4. Pro všechna zařízení jsou k dispozici vhodné ovladače.
Zásoby
Můj počáteční seznam:
- Mikrokontrolér Itsybitsy M4 Express
- kabel micro USB - pro programování
- TMP36
- DS18B20
- Rezistor 4,7K Ohm
- DHT22
- BME680
- Multimetr
- Breadboard nebo pásová deska
- Spojovací vodič
Krok 1: Obvody
Oranžové vodiče jsou 3,3 V.
Černé vodiče jsou GND
Ve spodní části desky jsou testovací body pro měření napětí. (Analogový výstup 3,3 V, GND a TMP36)
Středové zásuvky jsou zleva doprava:
- TMP36: 3,3 V, výstup analogového signálu, GND
- DS18B20: GND, výstup digitálního signálu, 3,3 V.
- DHT22: 3,3 V, signál ven, prázdný, GND
- BME680: 3,3v, SDA, SCL, prázdný, GND
Zadní konektor pro připojení k desce IB M4E zleva doprava
- 3.3v
- TMP36 - analogový výstup na pin A2
- GND
- Digitální výstup DS18B20 na pin D3 - zelený
- Digitální výstup DHT22 na pin D2 - žlutý
- SDA - bílá
- SCL - růžová
Rezistor 4,7K Ohm je vytažením signálu ze 3,3 V pro 0nevodičové připojení na DS18B20.
Na zadní straně desky jsou 2 vyřezané stopy:
Pod levým koncem oba růžové a bílé dráty. (Pod žlutým drátem.)
Krok 2: Metoda
Pro každý senzor napíšu krátký skript, který několikrát odečte teplotu (a další položky, jsou -li k dispozici) a zkontroluje teplotu podle mého rtuťového (Hg) teploměru. Podívám se, jak blízko je teplota ve srovnání se čtením rtuti a zda jsou hodnoty stabilní/konzistentní.
Rovněž se podívám do dokumentace, abych zjistil, zda odečty odpovídají očekávané přesnosti a zda je možné něco zlepšit.
Krok 3: TMP36 - počáteční zkouška
Levá noha je 3,3 V, pravá je GND a střední noha je analogové napětí představující teplotu pomocí následujícího vzorce. TempC = (milivolty - 500) / 10
750 milivoltů tedy dává teplotu 25 ° C
Zdá se, že zde existuje několik problémů. Teplota z „normálního“rtuťového teploměru je mnohem nižší než z TMP36 a hodnoty nejsou příliš konzistentní - dochází k nějakému „chvění“nebo šumu.
Senzor TMP36 vysílá napětí úměrné teplotě. Toto musí odečíst A/D převodník, než se vypočítá teplota. Přečteme multimetrem napětí přímo ze střední nohy snímače a porovnáme to s výsledkem z A/D. Odečet ze střední nohy s mým multimetrem je 722 milivoltů, mnohem nižší a velmi stabilní čtení.
Můžeme vyzkoušet dvě věci. Nahraďte potenciometrem TMP36 a upravte napětí ve výpočtu na skutečné napětí mikrokontroléru. Poté uvidíme, zda je vypočítané napětí blíže a zda je snížen šum/jitter.
Pojďme změřit skutečné napětí, které se používá na mém mikrokontroléru a A/D. Toto bylo předpokládáno na 3,3 V, ale ve skutečnosti je pouze 3,275 V.
Krok 4: Výsledky substituce potenciometru
To je mnohem lepší. Odečty jsou v řádu milivoltů s mnohem menším šumem. To naznačuje, že šum je spíše z TMP36 než z A/D. Odečet na měřiči je vždy stabilní - žádné vibrace. (Měřič může „vyhlazovat“nervózní výstup.)
Jedním ze způsobů, jak situaci zlepšit, může být průměrné čtení. Rychle proveďte deset měření a použijte průměr. Během změny programu také vypočítám směrodatnou odchylku, abych dal indikaci šíření výsledků. Budu také počítat počet odečtů v rámci 1 standardní odchylky od průměru - čím vyšší, tím lepší.
Krok 5: Průměrné hodnoty a výsledek
Stále existuje velký hluk a hodnoty z TMP36 jsou stále vyšší než ze rtuťového teploměru. Aby se snížil šum, zapojil jsem mezi signál a GND kondenzátor 100NF
Pak jsem hledal jiná řešení na internetu a našel jsem tato: https://www.doctormonk.com/2015/02/accurate-and-re… Dr. Monk navrhuje zahrnout mezi signál a GND odpor 47 k Ohm.
www.desert-home.com/2015/03/battery-operate… Zatímco tento chlapík navrhuje seřazení 15 měření do průměru a průměrování centra 5.
Upravil jsem skript a obvod, aby zahrnoval tyto návrhy, a zahrnul čtení z rtuťového teploměru.
Nakonec! Nyní máme stabilní hodnoty v rozsahu přesnosti popisu zařízení.
To bylo docela hodně úsilí, aby senzor fungoval, který má pouze přesnost výrobce:
Přesnost - nejvyšší (nejnižší): ± 3 ° C (± 4 ° C) Stojí jen asi 1,50 $ (2 GBP)
Krok 6: DS18B20 - Počáteční testování
Buďte velmi opatrní. Tento balíček vypadá velmi podobně jako TMP36, ale nohy jsou naopak kulaté s 3,3 V vpravo a GND vlevo. Signál je uprostřed. Aby toto zařízení fungovalo, potřebujeme mezi signálem a 3,3 V odpor 4,7 k Ohm. Toto zařízení používá jednovodičový protokol a potřebujeme stáhnout několik ovladačů do složky lib v Itsybitsy M4 Express.
To stojí asi 4 $ / 4 £ Technické specifikace:
- Použitelný teplotní rozsah: -55 až 125 ° C (-67 ° F až +257 ° F)
- Volitelné rozlišení 9 až 12 bitů
- Používá 1 -Wire rozhraní - ke komunikaci vyžaduje pouze jeden digitální pin
- Unikátní 64bitové ID vypálené na čip
- Několik senzorů může sdílet jeden pin
- ± 0,5 ° C Přesnost od -10 ° C do +85 ° C
- Alarmový systém teplotního limitu
- Dotaz je kratší než 750 ms
- Použitelné s napájením 3,0 V až 5,5 V.
Hlavním problémem tohoto senzoru je, že používá rozhraní Dallas 1-Wire a ne všechny mikrokontroléry mají vhodný ovladač. Máme štěstí, existuje ovladač pro Itsybitsy M4 Express.
Krok 7: DS18B20 funguje dobře
To ukazuje skvělý výsledek.
Stabilní sada měření bez jakékoli další práce a režie výpočtu. Odečty jsou v očekávaném rozsahu přesnosti ± 0,5 ° C ve srovnání s mým rtuťovým teploměrem.
K dispozici je také vodotěsná verze za přibližně 10 dolarů, kterou jsem v minulosti použil se stejným úspěchem.
Krok 8: DHT22 a DHT11
DHT22 používá termistor k získání teploty a stojí asi 10 $ / 10 £ a je přesnějším a dražším bratrem menšího DHT11. Používá také jednovodičové rozhraní, ale NENÍ kompatibilní s protokolem Dallas používaným s DS18B20. Snímá teplotu i vlhkost. Tato zařízení někdy potřebují stahovací odpor mezi 3,3 V a signálním kolíkem. Tento balíček již má jeden nainstalovaný.
- Nízké náklady
- Napájení 3 až 5 V a I/O
- Maximální spotřeba proudu 2,5 mA během převodu (při požadavku na data)
- Dobré pro měření vlhkosti 0-100% s přesností 2-5%
- Dobré pro měření teploty -40 až 80 ° C s přesností ± 0,5 ° C
- Ne více než 0,5 Hz vzorkovací frekvence (jednou za 2 sekundy)
- Velikost těla 27 mm x 59 mm x 13,5 mm (1,05 palců x 2,32 palců x 0,53 palců)
- 4 piny, rozteč 0,1"
- Hmotnost (pouze DHT22): 2,4 g
Ve srovnání s DHT11 je tento senzor přesnější, přesnější a pracuje ve větším rozsahu teploty/vlhkosti, ale je větší a dražší.
Krok 9: Výsledky DHT22
To jsou vynikající výsledky s velmi malým úsilím. Odečty jsou docela stabilní a v rámci očekávané tolerance. Čtení vlhkosti je bonus.
Čtení můžete provádět pouze každou sekundu.
Krok 10: Test DTH11
Můj rtuťový teploměr ukazoval 21,9 stupňů C. Jedná se o docela starý DHT11, který jsem získal ze starého projektu a hodnota vlhkosti se velmi liší od hodnot DHT22 před několika minutami. Stojí to asi 5 $ / 5 £.
Jeho popis obsahuje:
- Dobré pro hodnoty vlhkosti 20-80% s přesností 5%
- Dobré pro měření teploty 0-50 ° C s přesností ± 2 ° C - méně než DTH22
Zdá se, že teplota je stále v rozsahu přesnosti, ale nedůvěřuji odečtu vlhkosti z tohoto starého zařízení.
Krok 11: BME680
Tento senzor obsahuje možnosti snímání teploty, vlhkosti, barometrického tlaku a plynu VOC v jednom balení, ale je nejdražším ze zde testovaných senzorů. Stojí to asi 18,50 GBP / 22 USD. Existuje podobný produkt bez plynového senzoru, který je o něco levnější.
Jedná se o zlatý standardní senzor z těchto pěti. Teplotní senzor je přesný a s vhodnými ovladači velmi snadno použitelný. Tato verze používá I2C, ale Adafruit breakout board může také používat SPI.
Stejně jako BME280 a BMP280 může tento přesný snímač od společnosti Bosch měřit vlhkost s přesností ± 3%, barometrický tlak s absolutní přesností ± 1 hPa a teplotu s přesností ± 1,0 ° C. Protože se tlak mění s nadmořskou výškou a měření tlaku je tak dobré, můžete jej také použít jako výškoměr s přesností ± 1 metr nebo lepší!
Dokumentace říká, že potřebuje nějaký „čas dohoření“pro plynový senzor.
Krok 12: Který mám použít?
- TMP36 je velmi levný, malý a populární, ale poměrně obtížně se používá a může být nepřesný.
- DS18B20 je malý, přesný, levný, velmi snadno se používá a má vodotěsnou verzi.
- DTH22 také indikuje vlhkost, má střední cenu a snadno se používá, ale může být příliš pomalý.
- BME680 dělá mnohem více než ostatní, ale je drahý.
Pokud chci jen teplotu, použil bych DS18B20 s přesností ± 0,5 ° C, ale můj oblíbený je BME680, protože toho dělá mnohem více a lze jej použít ve velkém počtu různých projektů.
Jedna poslední myšlenka. Udržujte teplotní senzor v dostatečné vzdálenosti od mikroprocesoru. Některé Raspberry Pi HAT umožňují teplo z hlavní desky k zahřátí senzoru, což vede k falešnému odečtu.
Krok 13: Další myšlenky a experimentování
Děkuji vám gulliverrr, ChristianC231 a pgagen za vaše komentáře k tomu, co jsem dosud dělal. Omlouvám se za zpoždění, ale byl jsem na dovolené v Irsku, bez přístupu ke své sadě elektroniky několik týdnů.
Zde je první pokus ukázat, jak senzory spolupracují.
Napsal jsem skript, abych postupně přečetl senzory a každých 20 sekund vytiskl hodnoty teploty.
Soupravu jsem vložil na hodinu do lednice, aby vše vychladlo. Zapojil jsem to do počítače a dostal Mu k vytištění výsledků. Výstup byl poté zkopírován, převeden do souboru.csv (proměnné oddělené čárkami) a grafy čerpají z výsledků v aplikaci Excel.
Vyjmutí soupravy z lednice trvalo asi tři minuty, než byly zaznamenány výsledky, takže v tomto intervalu došlo k určitému zvýšení teploty. Mám podezření, že čtyři senzory mají různé tepelné kapacity, a tak by se zahřívaly různými rychlostmi. Očekává se, že rychlost oteplování se sníží, jakmile se senzory přiblíží pokojové teplotě. Zaznamenal jsem to svým rtuťovým teploměrem jako 24,4 ° C.
Široké rozdíly teplot na začátku křivek by mohly být až na rozdílné tepelné kapacity senzorů. Těší mě, že se linky přibližují ke konci, když se blíží pokojové teplotě. Obávám se, že TMP36 je vždy mnohem vyšší než ostatní senzory.
Vyhledal jsem datové listy, abych znovu zkontroloval popsanou přesnost těchto zařízení
TMP36
- Přesnost ± 2 ° C nad teplotou (typ)
- ± 0,5 ° C linearita (typ.)
DS18B20
± 0,5 ° C Přesnost od -10 ° C do +85 ° C
DHT22
teplota ± 0,5 ° C
BME680
teplota s přesností ± 1,0 ° C
Krok 14: Úplný graf
Nyní vidíte, že se senzory nakonec srovnaly a souhlasily s teplotou víceméně v rámci své popsané přesnosti. Pokud je odebráno 1,7 stupně z hodnot TMP36 (očekává se ± 2 ° C), existuje dobrá shoda mezi všemi senzory.
Při prvním spuštění tohoto experimentu způsobil senzor DHT22 problém:
výstup main.py:
14.9, 13.5, 10.3, 13.7
15.7, 14.6, 10.5, 14.0
16.6, 15.6, 12.0, 14.4
18.2, 16.7, 13.0, 15.0
18.8, 17.6, 14.0, 15.6
19.8, 18.4, 14.8, 16.2
21.1, 18.7, 15.5, 16.9
21.7, 19.6, 16.0, 17.5
22.4, 20.2, 16.5, 18.1
23.0, 20.7, 17.1, 18.7
Chyba čtení DHT: ('Snímač DHT nebyl nalezen, zkontrolujte zapojení',)
Traceback (poslední hovor poslední):
Soubor „main.py“, řádek 64, v
Soubor "main.py", řádek 59, v get_dht22
NameError: místní proměnná odkazovaná před přiřazením
Upravil jsem tedy skript, abych se s tímto problémem vypořádal, a restartoval nahrávání:
Chyba čtení DHT: ('Snímač DHT nebyl nalezen, zkontrolujte zapojení',)
25.9, 22.6, -999.0, 22.6
Chyba čtení DHT: ('Snímač DHT nebyl nalezen, zkontrolujte zapojení',)
25.9, 22.8, -999.0, 22.7
25.9, 22.9, 22.1, 22.8
25.9, 22.9, 22.2, 22.9
Chyba čtení DHT: ('Snímač DHT nebyl nalezen, zkontrolujte zapojení',)
27.1, 23.0, -999.0, 23.0
Chyba čtení DHT: ('Snímač DHT nebyl nalezen, zkontrolujte zapojení',)
27.2, 23.0, -999.0, 23.1
25.9, 23.3, 22.6, 23.2
Chyba čtení DHT: ('Snímač DHT nebyl nalezen, zkontrolujte zapojení',)
28.4, 23.2, -999.0, 23.3
Chyba čtení DHT: ('Snímač DHT nebyl nalezen, zkontrolujte zapojení',)
26.8, 23.1, -999.0, 23.3
26.5, 23.2, 23.0, 23.4
26.4, 23.3, 23.0, 23.5
26.4, 23.4, 23.1, 23.5
26.2, 23.3, 23.1, 23.6
S druhou jízdou jsem neměl problém. Dokumentace Adafruit varuje, že někdy senzory DHT zmeškají odečty.
Krok 15: Závěry
Tato křivka jasně ukazuje, že vyšší tepelná kapacita některých senzorů prodlužuje jejich reakční dobu.
Všechny senzory zaznamenávají stoupající a klesající teploty.
Nejsou příliš rychlé na to, aby se usadily na novou teplotu.
Nejsou příliš přesné. (Jsou dost dobré pro meteorologickou stanici?)
Možná budete muset senzor kalibrovat na důvěryhodný teploměr.
Doporučuje:
Čtení a vykreslování dat světelných a teplotních senzorů s Raspberry Pi: 5 kroků
Čtení a vykreslování dat světelných a teplotních senzorů s Raspberry Pi: V tomto Instructable se naučíte číst světelný a teplotní senzor s převodníkem maliny pi a ADS1115 analogově na digitální převod a grafovat jej pomocí matplotlib. Začněme s potřebnými materiály
Několik infračervených teplotních senzorů - MLX90614: 4 kroky
Několik infračervených teplotních senzorů - MLX90614: Toto je stručný návod, jak nastavit více bezkontaktních teplotních senzorů MLX90614B přes sběrnici I2C s Arduino uno a zobrazovat údaje na sériovém monitoru Arduino IDE. Používám předem připravené desky, ale pokud si koupíte senzor b
Síť teplotních senzorů: 6 kroků
Síť teplotních senzorů: Teplota a vlhkost jsou životně důležité údaje ve vaší laboratoři, kuchyni, výrobní lince, kanceláři, zabijáckých robotech a dokonce i ve vaší domácnosti. Pokud potřebujete monitorovat více míst nebo místností nebo prostor, potřebujete něco, co je spolehlivé, kompaktní, přesné a
Tipy pro testování součástí: 5 kroků
Tipy pro testování součástí: Stalo se vám někdy, že jste vytvořili projekt a nefungovalo to kvůli vadným tranzistorům nebo vadným displejům. Zde je tedy zařízení, se kterým můžete před zahájením projektu vyzkoušet součásti jako tranzistor, diody, LDR, LED atd. To
Pero pro testování úrovně logiky TTL: 5 kroků (s obrázky)
Pero pro testování úrovně logiky TTL: Pero pro testování polarity a Pero pro testování úrovně logiky TTL. Toto pero pro testování polarity se mírně liší, protože je schopné testovat úrovně TTL a zobrazuje stav na 7segmentovém displeji pomocí písmen: „H“; (Vysoká) pro logickou úroveň "