Obsah:

Testovanie teplotných senzorov - ktorý z nich pre mňa?: 15 krokov (s obrázkami)
Testovanie teplotných senzorov - ktorý z nich pre mňa?: 15 krokov (s obrázkami)

Video: Testovanie teplotných senzorov - ktorý z nich pre mňa?: 15 krokov (s obrázkami)

Video: Testovanie teplotných senzorov - ktorý z nich pre mňa?: 15 krokov (s obrázkami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Testovanie teplotných senzorov - ktorý z nich je pre mňa?
Testovanie teplotných senzorov - ktorý z nich je pre mňa?

Jeden z prvých senzorov, ktoré chcú vyskúšať nováčikovia vo fyzických počítačoch, je meranie teploty. Štyrmi najobľúbenejšími snímačmi sú TMP36, ktorý má analógový výstup a potrebuje analógovo-digitálny prevodník, DS18B20, ktorý používa jednovodičové pripojenie, DHT22 alebo o niečo lacnejší DHT11, ktorý potrebuje iba digitálny kolík, ale tiež poskytuje čítanie vlhkosti a nakoniec BME680, ktorý používa I2C (s SPI aj na niektorých oddeľovacích doskách) a udáva teplotu, vlhkosť, plyn (VOC) a atmosférický tlak, ale stojí o niečo viac.

Chcem vidieť, ako sú presné, a objaviť všetky výhody alebo nevýhody. Už vlastním presný ortuťový teplomer, ktorý mi zostal z farebnej fotografickej tlače v časoch chemického spracovania, a porovnávam ich s. (Nikdy nič nevyhadzujte - budete to potrebovať neskôr!)

Na tieto testy použijem CircuitPython a vývojovú dosku Adafruit Itsybitsy M4. Pre všetky zariadenia sú k dispozícii vhodné ovládače.

Zásoby

Môj pôvodný zoznam:

  • Mikrokontrolér Itsybitsy M4 Express
  • kábel micro USB - na programovanie
  • TMP36
  • DS18B20
  • Rezistor 4,7K Ohm
  • DHT22
  • BME680
  • Viacmetrový
  • Breadboard alebo pásová doska
  • Spojovací drôt

Krok 1: Okruhy

Obvody
Obvody

Oranžové vodiče sú 3,3 V.

Čierne vodiče sú GND

V spodnej časti dosky sú testovacie body na meranie napätia. (Analógový výstup 3,3v, GND a TMP36)

Stredové zásuvky sú zľava doprava:

  • TMP36: 3,3v, výstup analógového signálu, GND
  • DS18B20: GND, výstup digitálneho signálu, 3,3 V.
  • DHT22: 3,3v, výstup signálu, prázdny, GND
  • BME680: 3,3v, SDA, SCL, prázdny, GND

Zadný konektor na pripojenie k doske IB M4E zľava doprava

  • 3,3v
  • TMP36 - analógový výstup na kolíku A2
  • GND
  • Digitálny výstup DS18B20 na pin D3 - zelený
  • Digitálny výstup DHT22 na pin D2 - žltý
  • SDA - biela
  • SCL - ružová

Rezistor 4,7K Ohm je ťahom zo signálu na 3,3 V pre 0-drôtové pripojenie na DS18B20.

Na zadnej strane dosky sú 2 vyrezané stopy:

Pod ľavým koncom ružových a bielych drôtov. (Pod žltým drôtom.)

Krok 2: Metóda

Metóda
Metóda

Pre každý senzor napíšem krátky skript, ktorý niekoľkokrát odčíta teplotu (a ďalšie položky, ak sú k dispozícii) a skontroluje teplotu podľa môjho ortuťového (Hg) teplomera. Budem skúmať, ako blízko je teplota v porovnaní s údajmi ortuti a či sú údaje stabilné/konzistentné.

Tiež sa pozriem do dokumentácie, aby som zistil, či údaje zodpovedajú očakávanej presnosti a či je možné urobiť niečo pre zlepšenie.

Krok 3: TMP36 - počiatočná skúška

TMP36 - Počiatočná skúška
TMP36 - Počiatočná skúška
TMP36 - Počiatočná skúška
TMP36 - Počiatočná skúška

Ľavá noha je 3,3 V, pravá noha je GND a stredná noha je analógové napätie predstavujúce teplotu pomocou nasledujúceho vzorca. Teplota = (milivolty - 500) / 10

750 milivoltov teda dáva teplotu 25 ° C

Zdá sa, že tu existuje niekoľko problémov. Teplota z „normálneho“ortuťového teplomera je oveľa nižšia ako z TMP36 a hodnoty nie sú veľmi konzistentné - dochádza k „chveniu“alebo šumu.

Senzor TMP36 vysiela napätie úmerné teplote. Toto musí prečítať A/D prevodník pred vypočítaním teploty. Odčítajme napätie priamo zo strednej nohy snímača pomocou multimetra a porovnajme ho s výsledkom z A/D. Odčítanie zo stredovej nohy s mojím multimetrom je 722 milivoltov, oveľa nižšie a veľmi stabilné čítanie.

Sú dve veci, ktoré môžeme vyskúšať. Nahraďte potenciometer za TMP36 a napätie vo výpočte upravte na skutočné napätie mikrokontroléra. Potom uvidíme, či je vypočítané napätie bližšie a či je znížený šum/jitter.

Zmerajme skutočné napätie, ktoré sa používa na mojom mikrokontroléri a A/D. Predpokladalo sa, že je to 3,3 V, ale v skutočnosti je to iba 3,275 V.

Krok 4: Výsledky substitúcie potenciometra

Výsledky substitúcie potenciometra
Výsledky substitúcie potenciometra

Toto je oveľa lepšie. Hodnoty sú v rozmedzí niekoľkých milivoltov s oveľa menším hlukom. To naznačuje, že hluk pochádza skôr z TMP36 ako z A/D. Údaje na merači sú vždy stabilné - bez chvenia. (Merač môže „vyhladzovať“nervózny výstup.)

Jedným zo spôsobov, ako zlepšiť situáciu, môže byť priemerné čítanie. Vykonajte rýchlo desať meraní a použite priemer. Počas zmeny programu tiež vypočítam štandardnú odchýlku, aby som naznačil šírenie výsledkov. Budem tiež počítať počet nameraných hodnôt v rámci 1 štandardnej odchýlky od priemeru - čím vyššie, tým lepšie.

Krok 5: Priemerné hodnoty a výsledok

Priemerné hodnoty a výsledok
Priemerné hodnoty a výsledok

Stále je tu veľký hluk a hodnoty z TMP36 sú stále vyššie ako z ortuťového teplomera. Na zníženie šumu som medzi signál a GND zaradil kondenzátor 100NF

Potom som hľadal ďalšie riešenia na internete a našiel som tieto: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk navrhuje zahrnúť medzi signál a GND odpor 47 kOhm.

www.desert-home.com/2015/03/battery-operate… Zatiaľ čo tento chlapík navrhuje zoradiť 15 meraní do poriadku a spriemerovať centrum 5.

Upravil som skript a obvod, aby zahrnoval tieto návrhy, a zahrnul som čítanie z ortuťového teplomera.

Nakoniec! Teraz máme stabilné hodnoty v rozsahu presnosti popisu zariadenia.

Bolo dosť veľa úsilia uviesť senzor do prevádzky, ktorý má výrobcovu presnosť iba:

Presnosť - najvyššia (najnižšia): ± 3 ° C (± 4 ° C) Stoja len asi 1,50 dolára (2 libry)

Krok 6: DS18B20 - Počiatočné testovanie

DS18B20 - Počiatočné testovanie
DS18B20 - Počiatočné testovanie

Buďte veľmi opatrní. Tento balík vyzerá veľmi podobne ako TMP36, ale nohy sú naopak, s 3,3 V vpravo a GND vľavo. Výstup signálu je v strede. Aby toto zariadenie fungovalo, potrebujeme odpor 4,7 k Ohm medzi signálom a 3,3 V. Toto zariadenie používa jednovodičový protokol a musíme stiahnuť niekoľko ovládačov do priečinka lib programu Itsybitsy M4 Express.

To stojí asi 4 doláre / 4 libry Technické špecifikácie:

  • Použiteľný teplotný rozsah: -55 až 125 ° C (-67 ° F až +257 ° F)
  • Voliteľné rozlíšenie 9 až 12 bitov
  • Používa 1 -Wire rozhranie - na komunikáciu vyžaduje iba jeden digitálny pin
  • Jedinečné 64 bitové ID napálené do čipu
  • Jeden pin môže zdieľať viac senzorov
  • ± 0,5 ° C Presnosť od -10 ° C do +85 ° C
  • Alarmový systém teplotných limitov
  • Čas dopytu je kratší ako 750 ms
  • Použiteľné s napájaním 3,0 V až 5,5 V.

Hlavným problémom tohto senzora je, že používa rozhranie Dallas 1-Wire a nie všetky mikrokontroléry majú vhodný ovládač. Máme šťastie, existuje ovládač pre Itsybitsy M4 Express.

Krok 7: DS18B20 funguje dobre

DS18B20 funguje dobre
DS18B20 funguje dobre

To ukazuje skvelý výsledok.

Stabilná sada hodnôt bez ďalšej práce a režijných nákladov. Hodnoty sú v očakávanom rozsahu presnosti ± 0,5 ° C v porovnaní s mojím ortuťovým teplomerom.

Existuje aj vodotesná verzia za približne 10 dolárov, ktorú som v minulosti používal s rovnakým úspechom.

Krok 8: DHT22 a DHT11

DHT22 a DHT11
DHT22 a DHT11

DHT22 používa termistor na získanie teploty a stojí asi 10 dolárov / 10 libier a je presnejším a drahším bratom menšieho DHT11. Tiež používa jednovodičové rozhranie, ale NIE je kompatibilný s protokolom Dallas používaným s DS18B20. Sníma teplotu a vlhkosť. Tieto zariadenia niekedy vyžadujú pull up odpor medzi 3,3 V a signálnym kolíkom. Tento balík už má jeden nainštalovaný.

  • Nízke náklady
  • Napájanie 3 až 5 V a I/O
  • Maximálne využitie prúdu 2,5 mA počas konverzie (pri vyžiadaní údajov)
  • Dobré pre hodnoty vlhkosti 0-100% s presnosťou 2-5%
  • Dobré pre teploty od -40 do 80 ° C s presnosťou ± 0,5 ° C
  • Vzorkovacia frekvencia nie viac ako 0,5 Hz (raz za 2 sekundy)
  • Veľkosť tela 27 mm x 59 mm x 13,5 mm (1,05 palca x 2,32 palca x 0,53 palca)
  • 4 piny, rozstup 0,1"
  • Hmotnosť (iba DHT22): 2,4 g

V porovnaní s DHT11 je tento snímač presnejší, presnejší a pracuje vo väčšom rozsahu teploty/vlhkosti, ale je väčší a drahší.

Krok 9: Výsledky DHT22

Výsledky DHT22
Výsledky DHT22

Sú to vynikajúce výsledky s minimálnym úsilím. Hodnoty sú celkom stabilné a v rámci očakávanej tolerancie. Odčítanie vlhkosti je bonusom.

Merania môžete vykonávať iba každú sekundu.

Krok 10: Test DTH11

Test DTH11
Test DTH11

Môj ortuťový teplomer ukázal 21,9 stupňov C. Toto je dosť starý DHT11, ktorý som získal zo starého projektu a hodnota vlhkosti sa veľmi líši od hodnôt DHT22 spred niekoľkých minút. Stojí to asi 5 dolárov / 5 libier.

Jeho popis obsahuje:

  • Dobré pre hodnoty vlhkosti 20-80% s presnosťou 5%
  • Dobré na meranie teploty 0-50 ° C s presnosťou ± 2 ° C - menej ako DTH22

Zdá sa, že teplota je stále v rozsahu presnosti, ale neverím čítaniu vlhkosti z tohto starého zariadenia.

Krok 11: BME680

BME680
BME680

Tento senzor obsahuje možnosti snímania teploty, vlhkosti, barometrického tlaku a VOC plynu v jednom balení, ale je tu najdrahší zo skúšaných senzorov. Stojí to zhruba 18,50 libry / 22 dolárov. Existuje podobný produkt bez plynového senzora, ktorý je o niečo lacnejší.

Toto je zlatý štandardný senzor z piatich. Teplotný snímač je presný a s vhodnými ovládačmi sa veľmi ľahko používa. Táto verzia používa I2C, ale doska Adafruit Breakout Board môže používať aj SPI.

Rovnako ako BME280 a BMP280 môže tento presný snímač od spoločnosti Bosch merať vlhkosť s presnosťou ± 3%, barometrický tlak s absolútnou presnosťou ± 1 hPa a teplotu s presnosťou ± 1,0 ° C. Pretože sa tlak mení s nadmorskou výškou a merania tlaku sú také dobré, môžete ho použiť aj ako výškomer s presnosťou ± 1 meter alebo lepšou!

Dokumentácia uvádza, že potrebuje určitý „čas horenia“pre snímač plynu.

Krok 12: Ktorý mám použiť?

Ktorý mám použiť?
Ktorý mám použiť?
  • TMP36 je veľmi lacný, malý a obľúbený, ale jeho používanie je dosť náročné a môže byť nepresné.
  • DS18B20 je malý, presný, lacný, veľmi ľahko sa používa a má vodotesnú verziu.
  • DTH22 tiež indikuje vlhkosť, má primeranú cenu a ľahko sa používa, ale môže byť príliš pomalý.
  • BME680 robí oveľa viac ako ostatné, ale je drahý.

Ak chcem len teplotu, použil by som DS18B20 s presnosťou ± 0,5 ° C, ale môj obľúbený je BME680, pretože robí oveľa viac a je možné ho použiť vo veľkom počte rôznych projektov.

Jedna posledná myšlienka. Uistite sa, že máte teplotný senzor v dostatočnej vzdialenosti od mikroprocesora. Niektoré Raspberry Pi HAT umožňujú zahrievanie senzora teplom z hlavnej dosky, čo spôsobuje falošné čítanie.

Krok 13: Ďalšie myšlienky a experimentovanie

Ďalšie myšlienky a experimentovanie
Ďalšie myšlienky a experimentovanie

Ďakujem gulliverrr, ChristianC231 a pgagen za vaše pripomienky k tomu, čo som doteraz robil. Ospravedlňujem sa za oneskorenie, ale bol som na dovolenke v Írsku, bez prístupu k svojej elektronickej súprave niekoľko týždňov.

Toto je prvý pokus o to, aby senzory spolupracovali.

Napísal som skript, aby som postupne prečítal senzory a každých 20 sekúnd vytlačil hodnoty teploty.

Súpravu som vložil na hodinu do chladničky, aby všetko vychladlo. Pripojil som ho k počítaču a požiadal Mu, aby vytlačil výsledky. Výstup bol potom skopírovaný, zmenený na súbor.csv (premenné oddelené čiarkami) a grafy čerpajú z výsledkov v programe Excel.

Vyberanie súpravy z chladničky trvalo asi tri minúty, kým sa zaznamenali výsledky, takže v tomto intervale došlo k určitému zvýšeniu teploty. Mám podozrenie, že tieto štyri senzory majú rôzne tepelné kapacity, a preto by sa zahrievali rôznymi rýchlosťami. Očakáva sa, že rýchlosť zahrievania sa zníži, keď sa senzory priblížia k izbovej teplote. Zaznamenal som to ako ortuťový teplomer na 24,4 ° C.

Široké teplotné rozdiely na začiatku kriviek môžu byť spôsobené rôznymi tepelnými kapacitami senzorov. Som rád, že čiary sa zbližujú ku koncu, keď sa približujú k izbovej teplote. Mám obavy, že TMP36 je vždy oveľa vyšší ako ostatné senzory.

Pozrel som sa na listy s údajmi, aby som znova skontroloval opísanú presnosť týchto zariadení

TMP36

  • Presnosť ± 2 ° C nad teplotou (typ.)
  • ± 0,5 ° C linearita (typ.)

DS18B20

± 0,5 ° C Presnosť od -10 ° C do +85 ° C

DHT22

teplota ± 0,5 ° C

BME680

teplota s presnosťou ± 1,0 ° C

Krok 14: Úplný graf

Plný graf
Plný graf

Teraz môžete vidieť, že senzory sa nakoniec vyrovnali a súhlasili s teplotou viac -menej v rámci opísanej presnosti. Ak sa odoberie 1,7 stupňa z hodnôt TMP36 (očakáva sa ± 2 ° C), existuje dobrá zhoda medzi všetkými snímačmi.

Pri prvom spustení tohto experimentu spôsobil snímač 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 čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)

Traceback (posledný hovor naposledy):

Súbor „main.py“, riadok 64, v

Súbor „main.py“, riadok 59, na adrese get_dht22

NameError: lokálna premenná, na ktorú sa odkazuje pred priradením

Preto som skript upravil, aby sa s týmto problémom vyrovnal, a reštartoval som nahrávanie:

Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)

25.9, 22.6, -999.0, 22.6

Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)

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 čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)

27.1, 23.0, -999.0, 23.0

Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)

28.4, 23.2, -999.0, 23.3

Chyba čítania DHT: („Snímač DHT nebol nájdený, skontrolujte zapojenie“,)

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 druhým behom som nemal problém. Dokumentácia Adafruit varuje, že senzory DHT niekedy zmeškajú namerané hodnoty.

Krok 15: Závery

Závery
Závery

Táto krivka jasne ukazuje, že vyššia tepelná kapacita niektorých senzorov zvyšuje ich reakčný čas.

Všetky senzory zaznamenávajú stúpajúce a klesajúce teploty.

Nie sú veľmi rýchle na to, aby sa usadili na novej teplote.

Nie sú veľmi presné. (Sú dosť dobré na meteorologickú stanicu?)

Možno budete musieť svoj snímač kalibrovať na dôveryhodný teplomer.

Odporúča: