INHOUDSOPGAWE:
- Voorrade
- Stap 1: stroombane
- Stap 2: Metode
- Stap 3: TMP36 - Aanvanklike toets
- Stap 4: Potensiometer -vervangingsresultate
- Stap 5: Gemiddelde lesings en 'n resultaat
- Stap 6: DS18B20 - Aanvanklike toetsing
- Stap 7: DS18B20 werk goed
- Stap 8: DHT22 en DHT11
- Stap 9: DHT22 -resultate
- Stap 10: DTH11 -toets
- Stap 11: BME680
- Stap 12: Watter een moet ek gebruik?
- Stap 13: Verdere gedagtes en eksperimentering
- Stap 14: volledige grafiek
- Stap 15: Gevolgtrekkings
Video: Toetse van temperatuursensors - watter een vir my ?: 15 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
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
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
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
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
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
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
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
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
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
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
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
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?
- 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
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
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
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:
DIY Lab Bench Power Supply [Bou + toetse]: 16 stappe (met foto's)
DIY Lab Bench Power Supply [Build + Tests]: In hierdie instruksionele / video sal ek jou wys hoe jy jou eie veranderlike laboratoriumbank kan voorsien wat 30V 6A 180W kan lewer (10A MAX onder die kraglimiet). Minimale stroomlimiet 250-300mA.Ook sien u akkuraatheid, las, beskerming en
Data oor draadlose trillings- en temperatuursensors na MySQL met behulp van Node-RED: 40 stappe
Data oor draadlose trillings- en temperatuursensors aan MySQL met behulp van Node-RED: Bekendstelling van NCD se langafstand IoT industriële draadlose vibrasie- en temperatuursensor van NCD, met 'n bereik van tot 2 myl met die gebruik van 'n draadlose netwerkstruktuur. Hierdie toestel bevat 'n presiese 16-bis vibrasie- en temperatuursensor, en
Stuur data oor draadlose trillings- en temperatuursensors na Excel met behulp van Node-RED: 25 stappe
Stuur data oor draadlose trillings- en temperatuursensors na Excel met behulp van Node-RED: Bekendstelling van NCD se langafstand IoT Industrial draadlose vibrasie- en temperatuursensor, met 'n bereik van tot 2 myl, die gebruik van 'n draadlose netwerkstruktuur. Hierdie toestel bevat 'n presiese 16-bis vibrasie- en temperatuursensor, en
Magiese onderstel toetse: 7 stappe (met foto's)
Magiese onderstel toetse: dit is meer as 'n instruksionele oorsig van wat ek uit hierdie onderstel geleer het, alhoewel dit maklik is om te monteer en daar reeds bedieningsborde is, is daar ervarings wat ek graag wil deel as u u ROV wil maak krap, nou lees ek
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek