Sisukord:
- Tarvikud
- Samm: ahelad
- 2. samm: meetod
- 3. samm: TMP36 - esialgne prooviversioon
- 4. samm: potentsiomeetri asendamise tulemused
- 5. samm: keskmised näidud ja tulemus
- 6. samm: DS18B20 - esialgne testimine
- Samm: DS18B20 töötab hästi
- 8. samm: DHT22 ja DHT11
- 9. samm: DHT22 tulemused
- 10. samm: DTH11 test
- 11. samm: BME680
- 12. samm: kumba ma peaksin kasutama?
- 13. samm: täiendavad mõtted ja katsetused
- 14. samm: täielik graafik
- 15. samm: järeldused
Video: Temperatuuri andurite testimine - milline neist minu jaoks?: 15 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Ü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
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
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
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
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
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
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
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 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
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
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
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?
- 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
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
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
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:
MAX7219 LED -punktmaatriksi kokkupanek ja testimine: 6 sammu (piltidega)
MAX7219 LED-punktmaatriksi kokkupanek ja testimine: punkt-maatriksekraan on ekraaniseade, mis sisaldab maatriksina joondatud valgusdioode. Seda punktmaatriksi kuvarit kasutatakse rakendustes, kus on vaja sümbolit, graafikat, tähemärke, tähestikku ja numbrit kuvatakse koos
Temperatuuri, vihmavee ja vibratsiooni andurite kasutamine Arduino raudteede kaitsmiseks: 8 sammu (koos piltidega)
Temperatuuri-, vihmavee- ja vibratsiooniandurite kasutamine raudteede kaitsmiseks Arduino's: tänapäeva ühiskonnas tähendab rongireisijate arvu suurenemine seda, et raudtee-ettevõtted peavad nõudlusega sammu pidamiseks tegema rohkem võrkude optimeerimiseks. Selles projektis näitame väikeses mahus, kuidas temperatuuri, vihmavee ja vibratsiooni andurid
Brainwave arvutiliidese prototüüp TGAM stardikomplekt Jootmine ja testimine: 7 sammu (piltidega)
Brainwave'i arvutiliidese prototüüp TGAM stardikomplekt Jootmine ja testimine: Viimase sajandi neuroteaduse uuringud on oluliselt suurendanud meie teadmisi ajust ja eriti ajus vallandavate neuronite elektrilistest signaalidest. Nende elektrisignaalide mustreid ja sagedusi saab mõõta
Epee kehajuhtme testimine ja parandamine: 9 sammu (piltidega)
Epee keha nööri testimine ja parandamine: kaasaegse, olümpia stiilis vehklemise spordialal tehakse punktiarvestus elektriliselt. Et elektriline signaal liiguks teie relvast punktiarvutisse, peab signaal liikuma: läbi relva juhtme (välja arvatud mõõk) varrukast üles ja alla
Minu klaviatuur Minu käed: 8 sammu (piltidega)
Minu klaviatuur Minu käed: kasutasin uhiuut Epilogi laserlõikurit, mille Instructables hiljuti jõudis laseriga oma käte kujutise sülearvuti klaviatuurile söövitada … jäädavalt. Nüüd kaotab see garantii DIY stiilis! Olen laseriga söövitanud rohkem sülearvuteid kui enamik, sest ma aitan