Turinys:
- Prekės
- 1 žingsnis: grandinės
- 2 žingsnis: metodas
- 3 žingsnis: TMP36 - pradinis bandymas
- 4 žingsnis: potenciometro pakeitimo rezultatai
- 5 žingsnis: vidutiniai rodmenys ir rezultatas
- 6 žingsnis: DS18B20 - pradinis bandymas
- 7 žingsnis: DS18B20 veikia gerai
- 8 žingsnis: DHT22 ir DHT11
- 9 žingsnis: DHT22 rezultatai
- 10 žingsnis: DTH11 testas
- 11 veiksmas: BME680
- 12 žingsnis: kurį turėčiau naudoti?
- 13 žingsnis: tolesnės mintys ir eksperimentai
- 14 žingsnis: visa diagrama
- 15 žingsnis: Išvados
Video: Temperatūros jutiklių bandymas - kuris man?: 15 žingsnių (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Vienas iš pirmųjų jutiklių, kuriuos nori išbandyti fizinio skaičiavimo naujokai, yra tai, kas matuoja temperatūrą. Keturi populiariausi jutikliai yra „TMP36“, turintis analoginį išėjimą ir kuriam reikalingas analoginis-skaitmeninis keitiklis, „DS18B20“, kuris naudoja vieno laido jungtį, „DHT22“arba šiek tiek pigesnis „DHT11“, kuriam reikia tik skaitmeninio kaiščio. pateikiamas drėgmės rodiklis, o galiausiai BME680, kuris naudoja I2C (su SPI taip pat kai kuriose pertraukimo plokštėse) ir suteikia temperatūrą, drėgmę, dujas (LOJ) ir atmosferos slėgį, tačiau kainuoja šiek tiek daugiau.
Noriu pamatyti, kokie tikslūs jie yra, ir atrasti visus privalumus ar trūkumus. Aš jau turiu tikslų gyvsidabrio termometrą, likusį nuo spalvoto fotografinio spausdinimo dar cheminio apdorojimo laikais, kad galėčiau juos palyginti. (Niekada nieko neišmeskite - jums to prireiks vėliau!)
Šiems bandymams naudosiu „CircuitPython“ir „Adafruit Itsybitsy M4“kūrimo plokštę. Visiems įrenginiams yra tinkamos tvarkyklės.
Prekės
Mano pradinis sąrašas:
- Itybitsy M4 Express mikrovaldiklis
- mikro USB kabelis - programavimui
- TMP36
- DS18B20
- 4,7 K omų rezistorius
- DHT22
- BME680
- Kelių metrų
- Duonos lenta arba juostelių lenta
- Jungiamasis laidas
1 žingsnis: grandinės
Oranžiniai laidai yra 3,3 V
Juodi laidai yra GND
Lentos apačioje yra įtampos matavimo bandymo taškai. (3.3v, GND ir TMP36 analoginis išėjimas)
Centriniai lizdai yra iš kairės į dešinę:
- TMP36: 3.3v, analoginis signalas, GND
- DS18B20: GND, skaitmeninis signalas, 3.3v
- DHT22: 3.3v, signalas išeina, tuščias, GND
- BME680: 3.3v, SDA, SCL, tuščias, GND
Galinė jungtis, skirta prijungti prie IB M4E plokštės, iš kairės į dešinę
- 3.3v
- TMP36 - analogas iki kaiščio A2
- GND
- DS18B20 skaitmeninė išvestis į D3 kaištį - žalia
- DHT22 skaitmeninė išvestis į D2 kaištį - geltona
- SDA - balta
- SCL - rožinė
4,7 K omų rezistorius yra traukimas nuo signalo iki 3,3 V, norint prijungti 0 laidų DS18B20.
Lentos gale yra 2 supjaustyti takeliai:
Žemiau rausvos ir baltos vielos kairysis galas. (Po geltona viela.)
2 žingsnis: metodas
Kiekvienam jutikliui parašysiu trumpą scenarijų, kaip kelis kartus perskaityti temperatūrą (ir kitus elementus, jei yra) ir patikrinti temperatūrą, palyginti su mano gyvsidabrio (Hg) termometru. Aš stebėsiu, kaip temperatūra yra lygi gyvsidabrio rodmenims ir ar rodmenys yra pastovūs/nuoseklūs.
Taip pat peržiūrėsiu dokumentus, norėdamas pamatyti, ar rodmenys atitinka numatytą tikslumą ir ar galima ką nors padaryti, kad būtų patobulinta.
3 žingsnis: TMP36 - pradinis bandymas
Kairė koja yra 3.3v, dešinė - GND, o centrinė - analoginė įtampa, atspindinti temperatūrą pagal šią formulę. TempC = (milivoltai - 500) / 10
Taigi 750 milivoltų duoda 25 C temperatūrą
Atrodo, kad čia yra pora problemų. Temperatūra iš „įprasto“gyvsidabrio termometro yra daug žemesnė nei iš TMP36, o rodmenys nėra labai nuoseklūs - yra šiek tiek drebėjimo ar triukšmo.
TMP36 jutiklis siunčia įtampą, proporcingą temperatūrai. Prieš apskaičiuojant temperatūrą, tai turi perskaityti A/D keitiklis. Kelių metrų matuokliu nuskaitykime įtampą tiesiai iš jutiklio vidurinės kojos ir palyginkime ją su A/D rezultatu. Mano daugiametris rodmuo nuo vidurinės kojos yra 722 milivoltai, daug mažesnis ir labai pastovus.
Yra du dalykai, kuriuos galime išbandyti. Pakeiskite TMP36 potenciometrą ir apskaičiuodami sureguliuokite įtampą pagal faktinę mikrovaldiklio įtampą. Tada pamatysime, ar apskaičiuota įtampa yra arčiau ir ar sumažėja triukšmas/nervingumas.
Išmatuokime tikrąją įtampą, naudojamą mano mikrovaldiklyje ir A/D. Buvo manoma, kad tai yra 3.3v, bet iš tikrųjų yra tik 3.275v.
4 žingsnis: potenciometro pakeitimo rezultatai
Tai daug geriau. Rodmenys yra keli milivoltai, o triukšmas yra daug mažesnis. Tai rodo, kad triukšmas kyla iš TMP36, o ne iš A/D. Skaitiklio rodmenys visada yra pastovūs - nėra drebėjimo. (Skaitiklis gali „išlyginti“nervingumą.)
Vienas iš būdų pagerinti situaciją gali būti vidutinis rodiklis. Greitai atlikite dešimt rodmenų ir naudokite vidurkį. Keisdamas programą taip pat apskaičiuosiu standartinį nuokrypį, kad galėčiau parodyti rezultatų sklaidą. Taip pat skaičiuosiu rodmenų skaičių per 1 standartinį nuokrypį nuo vidurkio - kuo didesnis, tuo geriau.
5 žingsnis: vidutiniai rodmenys ir rezultatas
Vis dar yra daug triukšmo, o TMP36 rodmenys vis dar yra didesni nei iš gyvsidabrio termometro. Norėdami sumažinti triukšmą, tarp signalo ir GND įtraukiau 100NF kondensatorių
Tada aš ieškojau kitų sprendimų internete ir radau šiuos: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk siūlo tarp signalo ir GND įtraukti 47 k omų rezistorių.
www.desert-home.com/2015/03/battery-operate… Nors šis vaikinas siūlo suskirstyti 15 rodmenų į eilę ir apskaičiuoti centro vidurkį 5.
Aš pakeičiau scenarijų ir grandinę, kad būtų įtraukti šie pasiūlymai, ir įtraukiau gyvsidabrio termometro rodmenis.
Pagaliau! Dabar turime pastovius rodmenis prietaiso aprašymo tikslumo diapazone.
Tai buvo gana daug pastangų, kad veiktų jutiklis, kurio gamintojo tikslumas yra tik:
Tikslumas - aukščiausias (žemiausias): ± 3 ° C (± 4 ° C) Jie kainuoja tik apie 1,50 USD (2 £)
6 žingsnis: DS18B20 - pradinis bandymas
Būkite labai atsargūs. Šis paketas atrodo labai panašus į TMP36, tačiau kojos yra atvirkščiai: 3.3v dešinėje ir GND kairėje. Išėjimo signalas yra centre. Kad šis įrenginys veiktų, mums reikia 4,7 kΩ omo rezistoriaus tarp signalo ir 3,3 V. Šis įrenginys naudoja vieno laido protokolą, ir mes turime atsisiųsti keletą tvarkyklių į „Itsybitsy M4 Express“lib aplanką.
Tai kainuoja apie $ 4 / £ 4 Techninės specifikacijos:
- Naudojamas temperatūros diapazonas: nuo -55 iki 125 ° C (nuo -67 ° F iki +257 ° F)
- 9-12 bitų pasirenkama skiriamoji geba
- Naudojama 1 laido sąsaja - bendravimui reikalingas tik vienas skaitmeninis kaištis
- Unikalus 64 bitų ID įrašytas į lustą
- Keli jutikliai gali dalintis vienu kaiščiu
- ± 0,5 ° C Tikslumas nuo -10 ° C iki +85 ° C
- Temperatūros ribos signalizacijos sistema
- Užklausos laikas yra trumpesnis nei 750 ms
- Galima naudoti nuo 3,0 V iki 5,5 V.
Pagrindinė šio jutiklio problema yra ta, kad jis naudoja „Dallas 1-Wire“sąsają ir ne visi mikrovaldikliai turi tinkamą tvarkyklę. Mums pasisekė, yra „Itsybitsy M4 Express“vairuotojas.
7 žingsnis: DS18B20 veikia gerai
Tai rodo puikų rezultatą.
Pastovus rodmenų rinkinys be jokio papildomo darbo ir skaičiavimo pridėtinių išlaidų. Rodmenys yra tikėtini ± 0,5 ° C tikslumo diapazone, palyginti su mano gyvsidabrio termometru.
Taip pat yra neperšlampama versija, kurios kaina yra apie 10 USD, kurią anksčiau naudojau vienodai sėkmingai.
8 žingsnis: DHT22 ir DHT11
DHT22 naudoja termistorių temperatūrai gauti ir kainuoja apie 10 USD / 10 svarų ir yra tikslesnis ir brangesnis mažesnio DHT11 brolis. Jis taip pat naudoja vieno laido sąsają, tačiau nėra suderinamas su Dalaso protokolu, naudojamu su DS18B20. Jis jaučia drėgmę ir temperatūrą. Šiems įrenginiams kartais reikia traukimo varžos tarp 3,3 V ir signalo kaiščio. Šis paketas jau yra įdiegtas.
- Žema kaina
- Nuo 3 iki 5 V maitinimo ir įvesties/išvesties
- 2,5 mA maksimalus dabartinis naudojimas konversijos metu (prašant duomenų)
- Tinka 0–100% drėgmės rodmenims 2–5% tikslumu
- Tinka nuo -40 iki 80 ° C temperatūros rodmenims ± 0,5 ° C tikslumui
- Ne daugiau kaip 0,5 Hz mėginių ėmimo dažnis (kartą per 2 sekundes)
- Kūno dydis 27 mm x 59 mm x 13,5 mm (1,05 x 2,32 x 0,53 colio)
- 4 kaiščiai, 0,1 colio tarpai
- Svoris (tik DHT22): 2,4 g
Palyginti su DHT11, šis jutiklis yra tikslesnis, tikslesnis ir veikia didesniame temperatūros/drėgmės diapazone, tačiau yra didesnis ir brangesnis.
9 žingsnis: DHT22 rezultatai
Tai puikūs rezultatai su labai mažomis pastangomis. Rodmenys yra gana pastovūs ir atitinka numatytą toleranciją. Drėgmės rodmenys yra premija.
Galite skaityti tik kiekvieną sekundę.
10 žingsnis: DTH11 testas
Mano gyvsidabrio termometras rodė 21,9 laipsnių C. Tai gana senas DHT11, gautas iš seno projekto, o drėgmės vertė labai skiriasi nuo DHT22 rodmenų prieš kelias minutes. Tai kainuoja apie 5 USD / 5 GBP.
Jo aprašymas apima:
- Tinka 20–80% drėgmės rodmenims 5% tikslumu
- Tinka 0-50 ° C temperatūros rodmenims ± 2 ° C tikslumas - mažesnis nei DTH22
Atrodo, kad temperatūra vis dar yra tikslumo diapazone, tačiau aš nepasitikiu šio seno prietaiso drėgmės rodmenimis.
11 veiksmas: BME680
Šiame jutiklyje yra temperatūra, drėgmė, barometrinis slėgis ir LOJ dujų jutikliai vienoje pakuotėje, tačiau jis yra pats brangiausias iš čia išbandytų jutiklių. Tai kainuoja apie 18,50 GBP / 22 USD. Yra panašus produktas be dujų jutiklio, kuris yra šiek tiek pigesnis.
Tai aukso standarto jutiklis iš penkių. Temperatūros jutiklis yra tikslus, o su tinkamomis tvarkyklėmis labai paprasta naudoti. Šioje versijoje naudojamas I2C, tačiau „Adafruit“pertraukimo lenta taip pat gali naudoti SPI.
Šis „Bosch“jutiklis, kaip ir BME280 ir BMP280, gali išmatuoti drėgmę ± 3% tikslumu, barometrinį slėgį su ± 1 hPa absoliučiu tikslumu ir temperatūrą ± 1,0 ° C tikslumu. Kadangi slėgis kinta priklausomai nuo aukščio ir matuojami labai gerai, jį taip pat galite naudoti kaip aukščio matuoklį, kurio tikslumas yra ± 1 metras arba geresnis!
Dokumentuose teigiama, kad dujų jutikliui reikia „įdegimo laiko“.
12 žingsnis: kurį turėčiau naudoti?
- TMP36 yra labai pigus, mažas ir populiarus, tačiau gana sunkiai naudojamas ir gali būti netikslus.
- DS18B20 yra mažas, tikslus, pigus, labai paprastas naudoti ir turi vandeniui atsparią versiją.
- DTH22 taip pat rodo drėgmę, yra vidutinės kainos ir lengvai naudojamas, tačiau gali būti per lėtas.
- BME680 daro daug daugiau nei kiti, tačiau yra brangus.
Jei tik noriu temperatūros, aš naudoju DS18B20 ± 0,5 ° C tikslumu, bet mano mėgstamiausias yra BME680, nes jis daro daug daugiau ir gali būti naudojamas daugelyje skirtingų projektų.
Viena paskutinė mintis. Įsitikinkite, kad temperatūros jutiklis yra toli nuo mikroprocesoriaus. Kai kurios „Raspberry Pi“skrybėlės leidžia šilumai iš pagrindinės plokštės sušildyti jutiklį, o tai rodo klaidingą rodmenį.
13 žingsnis: tolesnės mintys ir eksperimentai
Ačiū gulliverrr, ChristianC231 ir pgagen už pastabas apie tai, ką iki šiol padariau. Atsiprašau už vėlavimą, bet aš atostogavau Airijoje, porą savaičių neturėdamas prieigos prie savo elektronikos rinkinio.
Štai pirmasis bandymas parodyti, kad jutikliai veikia kartu.
Parašiau scenarijų, kad paeiliui skaitytų jutiklius ir kas 20 sekundžių išspausdintų temperatūros vertes.
Aš įdėjau rinkinį į šaldytuvą valandai, kad viskas atvėstų. Aš prijungiau jį prie kompiuterio ir privertiau Mu spausdinti rezultatus. Tada išvestis buvo nukopijuota, paversta.csv failu (kableliais atskirti kintamieji), o diagramos sudarytos iš „Excel“rezultatų.
Praėjus maždaug trims minutėms nuo rinkinio išėmimo iš šaldytuvo, kol rezultatai buvo užfiksuoti, taigi per šį laikotarpį įvyko tam tikras temperatūros kilimas. Įtariu, kad keturių jutiklių šiluminė galia yra skirtinga, todėl jie įkaista skirtingu greičiu. Tikimasi, kad atšilimo greitis sumažės, kai jutikliai priartės prie kambario temperatūros. Savo gyvsidabrio termometru tai užfiksavau kaip 24,4 ° C.
Dideli temperatūrų skirtumai kreivių pradžioje gali būti susiję su skirtingais jutiklių šiluminiais pajėgumais. Man malonu matyti, kad artėjant prie kambario temperatūros linijos artėja prie pabaigos. Aš nerimauju, kad TMP36 visada yra daug didesnis nei kiti jutikliai.
Pažvelgiau į duomenų lapus ir dar kartą patikrinau aprašytą šių įrenginių tikslumą
TMP36
- ± 2 ° C tikslumas virš temperatūros (tipas)
- ± 0,5 ° C tiesiškumas (tip)
DS18B20
± 0,5 ° C Tikslumas nuo -10 ° C iki +85 ° C
DHT22
temperatūra ± 0,5 ° C
BME680
temperatūra ± 1,0 ° C tikslumu
14 žingsnis: visa diagrama
Dabar galite pamatyti, kad jutikliai ilgainiui išsilygino ir sutarė dėl temperatūros daugiau ar mažiau pagal aprašytą tikslumą. Jei nuo TMP36 verčių nuimama 1,7 laipsnio (tikimasi ± 2 ° C), visi jutikliai gerai sutaria.
Kai pirmą kartą atlikau šį eksperimentą, DHT22 jutiklis sukėlė problemą:
main.py išvestis:
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 skaitymo klaida: („DHT jutiklis nerastas, patikrinkite laidus“,)
Atsekimas (paskutinis paskutinis skambutis):
Failas „main.py“, 64 eilutė
Failas „main.py“, 59 eilutė, „get_dht22“
NameError: vietinis kintamasis, nurodytas prieš priskiriant
Taigi pakeičiau scenarijų, kad galėčiau susidoroti su šia problema, ir iš naujo įrašiau:
DHT skaitymo klaida: („DHT jutiklis nerastas, patikrinkite laidus“,)
25.9, 22.6, -999.0, 22.6
DHT skaitymo klaida: („DHT jutiklis nerastas, patikrinkite laidus“,)
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 skaitymo klaida: („DHT jutiklis nerastas, patikrinkite laidus“,)
27.1, 23.0, -999.0, 23.0
DHT skaitymo klaida: („DHT jutiklis nerastas, patikrinkite laidus“,)
27.2, 23.0, -999.0, 23.1
25.9, 23.3, 22.6, 23.2
DHT skaitymo klaida: („DHT jutiklis nerastas, patikrinkite laidus“,)
28.4, 23.2, -999.0, 23.3
DHT skaitymo klaida: („DHT jutiklis nerastas, patikrinkite laidus“,)
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
Su antruoju važiavimu neturėjau jokių problemų. „Adafruit“dokumentai įspėja, kad kartais DHT jutikliai praleidžia rodmenis.
15 žingsnis: Išvados
Ši kreivė aiškiai rodo, kad didesnė kai kurių jutiklių šiluminė talpa padidina jų reakcijos laiką.
Visi jutikliai fiksuoja temperatūros kilimą ir kritimą.
Jie nėra labai greitai pripratę prie naujos temperatūros.
Jie nėra labai tikslūs. (Ar jie pakankamai geri oro stotims?)
Jums gali tekti kalibruoti jutiklį pagal patikimą termometrą.
Rekomenduojamas:
Namų automatizavimas su „NodeMCU“jutikliniu jutikliu LDR temperatūros valdymo relė: 16 žingsnių
Namų automatizavimas naudojant „NodeMCU“jutiklinio jutiklio LDR temperatūros valdymo relę: Ankstesniuose „NodeMCU“projektuose aš valdžiau du buitinius prietaisus iš „Blynk App“. Gavau daug komentarų ir pranešimų, kad galėčiau atnaujinti projektą rankiniu valdymu ir pridėti daugiau funkcijų. Taigi sukūriau šį išmaniųjų namų plėtinio dėžutę. Šiame daiktų internete
„Arduino“sąsaja su ultragarso jutikliu ir bekontakčiu temperatūros jutikliu: 8 žingsniai
„Arduino“sąsaja su ultragarso jutikliu ir bekontakčiu temperatūros jutikliu: Šiuo metu kūrėjai ir kūrėjai teikia pirmenybę „Arduino“, norėdami greitai plėtoti projektų prototipus. „Arduino“yra atviro kodo elektronikos platforma, pagrįsta lengvai naudojama aparatine ir programine įranga. „Arduino“turi labai gerą vartotojų bendruomenę. Šiame projekte
Pasidaryk pats: prie lubų montuojama mini jutiklių dėžutė su fokusuojamu judesio jutikliu: 4 žingsniai
Pasidaryk pats: prie lubų montuojama mini jutiklių dėžutė su fokusuojamu judesio jutikliu: Sveiki. Prieš kurį laiką padėjau savo draugui išmaniųjų namų koncepcijoje ir sukūriau specialiai suprojektuotą mini jutiklių dėžutę, kurią būtų galima pritvirtinti prie lubų į 40x65 mm skylę. Ši dėžutė padeda: • matuoti šviesos intensyvumą • matuoti drėgną
ESP32 NTP temperatūros zondo virimo termometras su Steinhart-Hart korekcija ir temperatūros aliarmu: 7 žingsniai (su nuotraukomis)
ESP32 NTP temperatūros zondo virimo termometras su Steinhart-Hart korekcija ir temperatūros aliarmu: vis dar keliaujate užbaigti „būsimo projekto“, „ESP32 NTP temperatūros zondo virimo termometras su Steinhart-Hart korekcija ir temperatūros aliarmu“. yra instrukcija, rodanti, kaip pridedu NTP temperatūros zondą, pjezo b
Temperatūros, lietaus vandens ir vibracijos jutiklių naudojimas „Arduino“geležinkeliams apsaugoti: 8 žingsniai (su nuotraukomis)
Temperatūros, lietaus vandens ir vibracijos jutiklių naudojimas „Arduino“geležinkeliams apsaugoti: Šiuolaikinėje visuomenėje geležinkelio keleivių skaičiaus padidėjimas reiškia, kad geležinkelio įmonės turi daugiau stengtis optimizuoti tinklus, kad neatsiliktų nuo paklausos. Šiame projekte nedideliu mastu parodysime, kaip veikia temperatūros, lietaus vandens ir vibracijos jutikliai