INHOUDSOPGAWE:

Toetse van temperatuursensors - watter een vir my ?: 15 stappe (met foto's)
Toetse van temperatuursensors - watter een vir my ?: 15 stappe (met foto's)

Video: Toetse van temperatuursensors - watter een vir my ?: 15 stappe (met foto's)

Video: Toetse van temperatuursensors - watter een vir my ?: 15 stappe (met foto's)
Video: Francois van Coke & Karen Zoid - Toe vind ek jou 2024, November
Anonim
Toetse van temperatuursensors - watter een vir my?
Toetse van temperatuursensors - watter een vir my?

Een van die eerste sensors wat nuwelinge in fisiese rekenaar wil probeer, is iets om temperatuur te meet. Vier van die gewildste sensors is die TMP36, wat 'n analoog uitset het en 'n analoog na digitale omskakelaar benodig, die DS18B20, wat eendraadverbinding gebruik, die DHT22, of die effens goedkoper DHT11, wat net 'n digitale pen benodig, maar ook bied 'n humiditeitsmeting, en laastens die BME680 wat I2C gebruik (met SPI ook op sommige uitbreekborde) en temperatuur, humiditeit, gas (VOC) en atmosferiese druk gee, maar 'n bietjie meer kos.

Ek wil sien hoe akkuraat dit is, en om enige voordele of nadele te ontdek. Ek besit reeds 'n akkurate kwiktermometer, wat oorgebly het van die kleurfoto -afdrukke in die dae van chemiese verwerking, om dit te vergelyk. (Moet nooit iets weggooi nie - u sal dit later nodig hê!)

Ek gaan vir hierdie toetse CircuitPython en 'n Adafruit Itsybitsy M4 ontwikkelingsbord gebruik. Geskikte bestuurders is beskikbaar vir al die toestelle.

Voorrade

My aanvanklike lys:

  • Itsybitsy M4 Express -mikrobeheerder
  • mikro -USB -kabel - vir programmering
  • TMP36
  • DS18B20
  • 4.7K Ohm weerstand
  • DHT22
  • BME680
  • Multi-meter
  • Broodbord of strookbord
  • Verbindingsdraad

Stap 1: stroombane

Kringe
Kringe

Die oranje drade is 3,3 V

Die swart drade is GND

Onderaan die bord is toetspunte vir die meting van spannings. (3.3v, GND en TMP36 analoog uitset)

Die middelste voetstukke is, van links na regs:

  • TMP36: 3.3v, analoog sein uit, GND
  • DS18B20: GND, digitale sein uit, 3.3v
  • DHT22: 3.3v, sein uit, leeg, GND
  • BME680: 3.3v, SDA, SCL, leeg, GND

Die agterste aansluiting, vir aansluiting op die IB M4E -bord, links na regs

  • 3.3v
  • TMP36 - analoog na pin A2
  • GND
  • DS18B20 digitaal na pin D3 - groen
  • DHT22 digitaal uit na pen D2 - geel
  • SDA - wit
  • SCL - pienk

Die weerstand van 4,7K Ohm is 'n pullup van sein na 3,3v vir 0-draadverbinding op die DS18B20.

Daar is 2 snitte op die agterkant van die bord:

Onder die linkerkant van beide die pienk en die wit drade. (Onder die geel draad.)

Stap 2: Metode

Metode
Metode

Vir elke sensor sal ek 'n kort skrif skryf om temperatuur (en ander items indien beskikbaar) 'n paar keer te lees en die temperatuur teen my kwik (Hg) termometer na te gaan. Ek sal kyk of die temperatuur vergelykbaar is met die kwiklesing en of die metings bestendig/konsekwent is.

Ek sal ook na die dokumentasie kyk om te sien of die lesings binne die verwagte akkuraatheid pas, en of daar iets is wat gedoen kan word om verbeterings aan te bring.

Stap 3: TMP36 - Aanvanklike toets

TMP36 - Aanvanklike proef
TMP36 - Aanvanklike proef
TMP36 - Aanvanklike proef
TMP36 - Aanvanklike proef

Die linkerbeen is 3.3v, die regterbeen is GND en die middelbeen is 'n analoog spanning wat die temperatuur voorstel deur die volgende formule te gebruik. TempC = (millivolts - 500) / 10

Dus, 750 millivolts gee 'n temperatuur van 25 C

Daar blyk 'n paar probleme hier te wees. Die temperatuur van die 'normale' kwiktermometer is baie laer as van die TMP36 en die metings is nie baie konsekwent nie - daar is 'n bietjie 'jitter' of geraas.

Die TMP36 -sensor stuur 'n spanning uit wat eweredig is aan die temperatuur. Dit moet deur die A/D -omskakelaar gelees word voordat die temperatuur bereken word. Kom ons lees die spanning direk vanaf die sensor-middelbeen met 'n multi-meter en vergelyk dit met die resultaat van die A/D. Die meting van die middelste been met my multi-meter is 722 millivolt, baie laer en baie bestendig.

Daar is twee dinge wat ons kan probeer. Vervang 'n potensiometer vir die TMP36 en pas die spanning in die berekening aan by die werklike spanning van die mikrobeheerder. Ons sal dan kyk of die berekende spanning nader is en of die geraas/jitter verminder word.

Kom ons meet die werklike spanning wat gebruik word met die mikrobeheerder en die A/D. Dit word aangeneem tot 3.3v, maar is eintlik net 3.275v.

Stap 4: Potensiometer -vervangingsresultate

Resultate vir vervanging van potensiometer
Resultate vir vervanging van potensiometer

Dit is baie beter. Die lesings is binne 'n paar millivolts met baie minder geraas. Dit dui daarop dat die geraas afkomstig is van die TMP36 eerder as die A/D. Die lesing op die meter is altyd bestendig - geen riller nie. (Die meter kan die jitterige uitset 'glad' maak.)

Een manier om die situasie te verbeter, is deur 'n gemiddelde lesing te neem. Neem vinnig tien lesings en gebruik die gemiddelde. Ek sal ook die standaardafwyking bereken terwyl ek die program verander, om 'n aanduiding te gee van die verspreiding van die resultate. Ek sal ook die aantal lesings binne 1 standaardafwyking van die gemiddelde tel - hoe hoër hoe beter.

Stap 5: Gemiddelde lesings en 'n resultaat

Gemiddelde lesings en 'n resultaat
Gemiddelde lesings en 'n resultaat

Daar is steeds baie geraas en die lesing van die TMP36 is steeds hoër as van die kwiktermometer. Om geraas te verminder, het ek 'n 100NF -kondensator tussen sein en GND ingesluit

Ek het daarna na ander oplossings op die internet gesoek en die volgende gevind: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk stel voor dat u 'n weerstand van 47 k Ohm tussen sein en GND insluit.

www.desert-home.com/2015/03/battery-operate … Terwyl hierdie man voorstel om 15 lesings in volgorde te rangskik en die middelpunt van die gemiddelde 5 te bereken.

Ek het die skrif en die kring verander om hierdie voorstelle in te sluit en het 'n lesing van die kwiktermometer ingesluit.

Uiteindelik! Nou het ons bestendige metings binne die akkuraatheidsbereik van die apparaatbeskrywing.

Dit was baie moeite om die sensor te laat werk, wat slegs die akkuraatheid van die vervaardiger het:

Akkuraatheid - Hoogste (Laagste): ± 3 ° C (± 4 ° C) Hulle kos slegs ongeveer $ 1,50 (£ 2)

Stap 6: DS18B20 - Aanvanklike toetsing

DS18B20 - Aanvanklike toetsing
DS18B20 - Aanvanklike toetsing

Wees baie versigtig. Hierdie pakket lyk baie soos die TMP36, maar die bene is andersom met 3.3v aan die regterkant en GND aan die linkerkant. Die sein uit is in die middel. Om hierdie toestel te laat werk, benodig ons 'n weerstand van 4.7 k Ohm tussen sein en 3.3v. Hierdie toestel gebruik die eendraad-protokol en ons moet 'n paar bestuurders in die lib-lêergids van die Itsybitsy M4 Express aflaai.

Dit kos ongeveer $ 4 / £ 4 Tegniese spesifikasies:

  • Bruikbare temperatuurbereik: -55 tot 125 ° C (-67 ° F tot +257 ° F)
  • Kies resolusie van 9 tot 12 bit
  • Gebruik 1 -Wire -koppelvlak - benodig slegs een digitale pen vir kommunikasie
  • 'N Unieke 64 -bit -ID wat in 'n chip gebrand is
  • Verskeie sensors kan een pen deel
  • ± 0,5 ° C Akkuraatheid van -10 ° C tot +85 ° C
  • Temperatuurgrens alarmstelsel
  • Navraag tyd is minder as 750 ms
  • Gebruikbaar met 3.0V tot 5.5V krag

Die grootste probleem met hierdie sensor is dat dit die Dallas 1-Wire-koppelvlak gebruik en nie alle mikrobeheerders het 'n geskikte bestuurder nie. Ons het geluk, daar is 'n bestuurder vir die Itsybitsy M4 Express.

Stap 7: DS18B20 werk goed

DS18B20 Werk goed
DS18B20 Werk goed

Dit toon 'n uitstekende resultaat.

'N Bestendige stel lesings sonder ekstra werk- en berekeningskoste. Die metings is binne die verwagte akkuraatheidsbereik van ± 0,5 ° C in vergelyking met my kwiktermometer.

Daar is ook 'n waterdigte weergawe van ongeveer $ 10 wat ek in die verlede met dieselfde sukses gebruik het.

Stap 8: DHT22 en DHT11

DHT22 en DHT11
DHT22 en DHT11

Die DHT22 gebruik 'n termistor om die temperatuur te verkry en kos ongeveer $ 10 / £ 10 en is die akkurater en duurder broer van die kleiner DHT11. Dit gebruik ook 'n eendraad-koppelvlak, maar is NIE versoenbaar met die Dallas-protokol wat met die DS18B20 gebruik word nie. Dit voel humiditeit sowel as temperatuur. Hierdie toestelle benodig soms 'n optrekweerstand tussen 3,3 v en die seinpen. Hierdie pakket het een reeds geïnstalleer.

  • Lae koste
  • 3 tot 5V krag en I/O
  • 2.5mA maksimum huidige gebruik tydens omskakeling (terwyl data aangevra word)
  • Goed vir 0-100% humiditeitsmetings met 2-5% akkuraatheid
  • Goed vir -40 tot 80 ° C temperatuurlesings ± 0,5 ° C akkuraatheid
  • Monstertempo van nie meer as 0,5 Hz (een keer elke 2 sekondes)
  • Liggaamsgrootte 27 mm x 59 mm x 13,5 mm (1,05 "x 2,32" x 0,53 ")
  • 4 penne, 0,1 "spasiëring
  • Gewig (net die DHT22): 2,4 g

In vergelyking met die DHT11, is hierdie sensor meer presies, akkurater en werk dit in 'n groter temperatuur/humiditeit, maar dit is groter en duurder.

Stap 9: DHT22 -resultate

DHT22 Resultate
DHT22 Resultate

Dit is uitstekende resultate met baie min moeite. Die lesings is redelik bestendig en binne die verwagte toleransie. Die humiditeitslesing is 'n bonus.

U kan slegs elke sekonde lesings doen.

Stap 10: DTH11 -toets

DTH11 toets
DTH11 toets

My kwiktermometer het 21,9 grade C getoon. Dit is 'n mooi ou DHT11 wat ek uit 'n ou projek gehaal het, en die humiditeitswaarde is baie anders as die DHT22 -lesings van 'n paar minute gelede. Dit kos ongeveer $ 5 / £ 5.

Die beskrywing daarvan sluit in:

  • Goed vir 20-80% humiditeitsmetings met 5% akkuraatheid
  • Goed vir 0-50 ° C temperatuurlesings ± 2 ° C akkuraatheid - minder as die DTH22

Die temperatuur blyk steeds in die akkuraatheidsgebied te wees, maar ek vertrou nie die humiditeitsmeting van hierdie ou toestel nie.

Stap 11: BME680

BME680
BME680

Hierdie sensor bevat temperatuur, humiditeit, barometriese druk en VOC gaswaarnemingsvermoëns in 'n enkele pakket, maar is die duurste van die sensors wat hier getoets word. Dit kos ongeveer £ 18,50 / $ 22. Daar is 'n soortgelyke produk sonder die gassensor, wat 'n bietjie goedkoper is.

Dit is 'n goue standaard sensor van die vyf. Die temperatuursensor is akkuraat en met geskikte bestuurders baie maklik om te gebruik. Hierdie weergawe gebruik I2C, maar die Adafruit -uitbreekbord kan ook SPI gebruik.

Net soos die BME280 en BMP280, kan hierdie presisiesensor van Bosch humiditeit met ± 3% akkuraatheid, barometriese druk met ± 1 hPa absolute akkuraatheid en temperatuur met ± 1.0 ° C akkuraatheid meet. Omdat die druk met hoogte verander en die drukmetings so goed is, kan u dit ook as 'n hoogtemeter gebruik met ± 1 meter of beter akkuraatheid!

Die dokumentasie sê dat dit 'n 'ingebraaide tyd' benodig vir die gassensor.

Stap 12: Watter een moet ek gebruik?

Watter een moet ek gebruik?
Watter een moet ek gebruik?
  • Die TMP36 is baie goedkoop, klein en gewild, maar redelik moeilik om te gebruik en is dalk onakkuraat.
  • Die DS18B20 is klein, akkuraat, goedkoop, baie maklik om te gebruik en het 'n waterdigte weergawe.
  • Die DTH22 dui ook op humiditeit, is redelik geprys en is maklik om te gebruik, maar kan te stadig wees.
  • Die BME680 doen baie meer as die ander, maar is duur.

As ek net temperatuur wil hê, gebruik ek die DS18B20 met 'n akkuraatheid van ± 0,5 ° C, maar my gunsteling is die BME680 omdat dit soveel meer doen en in 'n groot aantal verskillende projekte gebruik kan word.

'N Laaste gedagte. Hou u temperatuursensor weg van die mikroverwerker. Sommige Raspberry Pi -hoede laat hitte van die hoofbord toe om die sensor op te warm, wat 'n valse lesing gee.

Stap 13: Verdere gedagtes en eksperimentering

Verdere gedagtes en eksperimente
Verdere gedagtes en eksperimente

Dankie gulliverrr, ChristianC231 en pgagen vir u kommentaar oor wat ek tot dusver gedoen het. Ek is jammer vir die vertraging, maar ek was op vakansie in Ierland, sonder toegang tot my elektroniese kit vir 'n paar weke.

Hier is 'n eerste poging om te wys hoe die sensors saamwerk.

Ek het 'n skrif geskryf om die sensors om die beurt te lees en die temperatuurwaardes elke 20 sekondes af te druk.

Ek sit die kit vir 'n uur in die yskas om alles af te koel. Ek het dit by die rekenaar aangesluit en Mu laat die resultate afdruk. Die uitset is daarna gekopieer, omskep in 'n CSV -lêer (komma -geskeide veranderlikes) en grafieke trek uit die resultate in Excel.

Dit het ongeveer drie minute geneem voordat die kit uit die yskas gehaal is voordat die resultate aangeteken is, so 'n mate van temperatuurstyging het in hierdie interval plaasgevind. Ek vermoed dat die vier sensors verskillende termiese kapasiteite het en dus teen verskillende snelhede opwarm. Die verwarmingstempo sal na verwagting afneem namate die sensors kamertemperatuur nader. Ek het dit met my kwiktermometer as 24,4 ° C aangeteken.

Die groot temperatuurverskille aan die begin van die krommes kan te wyte wees aan die verskillende termiese kapasiteite van die sensors. Ek is bly om te sien dat die lyne teen die einde bymekaarkom wanneer hulle kamertemperatuur nader. Ek is bekommerd dat die TMP36 altyd baie hoër is as die ander sensors.

Ek het die gegewensblaaie opgesoek om weer die akkuraatheid van hierdie toestelle te beskryf

TMP36

  • ± 2 ° C akkuraatheid oor temperatuur (tip)
  • ± 0,5 ° C lineariteit (tip)

DS18B20

± 0,5 ° C Akkuraatheid van -10 ° C tot +85 ° C

DHT22

temperatuur ± 0,5 ° C

BME680

temperatuur met ± 1.0 ° C akkuraatheid

Stap 14: volledige grafiek

Volledige grafiek
Volledige grafiek

U kan nou sien dat die sensors uiteindelik gelyk is en min of meer ooreenstem met die temperatuur binne die beskrywende akkuraatheid daarvan. As 1,7 grade van die TMP36 -waardes afgehaal word (± 2 ° C word verwag), is daar goeie ooreenstemming tussen al die sensors.

Die eerste keer dat ek hierdie eksperiment uitgevoer het, het die DHT22 -sensor 'n probleem veroorsaak:

main.py uitset:

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 -leesfout: ('DHT -sensor nie gevind nie, kyk na bedrading',)

Terugvoer (laaste oproep laas):

Lêer "main.py", reël 64, in

Lêer "main.py", reël 59, in get_dht22

NameError: plaaslike veranderlike waarna verwys word voor opdrag

Dus het ek die script aangepas om hierdie probleem die hoof te bied en die opname weer begin:

DHT -leesfout: ('DHT -sensor nie gevind nie, kyk na bedrading',)

25.9, 22.6, -999.0, 22.6

DHT -leesfout: ('DHT -sensor nie gevind nie, kyk na bedrading',)

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 -leesfout: ('DHT -sensor nie gevind nie, kyk na bedrading',)

27.1, 23.0, -999.0, 23.0

DHT -leesfout: ('DHT -sensor nie gevind nie, kyk na bedrading',)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

DHT -leesfout: ('DHT -sensor nie gevind nie, kyk na bedrading',)

28.4, 23.2, -999.0, 23.3

DHT -leesfout: ('DHT -sensor nie gevind nie, kyk na bedrading',)

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

Ek het geen probleem gehad met die tweede lopie nie. Die Adafruit -dokumentasie waarsku wel dat die DHT -sensors soms lesings misloop.

Stap 15: Gevolgtrekkings

Gevolgtrekkings
Gevolgtrekkings

Hierdie kromme toon duidelik aan dat die hoër termiese kapasiteit van sommige sensors hul reaksietyd verhoog.

Al die sensors registreer temperature wat styg en daal.

Hulle is nie baie vinnig besig om 'n nuwe temperatuur te bereik nie.

Hulle is nie baie akkuraat nie. (Is hulle goed genoeg vir 'n weerstasie?)

Miskien moet u u sensor teen 'n betroubare termometer kalibreer.

Aanbeveel: