Sisällysluettelo:

Lämpötila -anturien testaus - mikä minulle?: 15 vaihetta (kuvilla)
Lämpötila -anturien testaus - mikä minulle?: 15 vaihetta (kuvilla)

Video: Lämpötila -anturien testaus - mikä minulle?: 15 vaihetta (kuvilla)

Video: Lämpötila -anturien testaus - mikä minulle?: 15 vaihetta (kuvilla)
Video: Älä näpistä! 2024, Joulukuu
Anonim
Lämpötila -anturien testaus - mikä minulle?
Lämpötila -anturien testaus - mikä minulle?

Yksi ensimmäisistä antureista, joita fyysisen laskennan uudet tulokkaat haluavat kokeilla, on jotain lämpötilan mittaamista. Neljä suosituimmista antureista on TMP36, jossa on analoginen lähtö ja joka tarvitsee analogia-digitaalimuuntimen, DS18B20, joka käyttää yksijohtimista, DHT22 tai hieman halvempi DHT11, joka tarvitsee vain digitaalisen nastan, mutta myös tarjoaa kosteuslukeman ja lopuksi BME680, joka käyttää I2C: tä (SPI: n kanssa myös joissakin murtolevyissä) ja antaa lämpötilan, kosteuden, kaasun (VOC) ja ilmanpaineen, mutta maksaa hieman enemmän.

Haluan nähdä, kuinka tarkkoja ne ovat, ja löytää etuja tai haittoja. Omistan jo tarkan elohopealämpömittarin, joka on jäänyt värillisestä valokuvapainatuksesta jo kemiallisen käsittelyn päivinä, vertaamaan niitä. (Älä koskaan heitä mitään ulos - tarvitset sitä myöhemmin!)

Aion käyttää CircuitPythonia ja Adafruit Itsybitsy M4 -kehityskorttia näihin testeihin. Sopivat ohjaimet ovat saatavilla kaikille laitteille.

Tarvikkeet

Alkuperäinen listani:

  • Itsybitsy M4 Express -mikro -ohjain
  • mikro -USB -kaapeli - ohjelmointiin
  • TMP36
  • DS18B20
  • 4,7 K ohmin vastus
  • DHT22
  • BME680
  • Monimittari
  • Leipälauta tai nauhalevy
  • Liitäntäjohto

Vaihe 1: Piirit

Piirit
Piirit

Oranssit johdot ovat 3,3 V

Mustat johdot ovat GND

Levyn alaosassa on testauspisteitä jännitteiden mittaamiseen. (3.3v, GND ja TMP36 analoginen lähtö)

Keskipistokkeet ovat vasemmalta oikealle:

  • TMP36: 3.3v, analoginen signaalilähtö, GND
  • DS18B20: GND, digitaalinen signaalilähtö, 3.3v
  • DHT22: 3.3v, signaali ulos, tyhjä, GND
  • BME680: 3.3v, SDA, SCL, tyhjä, GND

Takaliitin IB M4E -korttiin liittämistä varten, vasemmalta oikealle

  • 3.3v
  • TMP36 - analoginen ulos nastaan A2
  • GND
  • DS18B20 digitaalilähtö nastaan D3 - vihreä
  • DHT22 digitaalilähtö nastaan D2 - keltainen
  • SDA - valkoinen
  • SCL - vaaleanpunainen

4,7 K ohmin vastus on signaalin vetäminen 3,3 volttiin 0-johdinliitännällä DS18B20: ssa.

Taulun takana on 2 leikkausraitaa:

Sekä vaaleanpunaisen että valkoisen langan vasemman pään alapuolella. (Keltaisen langan alla.)

Vaihe 2: Menetelmä

Menetelmä
Menetelmä

Kirjoitan jokaiselle anturille lyhyen käsikirjoituksen lämpötilan (ja muiden kohteiden, jos saatavilla) lukemiseksi useita kertoja ja tarkistan lämpötilan elohopeamittarini (Hg) suhteen. Aion nähdä, kuinka läheisesti lämpötila verrataan elohopean lukemaan ja ovatko lukemat tasaisia/yhdenmukaisia.

Tarkastelen myös asiakirjoja nähdäkseni, vastaavatko lukemat odotettua tarkkuutta ja onko mitään tehtävissä parannusten tekemiseksi.

Vaihe 3: TMP36 - Ensimmäinen kokeilu

TMP36 - Ensimmäinen kokeilu
TMP36 - Ensimmäinen kokeilu
TMP36 - Ensimmäinen kokeilu
TMP36 - Ensimmäinen kokeilu

Vasen jalka on 3.3v, oikea jalka on GND ja keskijalka on analoginen jännite, joka edustaa lämpötilaa seuraavan kaavan avulla. TempC = (millivoltteja - 500) / 10

750 millivolttia antaa siis 25 asteen lämpötilan

Tässä näyttää olevan pari ongelmaa. "Normaalin", elohopealämpömittarin lämpötila on paljon alhaisempi kuin TMP36: sta, ja lukemat eivät ole kovin yhdenmukaisia - on jonkin verran värinää tai kohinaa.

TMP36 -anturi lähettää jännitteeseen suhteutetun jännitteen. A/D -muuntimen on luettava tämä ennen lämpötilan laskemista. Luetaan jännite suoraan anturin keskiosasta monimetrillä ja verrataan sitä A/D: n tulokseen. Lukema keskijalkasta monimittarillani on 722 millivolttia, paljon pienempi ja erittäin tasainen.

Voimme kokeilla kahta asiaa. Korvaa TMP36: n potentiometri ja säädä laskennassa oleva jännite mikrokontrollerin todellisen jännitteen mukaan. Sitten näemme, onko laskettu jännite lähempänä ja onko kohina/tärinä vähentynyt.

Mittaamme todellista jännitettä, jota käytän mikro- ja A/D -laitteessani. Tämän oletettiin olevan 3,3 V, mutta itse asiassa vain 3,275 V.

Vaihe 4: Potentiometrin vaihtotulokset

Potentiometrin vaihtotulokset
Potentiometrin vaihtotulokset

Tämä on paljon parempi. Lukemat ovat muutaman millivoltin sisällä, ja melua on paljon vähemmän. Tämä viittaa siihen, että melu on peräisin TMP36: sta eikä A/D: stä. Mittarin lukema on aina tasainen - ei tärinää. (Mittari saattaa tasoittaa tärinää.)

Yksi tapa parantaa tilannetta voi olla keskiarvon lukeminen. Ota kymmenen lukemaa nopeasti ja käytä keskiarvoa. Lasken myös keskihajonnan, kun vaihdan ohjelmaa, antaakseni viitteitä tulosten leviämisestä. Lasken myös lukemien lukumäärän yhden keskihajonnan sisällä - mitä korkeampi, sitä parempi.

Vaihe 5: Keskimääräiset lukemat ja tulos

Keskimääräiset lukemat ja tulos
Keskimääräiset lukemat ja tulos

Melu on edelleen suuri, ja TMP36: n lukema on edelleen korkeampi kuin elohopealämpömittarin. Kohinan vähentämiseksi olen sisällyttänyt 100NF -kondensaattorin signaalin ja GND: n väliin

Sitten etsin muita ratkaisuja Internetistä ja löysin nämä: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk ehdottaa 47 k ohmin vastuksen sisällyttämistä signaalin ja GND: n väliin.

www.desert-home.com/2015/03/battery-operate… Vaikka tämä kaveri ehdottaa 15 lukeman järjestämistä järjestykseen ja keskiarvon laskemista keskelle 5.

Muokkasin käsikirjoitusta ja piiriä sisältämään nämä ehdotukset ja sisällytin lukeman elohopealämpömittarista.

Viimeinkin! Nyt lukemat ovat vakaita laitteen kuvauksen tarkkuusalueella.

Tämä oli melko paljon vaivaa saadaksemme anturin toimimaan, sillä sen valmistajan tarkkuus on vain:

Tarkkuus - Korkein (alin): ± 3 ° C (± 4 ° C) Ne maksavat vain noin 1,50 dollaria (2 €)

Vaihe 6: DS18B20 - Alkutestaus

DS18B20 - Alkutestaus
DS18B20 - Alkutestaus

Ole hyvin varovainen. Tämä paketti näyttää hyvin samanlaiselta kuin TMP36, mutta jalat ovat päinvastoin: 3.3v oikealla ja GND vasemmalla. Signaali ulos on keskellä. Jotta tämä laite toimisi, tarvitsemme 4,7 k ohmin vastuksen signaalin ja 3,3 voltin välillä. Tämä laite käyttää yksijohtimista protokollaa, ja meidän on ladattava pari ohjainta Itsybitsy M4 Expressin lib-kansioon.

Tämä maksaa noin $ 4 / £ 4 Tekniset tiedot:

  • Käyttölämpötila -alue: -55 -125 ° C (-67 ° F - +257 ° F)
  • 9-12 bitin valittavissa oleva resoluutio
  • Käyttää 1 -johdinliitäntää - vaatii vain yhden digitaalisen nastan viestintään
  • Ainutlaatuinen 64 -bittinen tunnus poltettiin siruksi
  • Useat anturit voivat jakaa yhden nastan
  • ± 0,5 ° C Tarkkuus -10 ° C - +85 ° C
  • Lämpötilarajahälytin
  • Kyselyaika on alle 750 ms
  • Voidaan käyttää 3,0 V - 5,5 V teholla

Tämän anturin suurin ongelma on se, että se käyttää Dallas 1-Wire -liitäntää eikä kaikilla mikro-ohjaimilla ole sopivaa ohjainta. Meillä on onnea, Itsybitsy M4 Expressille on kuljettaja.

Vaihe 7: DS18B20 toimii hyvin

DS18B20 toimii hyvin
DS18B20 toimii hyvin

Tämä osoittaa loistavan tuloksen.

Tasainen lukumäärä ilman ylimääräistä työtä ja laskutuskuluja. Lukemat ovat odotetulla ± 0,5 ° C: n tarkkuusalueella verrattuna elohopealämpömittariini.

Siellä on myös vedenpitävä versio noin 10 dollaria, jota olen käyttänyt aiemmin yhtä menestyksekkäästi.

Vaihe 8: DHT22 ja DHT11

DHT22 ja DHT11
DHT22 ja DHT11

DHT22 käyttää termistoria lämpötilan mittaamiseen ja maksaa noin 10 dollaria / 10 puntaa ja on pienemmän DHT11: n tarkempi ja kalliimpi veli. Se käyttää myös yksijohdinta, mutta EI ole yhteensopiva DS18B20: n kanssa käytettävän Dallas-protokollan kanssa. Se tunnistaa kosteuden ja lämpötilan. Nämä laitteet tarvitsevat joskus vetovastus 3,3 V: n ja signaalitapin välillä. Tämä paketti on jo asennettu.

  • Halpa
  • 3-5 V: n virta ja I/O
  • Enintään 2,5 mA nykyinen käyttö muuntamisen aikana (tietoja pyydettäessä)
  • Sopii 0-100% kosteuslukemiin 2-5% tarkkuudella
  • Sopii -40-80 ° C: n lämpötilalukemille ± 0,5 ° C: n tarkkuudella
  • Näytteenottotaajuus enintään 0,5 Hz (2 sekunnin välein)
  • Rungon koko 27 mm x 59 mm x 13,5 mm (1,05 x 2,32 x 0,53 tuumaa)
  • 4 nastaa, 0,1 "väli
  • Paino (vain DHT22): 2,4 g

Verrattuna DHT11: een tämä anturi on tarkempi, tarkempi ja toimii laajemmalla lämpötila-/kosteusalueella, mutta se on suurempi ja kalliimpi.

Vaihe 9: DHT22 -tulokset

DHT22 Tulokset
DHT22 Tulokset

Nämä ovat erinomaisia tuloksia hyvin pienellä vaivalla. Lukemat ovat melko vakaita ja odotetun toleranssin rajoissa. Kosteuslukema on bonus.

Voit ottaa lukemia vain joka sekunti.

Vaihe 10: DTH11 -testi

DTH11 -testi
DTH11 -testi

Elohopealämpömittarini näytti 21,9 astetta C. Tämä on melko vanha DHT11, jonka hain vanhasta projektista ja kosteusarvo on hyvin erilainen kuin DHT22 -lukemat muutama minuutti sitten. Se maksaa noin 5 dollaria / 5 puntaa.

Sen kuvaus sisältää:

  • Sopii 20-80% kosteuslukemiin 5% tarkkuudella
  • Sopii 0-50 ° C: n lämpötilalukemiin ± 2 ° C: n tarkkuus - vähemmän kuin DTH22

Lämpötila näyttää olevan edelleen tarkkuusalueella, mutta en luota tämän vanhan laitteen kosteuslukemiin.

Vaihe 11: BME680

BME680
BME680

Tämä anturi sisältää lämpötilan, kosteuden, ilmanpaineen ja VOC -kaasun tunnistusominaisuudet yhdessä paketissa, mutta se on kallein testattavista antureista. Se maksaa noin 18,50 puntaa / 22 dollaria. On samanlainen tuote ilman kaasuanturia, joka on hieman halvempi.

Tämä on kultaisen standardin anturi viidestä. Lämpötila -anturi on tarkka ja sopivilla ohjaimilla erittäin helppokäyttöinen. Tämä versio käyttää I2C: tä, mutta Adafruit -katkaisulauta voi käyttää myös SPI: tä.

Kuten BME280 ja BMP280, tämä Boschin tarkkuusanturi voi mitata kosteutta ± 3%: n tarkkuudella, ilmanpaineen ± 1 hPa: n absoluuttisella tarkkuudella ja lämpötilan ± 1,0 ° C: n tarkkuudella. Koska paine muuttuu korkeuden mukaan ja painemittaukset ovat niin hyviä, voit käyttää sitä myös korkeusmittarina ± 1 metrin tai tarkemmin!

Dokumentaation mukaan se vaatii kaasuanturille "palamisaikaa".

Vaihe 12: Kumpaa minun pitäisi käyttää?

Kumpaa minun pitäisi käyttää?
Kumpaa minun pitäisi käyttää?
  • TMP36 on erittäin halpa, pieni ja suosittu, mutta melko vaikea käyttää ja saattaa olla epätarkka.
  • DS18B20 on pieni, tarkka, halpa, erittäin helppokäyttöinen ja siinä on vedenpitävä versio.
  • DTH22 osoittaa myös kosteutta, on kohtuuhintainen ja helppokäyttöinen, mutta voi olla liian hidas.
  • BME680 tekee paljon enemmän kuin muut, mutta on kallis.

Jos haluan vain lämpötilan, käyttäisin DS18B20 ± 0,5 ° C: n tarkkuudella, mutta suosikkini on BME680, koska se tekee paljon enemmän ja sitä voidaan käyttää monissa eri projekteissa.

Yksi viimeinen ajatus. Pidä lämpötila -anturi kaukana mikroprosessorista. Jotkut Raspberry Pi HATit antavat emolevyn lämmittää anturia, mikä antaa väärän lukeman.

Vaihe 13: Lisää ajatuksia ja kokeiluja

Lisää ajatuksia ja kokeiluja
Lisää ajatuksia ja kokeiluja

Kiitos gulliverrr, ChristianC231 ja pgagen kommenteistanne siitä, mitä olen tähän mennessä tehnyt. Olen pahoillani viivästymisestä, mutta olen ollut lomalla Irlannissa ilman pääsyä elektroniikkapakettini pariin viikkoon.

Tässä on ensimmäinen yritys näyttää anturit yhdessä.

Kirjoitin käsikirjoituksen lukemaan anturit vuorotellen ja tulostamaan lämpötila -arvot noin 20 sekunnin välein.

Laitoin paketin jääkaappiin tunniksi, jotta kaikki jäähtyy. Liitin sen tietokoneeseen ja sain Mu tulostamaan tulokset. Tulos kopioitiin, muutettiin.csv -tiedostoksi (pilkuilla erotetut muuttujat) ja kaaviot piirtyvät Excelin tuloksista.

Paketin ottamisesta jääkaapista kului noin kolme minuuttia, ennen kuin tulokset kirjattiin, joten lämpötila nousi jonkin verran tällä aikavälillä. Epäilen, että neljällä anturilla on erilaiset lämpökapasiteetit, joten ne lämpenevät eri nopeuksilla. Lämpenemisen odotetaan hidastuvan, kun anturit lähestyvät huoneenlämpötilaa. Tallensin tämän 24,4 ° C: een elohopealämpömittarilla.

Laajat lämpötilaerot käyrien alussa voivat johtua antureiden erilaisista lämpökapasiteeteista. Olen iloinen nähdessäni, että linjat lähestyvät loppua kohti, kun ne lähestyvät huoneenlämpötilaa. Olen huolissani siitä, että TMP36 on aina paljon korkeampi kuin muut anturit.

Katsoin tietolomakkeita tarkistaakseni uudelleen näiden laitteiden kuvatun tarkkuuden

TMP36

  • ± 2 ° C tarkkuus yli lämpötilan (typ)
  • ± 0,5 ° C lineaarisuus (typ)

DS18B20

± 0,5 ° C Tarkkuus -10 ° C - +85 ° C

DHT22

lämpötila ± 0,5 ° C

BME680

lämpötila ± 1,0 ° C: n tarkkuudella

Vaihe 14: Koko kuvaaja

Koko kaavio
Koko kaavio

Voit nyt nähdä, että anturit tasoittuivat lopulta ja sopivat lämpötilasta enemmän tai vähemmän kuvatun tarkkuuden rajoissa. Jos TMP36 -arvoista poistetaan 1,7 astetta (odotettavissa ± 2 ° C), kaikki anturit sopivat hyvin yhteen.

Kun tein tämän kokeilun ensimmäisen kerran, DHT22 -anturi aiheutti ongelman:

main.py -lähtö:

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 -lukuvirhe: ('DHT -anturia ei löydy, tarkista johdotus',)

Traceback (viimeisin puhelu viimeksi):

Tiedosto "main.py", rivi 64, in

Tiedosto "main.py", rivi 59, get_dht22 -tiedostossa

NameError: paikallinen muuttuja, johon viitataan ennen määritystä

Joten muokkasin komentosarjaa selviytymään tästä ongelmasta ja aloitin tallennuksen uudelleen:

DHT -lukuvirhe: ('DHT -anturia ei löydy, tarkista johdotus',)

25.9, 22.6, -999.0, 22.6

DHT -lukuvirhe: ('DHT -anturia ei löydy, tarkista johdotus',)

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 -lukuvirhe: ('DHT -anturia ei löydy, tarkista johdotus',)

27.1, 23.0, -999.0, 23.0

DHT -lukuvirhe: ('DHT -anturia ei löydy, tarkista johdotus',)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

DHT -lukuvirhe: ('DHT -anturia ei löydy, tarkista johdotus',)

28.4, 23.2, -999.0, 23.3

DHT -lukuvirhe: ('DHT -anturia ei löydy, tarkista johdotus',)

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

Minulla ei ollut ongelmia toisen kierroksen kanssa. Adafruit -dokumentaatiossa varoitetaan, että joskus DHT -anturit menettävät lukemat.

Vaihe 15: Johtopäätökset

Päätelmät
Päätelmät

Tämä käyrä osoittaa selvästi, että joidenkin antureiden suurempi lämpökapasiteetti lisää niiden reaktioaikaa.

Kaikki anturit tallentavat lämpötilan nousun ja laskun.

Ne eivät ole kovin nopeasti asettuneet uuteen lämpötilaan.

Ne eivät ole kovin tarkkoja. (Ovatko ne tarpeeksi hyviä sääasemalle?)

Sinun on ehkä kalibroitava anturi luotettua lämpömittaria vasten.

Suositeltava: