Sisukord:

Temperatuuri andurite testimine - milline neist minu jaoks?: 15 sammu (piltidega)
Temperatuuri andurite testimine - milline neist minu jaoks?: 15 sammu (piltidega)

Video: Temperatuuri andurite testimine - milline neist minu jaoks?: 15 sammu (piltidega)

Video: Temperatuuri andurite testimine - milline neist minu jaoks?: 15 sammu (piltidega)
Video: Тест каравана в -25° . Ночёвка зимой. Как не замёрзнуть? 2024, November
Anonim
Temperatuuri andurite testimine - milline neist minu jaoks?
Temperatuuri andurite testimine - milline neist minu jaoks?

Üks esimesi andureid, mida füüsilise andmetöötluse uustulnukad soovivad proovida, on midagi temperatuuri mõõtmiseks. Neli kõige populaarsemat andurit on TMP36, millel on analoogväljund ja mis vajab analoog-digitaalmuundurit, DS18B20, mis kasutab ühejuhtmelist ühenduvust, DHT22 või veidi odavam DHT11, mis vajab lihtsalt digitaalset tihvti, aga ka annab niiskuse näidu ja lõpuks BME680, mis kasutab I2C -d (koos SPI -ga ka mõnel purunemisplaadil) ning annab temperatuuri, niiskuse, gaasi (VOC) ja atmosfäärirõhu, kuid maksab natuke rohkem.

Ma tahan näha, kui täpsed need on, ja avastada eeliseid või puudusi. Mul on juba täpne elavhõbeda termomeeter, mis jäi värvilisest fototrükist üle keemilise töötlemise päevil, et neid võrrelda. (Ärge kunagi visake midagi välja - vajate seda hiljem!)

Nende testide jaoks kasutan CircuitPythonit ja Adafruit Itsybitsy M4 arendusplaati. Kõigile seadmetele on saadaval sobivad draiverid.

Tarvikud

Minu esialgne nimekiri:

  • Itsybitsy M4 Express mikrokontroller
  • mikro -USB -kaabel - programmeerimiseks
  • TMP36
  • DS18B20
  • 4.7K oomi takisti
  • DHT22
  • BME680
  • Mitme meetri
  • Leivalaud või ribaplaat
  • Ühendustraat

Samm: ahelad

Ahelad
Ahelad

Oranžid juhtmed on 3,3 V

Mustad juhtmed on GND

Plaadi allosas on pinge mõõtmise katsepunktid. (3.3v, GND ja TMP36 analoogväljund)

Keskmised pistikupesad on vasakult paremale:

  • TMP36: 3.3v, analoogsignaal väljas, GND
  • DS18B20: GND, digitaalsignaali väljund, 3.3v
  • DHT22: 3.3v, signaal väljas, tühi, GND
  • BME680: 3.3v, SDA, SCL, tühi, GND

Tagumine pistik ühendamiseks IB M4E plaadiga, vasakult paremale

  • 3.3v
  • TMP36 - analoog pistikule A2
  • GND
  • DS18B20 digitaalne väljund pistikuni D3 - roheline
  • DHT22 digitaalne väljund pinnile D2 - kollane
  • SDA - valge
  • SCL - roosa

4,7 K oomi takisti on tõmbejõud signaalilt 3,3 V-le 0-juhtmelise ühenduse jaoks DS18B20-l.

Tahvli tagaküljel on 2 lõigatud rada:

Nii roosa kui ka valge juhtme vasakpoolse otsa all. (Kollase traadi all.)

2. samm: meetod

Meetod
Meetod

Kirjutan iga anduri jaoks lühikese skripti, et lugeda temperatuuri (ja muid esemeid, kui need on saadaval) mitu korda ja kontrollida temperatuuri minu elavhõbeda (Hg) termomeetri suhtes. Ma vaatan, kui lähedane on temperatuur elavhõbeda näitajaga ja kas näidud on ühtlased/järjepidevad.

Vaatan ka dokumentatsiooni, et näha, kas näidud vastavad oodatud täpsusele ja kas on võimalik midagi parandada.

3. samm: TMP36 - esialgne prooviversioon

TMP36 - esialgne katse
TMP36 - esialgne katse
TMP36 - esialgne katse
TMP36 - esialgne katse

Vasak jalg on 3.3v, parem jalg on GND ja keskjalg on analoogpinge, mis tähistab temperatuuri järgmise valemi abil. TempC = (millivolti - 500) / 10

Niisiis, 750 millivolti annab temperatuuri 25 ° C.

Tundub, et siin on paar probleemi. Temperatuur tavalisest elavhõbeda termomeetrist on tunduvalt madalam kui TMP36 -l ja näidud ei ole väga järjepidevad - esineb mõningast värinat või müra.

TMP36 andur väljastab temperatuuriga proportsionaalse pinge. A/D muundur peab selle enne temperatuuri arvutamist lugema. Loeme pinge multimeeteriga otse anduri keskjalalt ja võrdleme seda A/D tulemusega. Minu multimeetriga kesknäidu näit on 722 millivolti, palju madalam ja väga ühtlane.

Me saame proovida kahte asja. Asendage TMP36 potentsiomeeter ja reguleerige arvutuse pinge mikrokontrolleri tegeliku pinge järgi. Seejärel näeme, kas arvutatud pinge on lähemal ja kas müra/värinat vähendatakse.

Mõõdame tegelikku pinget, mida kasutatakse minu mikrokontrolleri ja A/D abil. Eeldati, et see on 3,3 V, kuid tegelikult on see ainult 3,275 V.

4. samm: potentsiomeetri asendamise tulemused

Potentsiomeetri asendamise tulemused
Potentsiomeetri asendamise tulemused

See on palju parem. Näidud on paari millivolti piires ja palju vähem müra. See viitab sellele, et müra on pigem TMP36 kui A/D. Arvesti näit on alati ühtlane - ei mingit värinat. (Mõõdik võib siluda närvilist väljundit.)

Üks võimalus olukorra parandamiseks võib olla keskmise näidu võtmine. Võtke kiiresti kümme näitu ja kasutage keskmist. Arvutan programmi muutmise ajal ka standardhälbe, et anda märku tulemuste levikust. Loen ka näitude arvu keskmise standardhälbe piires - mida kõrgem, seda parem.

5. samm: keskmised näidud ja tulemus

Keskmised näidud ja tulemus
Keskmised näidud ja tulemus

Müra on endiselt suur ja TMP36 näidud on endiselt kõrgemad kui elavhõbeda termomeetril. Müra vähendamiseks olen lisanud signaali ja GND vahele 100NF kondensaatori

Seejärel otsisin Internetist muid lahendusi ja leidsin need: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk soovitab signaali ja GND vahele lisada 47 kOomi takisti.

www.desert-home.com/2015/03/battery-operate… Kuigi see tüüp soovitab sorteerida 15 näitu järjekorda ja keskmistada keskmist 5.

Muutsin skripti ja vooluringi, et need soovitused lisada, ja lisasin elavhõbeda termomeetri näidu.

Lõpuks! Nüüd on meil seadme kirjelduse täpsusvahemikus püsivad näidud.

See oli üsna palju vaeva, et andur tööle saada, mille tootja täpsus on ainult:

Täpsus - kõrgeim (madalaim): ± 3 ° C (± 4 ° C) Need maksavad ainult umbes 1,50 dollarit (2 naela)

6. samm: DS18B20 - esialgne testimine

DS18B20 - esialgne testimine
DS18B20 - esialgne testimine

Olge väga ettevaatlik. See pakett näeb välja väga sarnane TMP36 -ga, kuid jalad on vastupidi, paremal on 3.3v ja vasakul GND. Väljuv signaal on keskel. Selle seadme tööks vajame signaali ja 3,3 v vahelist 4,7 k oomi takistit. See seade kasutab ühe juhtmega protokolli ja peame paar draiverit alla laadima Itsybitsy M4 Expressi lib kausta.

See maksab umbes $ 4 / £ 4 Tehnilised andmed:

  • Kasutatav temperatuurivahemik: -55 kuni 125 ° C (-67 ° F kuni +257 ° F)
  • Valitav eraldusvõime 9 kuni 12 bitti
  • Kasutab 1 -juhtmelist liidest - suhtlemiseks on vaja ainult ühte digitaalset tihvti
  • Unikaalne 64 -bitine ID põletati kiibiks
  • Mitu andurit saab jagada ühte tihvti
  • ± 0,5 ° C Täpsus vahemikus -10 ° C kuni +85 ° C
  • Temperatuuri piirangu häiresüsteem
  • Päringuaeg on alla 750 ms
  • Kasutatav võimsusega 3.0V kuni 5.5V

Selle anduri peamine probleem on see, et see kasutab Dallase 1-Wire liidest ja mitte kõigil mikrokontrolleritel pole sobivat draiverit. Meil on vedanud, Itsybitsy M4 Expressile on draiver olemas.

Samm: DS18B20 töötab hästi

DS18B20 töötab hästi
DS18B20 töötab hästi

See näitab suurepärast tulemust.

Stabiilne näitude komplekt ilma lisatöö ja arvutuste üldkuludeta. Näidud jäävad minu elavhõbeda termomeetriga võrreldes eeldatavasse täpsusvahemikku ± 0,5 ° C.

Samuti on olemas veekindel versioon hinnaga umbes 10 dollarit, mida olen varem sama edukalt kasutanud.

8. samm: DHT22 ja DHT11

DHT22 ja DHT11
DHT22 ja DHT11

DHT22 kasutab temperatuuri saamiseks termistorit ja maksab umbes 10 dollarit / 10 naela ning on väiksema DHT11 täpsem ja kallim vend. See kasutab ka ühe juhtmega liidest, kuid EI ühildu DS18B20-ga kasutatava Dallase protokolliga. See tunneb niiskust ja temperatuuri. Need seadmed vajavad mõnikord tõmbetakistit 3,3 v ja signaali tihvti vahel. See pakett on juba installitud.

  • Odav
  • 3 kuni 5 V toide ja I/O
  • 2,5 mA maksimaalne praegune kasutus konversiooni ajal (andmeid küsides)
  • Sobib 0–100% niiskusnäitudele 2–5% täpsusega
  • Sobib temperatuurinäitudele -40 kuni 80 ° C ± 0,5 ° C täpsusega
  • Proovivõtu sagedus ei ületa 0,5 Hz (üks kord 2 sekundi jooksul)
  • Korpuse suurus 27 mm x 59 mm x 13,5 mm (1,05 x 2,32 x 0,53 tolli)
  • 4 tihvti, vahe 0,1"
  • Kaal (ainult DHT22): 2,4 g

Võrreldes DHT11 -ga on see andur täpsem, täpsem ja töötab suuremas temperatuuri/niiskuse vahemikus, kuid see on suurem ja kallim.

9. samm: DHT22 tulemused

DHT22 Tulemused
DHT22 Tulemused

Need on suurepärased tulemused väga väikese vaevaga. Näidud on üsna stabiilsed ja oodatud tolerantsi piires. Niiskuse näit on boonus.

Näitu saate võtta ainult iga sekund.

10. samm: DTH11 test

DTH11 test
DTH11 test

Minu elavhõbeda termomeeter näitas 21,9 kraadi C. See on päris vana DHT11, mille sain vanast projektist ja niiskuse väärtus erineb mõne minuti tagusest DHT22 näidust. See maksab umbes 5 dollarit / 5 naela.

Selle kirjeldus sisaldab järgmist:

  • Sobib 20–80% niiskusnäitudele 5% täpsusega
  • Sobib 0–50 ° C temperatuurinäitudele ± 2 ° C täpsusega - väiksem kui DTH22

Tundub, et temperatuur on endiselt täpsusvahemikus, kuid ma ei usalda selle vana seadme niiskuse näitu.

11. samm: BME680

BME680
BME680

See andur sisaldab temperatuuri, niiskust, õhurõhku ja lenduvate orgaaniliste ühendite gaasituvastuse võimalusi ühes pakendis, kuid see on siin katsetatavatest anduritest kõige kallim. See maksab umbes 18,50 naela / 22 dollarit. Sarnane toode on ilma gaasiandurita, mis on natuke odavam.

See on viie standardi kullastandard. Temperatuuriandur on täpne ja sobivate draiveritega väga lihtne kasutada. See versioon kasutab I2C -d, kuid Adafruit'i murdeplaat võib kasutada ka SPI -d.

Nagu ka BME280 ja BMP280, saab see Boschi täpsusandur mõõta niiskust ± 3% täpsusega, õhurõhku absoluutse täpsusega ± 1 hPa ja temperatuuri ± 1,0 ° C täpsusega. Kuna rõhk muutub kõrgusega ja rõhumõõtmised on nii head, saate seda kasutada ka kõrgusemõõtjana ± 1 meetri või parema täpsusega!

Dokumentatsioon ütleb, et gaasianduri jaoks on vaja põlemisaega.

12. samm: kumba ma peaksin kasutama?

Millist neist peaksin kasutama?
Millist neist peaksin kasutama?
  • TMP36 on väga odav, väike ja populaarne, kuid üsna raske kasutada ja võib olla ebatäpne.
  • DS18B20 on väike, täpne, odav, väga lihtne kasutada ja sellel on veekindel versioon.
  • DTH22 näitab ka niiskust, on keskmise hinnaga ja seda on lihtne kasutada, kuid see võib olla liiga aeglane.
  • BME680 teeb palju rohkem kui teised, kuid on kallis.

Kui ma soovin ainult temperatuuri, kasutaksin DS18B20 ± 0,5 ° C täpsusega, kuid minu lemmik on BME680, kuna see teeb palju rohkem ja seda saab kasutada paljudes erinevates projektides.

Üks viimane mõte. Veenduge, et hoiate oma temperatuuriandurit mikroprotsessorist eemal. Mõned Raspberry Pi mütsid võimaldavad emaplaadil soojendada andurit, andes vale näidu.

13. samm: täiendavad mõtted ja katsetused

Edasised mõtted ja katsetused
Edasised mõtted ja katsetused

Tänan teid gulliverrr, ChristianC231 ja pgagen kommentaaride eest, mida olen seni teinud. Vabandan viivituse pärast, kuid olen olnud Iirimaal puhkusel, ilma et oleksin paar nädalat oma elektroonikakomplektile juurde pääsenud.

Siin on esimene katse näidata andureid koos töötamas.

Kirjutasin skripti, et lugeda andureid kordamööda ja printida temperatuuri väärtused umbes iga 20 sekundi tagant.

Panin komplekti tunniks külmkappi, et kõik maha jahtuda. Ühendasin selle arvutiga ja sain Mu tulemuste printimiseks. Seejärel kopeeriti väljund, muudeti.csv -failiks (komaga eraldatud muutujad) ja graafikud koostati Exceli tulemustest.

Komplekti külmkapist võtmisest kulus enne tulemuste registreerimist umbes kolm minutit, seega oli selle aja jooksul toimunud mõningane temperatuuri tõus. Ma kahtlustan, et neljal anduril on erinevad soojusvõimsused ja nad soojeneksid erineva kiirusega. Soojenemise kiirus väheneb eeldatavasti, kui andurid lähenevad toatemperatuurile. Panin selle elavhõbeda termomeetriga kirja 24,4 ° C.

Kõrged temperatuuride erinevused kõverate alguses võivad olla tingitud andurite erinevatest soojusvõimsustest. Mul on hea meel näha, et jooned lähenevad toatemperatuurile lähenedes lõpu poole. Olen mures, et TMP36 on alati palju kõrgem kui teised andurid.

Otsisin andmelehtedelt, et uuesti kontrollida nende seadmete kirjeldatud täpsust

TMP36

  • ± 2 ° C täpsus üle temperatuuri (tüüp)
  • ± 0,5 ° C lineaarsus (tüüp)

DS18B20

± 0,5 ° C Täpsus vahemikus -10 ° C kuni +85 ° C

DHT22

temperatuur ± 0,5 ° C

BME680

temperatuur ± 1,0 ° C täpsusega

14. samm: täielik graafik

Täisgraafik
Täisgraafik

Nüüd näete, et andurid lõpuks tasandusid ja leppisid temperatuuriga kokku enam -vähem kirjeldatud täpsuse piires. Kui 1,7 kraadi võetakse maha TMP36 väärtustest (eeldatakse ± 2 ° C), on kõik andurid omavahel hästi kokku lepitud.

Esimest korda seda katset tehes põhjustas DHT22 andur probleemi:

main.py väljund:

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

DHT lugemisviga: ("DHT -andurit ei leitud, kontrollige juhtmestikku",)

Traceback (viimane kõne viimati):

Fail "main.py", rida 64, tolli

Fail "main.py", rida 59, failis get_dht22

NameError: enne muutmist viidatud kohalik muutuja

Niisiis muutsin selle probleemiga toimetulemiseks skripti ja alustasin salvestamist uuesti:

DHT lugemisviga: ("DHT -andurit ei leitud, kontrollige juhtmestikku",)

25.9, 22.6, -999.0, 22.6

DHT lugemisviga: ("DHT -andurit ei leitud, kontrollige juhtmestikku",)

25.9, 22.8, -999.0, 22.7

25.9, 22.9, 22.1, 22.8

25.9, 22.9, 22.2, 22.9

DHT lugemisviga: ("DHT -andurit ei leitud, kontrollige juhtmestikku",)

27.1, 23.0, -999.0, 23.0

DHT lugemisviga: ("DHT -andurit ei leitud, kontrollige juhtmestikku",)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

DHT lugemisviga: ("DHT -andurit ei leitud, kontrollige juhtmestikku",)

28.4, 23.2, -999.0, 23.3

DHT lugemisviga: ("DHT -andurit ei leitud, kontrollige juhtmestikku",)

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

Teise jooksuga polnud mul probleeme. Adafruit'i dokumentatsioon hoiatab, et mõnikord jäävad DHT -andurid näidu vahele.

15. samm: järeldused

Järeldused
Järeldused

See kõver näitab selgelt, et mõnede andurite suurem soojusvõimsus suurendab nende reaktsiooniaega.

Kõik andurid registreerivad temperatuuri tõusu ja langust.

Nad ei ole väga kiiresti uuele temperatuurile soojenenud.

Need pole eriti täpsed. (Kas need on ilmajaama jaoks piisavalt head?)

Võimalik, et peate anduri kalibreerima usaldusväärse termomeetri suhtes.

Soovitan: