Përmbajtje:

Testimi i sensorëve të temperaturës - cili për mua ?: 15 hapa (me fotografi)
Testimi i sensorëve të temperaturës - cili për mua ?: 15 hapa (me fotografi)

Video: Testimi i sensorëve të temperaturës - cili për mua ?: 15 hapa (me fotografi)

Video: Testimi i sensorëve të temperaturës - cili për mua ?: 15 hapa (me fotografi)
Video: ТАКОЙ ВКУСНОЙ БАРАНИНЫ ВЫ ЕЩЁ НЕ ЕЛИ!! СИМФОНИЯ ВКУСОВ! ТЫКВА, БАРАНИНА, БАТАТ. 2024, Nëntor
Anonim
Testimi i sensorëve të temperaturës - cili për mua?
Testimi i sensorëve të temperaturës - cili për mua?

Një nga sensorët e parë që të sapoardhurit në llogaritjet fizike duan të provojnë është diçka për të matur temperaturën. Katër nga sensorët më të njohur janë TMP36, i cili ka dalje analoge dhe ka nevojë për një konvertues analog në dixhital, DS18B20, i cili përdor lidhjen me një tela, DHT22 ose DHT11 pak më të lirë, i cili ka nevojë vetëm për një kunj dixhital, por gjithashtu siguron një lexim të lagështisë, dhe së fundmi BME680 i cili përdor I2C (me SPI gjithashtu në disa dërrasa dalëse) dhe jep temperaturë, lagështi, gaz (VOC) dhe presion atmosferik, por kushton pak më shumë.

Unë dua të shoh sa të sakta janë ato, dhe të zbuloj ndonjë avantazh apo disavantazh. Unë tashmë kam një termometër të saktë të merkurit, të mbetur nga printimi fotografik me ngjyra në ditët e përpunimit kimik, për t'i krahasuar ato kundër. (Asnjëherë mos hidhni asgjë jashtë - do t'ju duhet më vonë!)

Unë do të përdor CircuitPython dhe një bord zhvillimi Adafruit Itsybitsy M4 për këto teste. Drejtuesit e përshtatshëm janë në dispozicion për të gjitha pajisjet.

Furnizimet

Lista ime fillestare:

  • Mikrokontrolluesi Itsybitsy M4 Express
  • kabllo mikro USB - për programim
  • TMP36
  • GJ18B20
  • Rezistencë 4.7K Ohm
  • DHT22
  • BME680
  • Shumë metra
  • Breadboard ose strip board
  • Tela lidhës

Hapi 1: Qarqet

Qarqet
Qarqet

Telat portokalli janë 3.3 V

Telat e zinj janë GND

Në fund të tabelës janë pikat e provës për matjen e tensioneve. (Dalje analoge 3.3v, GND dhe TMP36)

Prizat qendrore janë, nga e majta në të djathtë:

  • TMP36: 3.3v, sinjal analog jashtë, GND
  • DS18B20: GND, sinjal dixhital jashtë, 3.3v
  • DHT22: 3.3v, sinjali jashtë, bosh, GND
  • BME680: 3.3v, SDA, SCL, bosh, GND

Lidhësi i pasmë, për t'u lidhur me tabelën IB M4E, nga e majta në të djathtë

  • 3.3v
  • TMP36 - analoge nga pin A2
  • GND
  • DS18B20 dixhital jashtë në pin D3 - jeshile
  • DHT22 dixhitale jashtë në pin D2 - e verdhë
  • SDA - e bardhë
  • SCL - rozë

Rezistenca 4.7K Ohm është tërheqje nga sinjali në 3.3v për lidhjen me tela 0ne në DS18B20.

Ka 2 pista të prera në pjesën e pasme të tabelës:

Nën skajin e dorës së majtë të telave rozë dhe të bardhë. (Nën telin e verdhë.)

Hapi 2: Metoda

Metodë
Metodë

Për secilin sensor do të shkruaj një skenar të shkurtër për të lexuar temperaturën (dhe artikujt e tjerë nëse janë të disponueshëm) disa herë dhe për të kontrolluar temperaturën kundër termometrit tim të merkurit (Hg). Do të shikoj se sa afër temperaturës krahasohet me leximin e merkurit dhe nëse leximet janë të qëndrueshme/të qëndrueshme.

Unë gjithashtu do të shikoj dokumentacionin për të parë nëse leximet përshtaten brenda saktësisë së pritshme dhe nëse ka ndonjë gjë që mund të bëhet për të bërë përmirësime.

Hapi 3: TMP36 - Gjyqi fillestar

TMP36 - Gjyqi fillestar
TMP36 - Gjyqi fillestar
TMP36 - Gjyqi fillestar
TMP36 - Gjyqi fillestar

Këmba e majtë është 3.3v, këmba e djathtë është GND dhe këmba qendrore është një tension analog që përfaqëson temperaturën duke përdorur formulën e mëposhtme. TempC = (milivolt - 500) / 10

Pra, 750 milivolt jep një temperaturë prej 25 C

Duket se ka disa probleme këtu. Temperatura nga termometri 'normal', i merkurit, është shumë më i ulët se nga TMP36 dhe leximet nuk janë shumë të qëndrueshme - ka disa 'tronditje' ose zhurmë.

Sensori TMP36 dërgon një tension proporcional me temperaturën. Kjo duhet të lexohet nga konvertuesi A/D para se të llogaritet temperatura. Le të lexojmë tensionin drejtpërdrejt nga këmba e mesme e sensorit me një shumë metër dhe ta krahasojmë atë me rezultatin nga A/D. Leximi nga këmba qendrore me shumë metër tim është 722 milivolt, shumë më i ulët dhe një lexim shumë i qëndrueshëm.

Ka dy gjëra që mund të provojmë. Zëvendësoni një potenciometër për TMP36 dhe rregulloni tensionin në llogaritjen me tensionin aktual të mikrokontrolluesit. Atëherë do të shohim nëse tensioni i llogaritur është më afër dhe nëse zhurma/dridhja zvogëlohet.

Le të matim tensionin aktual që po përdor mikrokontrolluesi im dhe A/D. Kjo supozohej të ishte 3.3v, por në fakt është vetëm 3.275v.

Hapi 4: Rezultatet e zëvendësimit të potenciometrit

Rezultatet e zëvendësimit të potenciometrit
Rezultatet e zëvendësimit të potenciometrit

Kjo është shumë më mirë. Leximet janë brenda nja dy milivoltësh me shumë më pak zhurmë. Kjo sugjeron që zhurma vjen nga TMP36 sesa nga A/D. Leximi në njehsor është gjithmonë i qëndrueshëm - pa shqetësime. (Matësi mund të "zbutë" daljen e nervozuar.)

Një mënyrë për të përmirësuar situatën mund të jetë marrja e një leximi mesatar. Merrni dhjetë lexime shpejt dhe përdorni mesataren. Unë gjithashtu do të llogaris devijimin standard gjatë ndryshimit të programit, për të dhënë një tregues të përhapjes së rezultateve. Unë gjithashtu do të numëroj numrin e leximeve brenda 1 devijimi standard të mesatares - sa më i lartë aq më mirë.

Hapi 5: Leximet mesatare dhe një rezultat

Leximet mesatare dhe një rezultat
Leximet mesatare dhe një rezultat

Ende ka shumë zhurmë dhe leximi nga TMP36 është akoma më i lartë se nga termometri i merkurit. Për të zvogëluar zhurmën, kam përfshirë një kondensator 100NF midis sinjalit dhe GND

Unë pastaj kërkova për zgjidhje të tjera në internet dhe i gjeta këto: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk sugjeron përfshirjen e një rezistence 47k Ohm midis sinjalit dhe GND.

www.desert-home.com/2015/03/battery-operate… Ndërsa ky djalë sugjeron të renditësh 15 lexime sipas rendit dhe të mesatarizosh qendrën 5.

Ndryshova skenarin dhe qarkun për të përfshirë këto sugjerime dhe përfshiva një lexim nga termometri i merkurit.

Te pakten! Tani kemi lexime të qëndrueshme brenda intervalit të saktësisë së përshkrimit të pajisjes.

Kjo ishte shumë përpjekje për të punuar sensorin i cili ka vetëm saktësinë e prodhuesit:

Saktësia - Më e larta (më e ulta): ± 3 ° C (± 4 ° C) Ata kushtojnë vetëm rreth 1.50 dollarë (£ 2)

Hapi 6: DS18B20 - Testimi fillestar

DS18B20 - Testimi fillestar
DS18B20 - Testimi fillestar

Jini shumë të kujdesshëm. Kjo paketë duket shumë e ngjashme me TMP36 por këmbët janë anasjelltas me 3.3v në të djathtë dhe GND në të majtë. Sinjali i dalë është në qendër. Në mënyrë që kjo pajisje të funksionojë ne kemi nevojë për një rezistencë 4.7 kh Ohm midis sinjalit dhe 3.3v. Kjo pajisje përdor protokollin me një kabllo dhe ne duhet të shkarkojmë disa drejtues në dosjen lib të Itsybitsy M4 Express.

Kjo kushton rreth $ 4 / £ 4 Specifikimet teknike:

  • Gama e temperaturës së përdorshme: -55 në 125 ° C (-67 ° F deri +257 ° F)
  • Rezolucion i zgjedhur prej 9 deri në 12 bit
  • Përdor ndërfaqen 1 -Wire - kërkon vetëm një kunj dixhital për komunikim
  • ID unike 64 bit e djegur në çip
  • Sensorë të shumtë mund të ndajnë një kunj
  • ± 0.5 ° C Saktësi nga -10 ° C në +85 ° C
  • Sistemi i alarmit për kufirin e temperaturës
  • Koha e pyetjes është më pak se 750ms
  • Përdoret me fuqi 3.0V deri në 5.5V

Problemi kryesor me këtë sensor është se përdor ndërfaqen Dallas 1-Wire dhe jo të gjithë mikrokontrolluesit kanë një drejtues të përshtatshëm. Ne jemi me fat, ka një shofer për Itsybitsy M4 Express.

Hapi 7: DS18B20 Duke punuar mirë

DS18B20 po punon mirë
DS18B20 po punon mirë

Kjo tregon një rezultat të shkëlqyeshëm.

Një grup i qëndrueshëm leximesh pa ndonjë punë shtesë dhe llogaritjen e shpenzimeve të përgjithshme. Leximet janë brenda intervalit të pritur të saktësisë prej ± 0.5 ° C kur krahasohen me termometrin tim të merkurit.

Ekziston edhe një version i papërshkueshëm nga uji me rreth 10 dollarë të cilin e kam përdorur në të kaluarën me sukses të barabartë.

Hapi 8: DHT22 dhe DHT11

DHT22 dhe DHT11
DHT22 dhe DHT11

DHT22 përdor një termistor për të marrë temperaturën dhe kushton rreth $ 10 / £ 10 dhe është vëllai më i saktë dhe i shtrenjtë i DHT11 më i vogël. Ai gjithashtu përdor një ndërfaqe me një tel, por NUK është në përputhje me protokollin Dallas të përdorur me DS18B20. Ndjen lagështinë, si dhe temperaturën. Këto pajisje ndonjëherë kanë nevojë për një rezistencë tërheqëse midis 3.3 v dhe pin sinjalit. Kjo paketë tashmë ka një të instaluar.

  • Çmim i ulët
  • Fuqia 3 deri në 5V dhe I/O
  • Përdorimi maksimal aktual 2.5mA gjatë konvertimit (gjatë kërkimit të të dhënave)
  • I mirë për leximet e lagështisë 0-100% me saktësi 2-5%
  • I mirë për leximet e temperaturës -40 deri në 80 ° C. Saktësi ± 0.5 ° C
  • Shkalla e mostrimit jo më shumë se 0.5 Hz (një herë në 2 sekonda)
  • Madhësia e trupit 27mm x 59mm x 13.5mm (1.05 "x 2.32" x 0.53 ")
  • 4 kunja, distancë 0.1"
  • Pesha (vetëm DHT22): 2.4g

Krahasuar me DHT11, ky sensor është më i saktë, më i saktë dhe punon në një gamë më të madhe të temperaturës/lagështisë, por është më i madh dhe më i shtrenjtë.

Hapi 9: Rezultatet DHT22

Rezultatet DHT22
Rezultatet DHT22

Këto janë rezultate të shkëlqyera me shumë pak përpjekje. Leximet janë mjaft të qëndrueshme dhe brenda tolerancës së pritshme. Leximi i lagështisë është një bonus.

Mund të lexoni vetëm çdo sekondë.

Hapi 10: Testi DTH11

Testi DTH11
Testi DTH11

Termometri im i merkurit tregoi 21.9 gradë C. Ky është një DHT11 mjaft i vjetër i marrë nga një projekt i vjetër dhe vlera e lagështisë është shumë e ndryshme nga leximet e DHT22 të disa minutave më parë. Kushton rreth 5 dollarë / 5 £.

Përshkrimi i tij përfshin:

  • I mirë për leximet e lagështisë 20-80% me saktësi 5%
  • E mirë për leximet e temperaturës 0-50 ° C accuracy saktësi ° 2 ° C - më pak se DTH22

Temperatura duket se është ende në intervalin e saktësisë, por nuk i besoj leximit të lagështisë nga kjo pajisje e vjetër.

Hapi 11: BME680

BME680
BME680

Ky sensor përmban temperaturën, lagështinë, presionin barometrik dhe aftësitë e ndijimit të gazit VOC në një paketë të vetme, por është sensori më i shtrenjtë i testuar këtu. Kushton rreth 18,50 / / 22 dollarë. Ekziston një produkt i ngjashëm pa sensorin e gazit i cili është pak më i lirë.

Ky është një sensor standard ari i pesë. Sensori i temperaturës është i saktë, dhe me drejtues të përshtatshëm, shumë i lehtë për t’u përdorur. Ky version përdor I2C por bordi i shpërthimit Adafruit mund të përdorë edhe SPI.

Ashtu si BME280 & BMP280, ky sensor i saktësisë nga Bosch mund të masë lagështinë me saktësi ± 3%, presion barometrik me accuracy 1 hPa saktësi absolute dhe temperaturë me saktësi ± 1.0 ° C. Për shkak se presioni ndryshon me lartësinë dhe matjet e presionit janë aq të mira, ju gjithashtu mund ta përdorni atë si një lartësimatës me meter 1 metër ose saktësi më të mirë!

Dokumentacioni thotë se i duhet pak kohë për djegien e sensorit të gazit.

Hapi 12: Cilin duhet të përdor?

Cilin Duhet të Përdor?
Cilin Duhet të Përdor?
  • TMP36 është shumë i lirë, i vogël dhe popullor, por mjaft i vështirë për t'u përdorur dhe mund të jetë i pasaktë.
  • DS18B20 është i vogël, i saktë, i lirë, shumë i lehtë për t’u përdorur dhe ka një version të papërshkueshëm nga uji.
  • DTH22 gjithashtu tregon lagështi, ka një çmim mesatar dhe është i lehtë për t'u përdorur, por mund të jetë shumë i ngadalshëm.
  • BME680 bën shumë më tepër se të tjerët, por është i shtrenjtë.

Nëse do të doja vetëm temperaturë, do të përdorja DS18B20 me saktësi ± 0.5 ° C, por e preferuara ime është BME680 sepse bën shumë më tepër dhe mund të vihet në përdorim në një numër të madh projektesh të ndryshme.

Një mendim i fundit. Sigurohuni që ta mbani sensorin tuaj të temperaturës shumë larg mikroprocesorit. Disa HAT të Raspberry Pi lejojnë nxehtësinë nga bordi kryesor për të ngrohur sensorin, duke dhënë një lexim të rremë.

Hapi 13: Mendime dhe eksperimente të mëtejshme

Mendime dhe eksperimente të mëtejshme
Mendime dhe eksperimente të mëtejshme

Faleminderit gulliverrr, ChristianC231 dhe pgagen për komentet tuaja mbi atë që kam bërë deri më tani. Më falni për vonesën, por kam qenë me pushime në Irlandë, pa qasje në pajisjen time elektronike për disa javë.

Këtu është një përpjekje e parë për të treguar sensorët që punojnë së bashku.

Kam shkruar një skenar për të lexuar sensorët me radhë dhe për të printuar vlerat e temperaturës çdo 20 sekonda ose më shumë.

E futa kompletin në frigorifer për një orë, për të ftohur gjithçka. E futa në kompjuter dhe e detyrova Mu të printojë rezultatet. Rezultati pastaj u kopjua, u shndërrua në një skedar.csv (ndryshore të ndara me presje) dhe grafikët nxjerrin nga rezultatet në Excel.

U deshën rreth tre minuta nga nxjerrja e kompletit nga frigoriferi para se të regjistroheshin rezultatet, kështu që një rritje e temperaturës kishte ndodhur në këtë interval. Unë dyshoj se katër sensorët kanë kapacitete të ndryshme termike dhe kështu do të ngroheshin me ritme të ndryshme. Shkalla e ngrohjes pritet të ulet ndërsa sensorët i afrohen temperaturës së dhomës. Unë e regjistrova këtë si 24.4 ° C me termometrin tim të merkurit.

Dallimet e gjera të temperaturës në fillim të kthesave mund të jenë për shkak të kapaciteteve të ndryshme termike të sensorëve. Unë jam i kënaqur të shoh që linjat konvergojnë drejt fundit, kur i afrohen temperaturës së dhomës. Unë jam i shqetësuar se TMP36 është gjithmonë shumë më i lartë se sensorët e tjerë.

Kërkova fletët e të dhënave për të kontrolluar përsëri saktësinë e përshkruar të këtyre pajisjeve

TMP36

  • Accuracy Saktësi 2 ° C mbi temperaturën (tip)
  • Line 0.5 ° C linearitet (tip)

GJ18B20

± 0.5 ° C Saktësi nga -10 ° C në +85 ° C

DHT22

temperatura ± 0.5 ° C

BME680

temperaturë me saktësi ± 1.0 ° C

Hapi 14: Grafiku i plotë

Grafiku i plotë
Grafiku i plotë

Tani mund të shihni që sensorët përfundimisht u rrafshuan dhe ranë dakord për temperaturën pak a shumë brenda saktësisë së tyre të përshkruar. Nëse 1.7 gradë hiqen nga vlerat TMP36 (expected 2 ° C pritet) ka një marrëveshje të mirë midis të gjithë sensorëve.

Herën e parë që e drejtova këtë eksperiment sensori DHT22 shkaktoi një problem:

dalja kryesore.py:

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

Gabimi i leximit të DHT: ("Sensori DHT nuk u gjet, kontrolloni instalimet elektrike",)

Gjurmimi (thirrja më e fundit e fundit):

Skedari "main.py", rreshti 64, në

Skedari "main.py", rreshti 59, në get_dht22

NameError: variabla lokale e referuar para caktimit

Kështu që unë ndryshova skenarin për të përballuar këtë problem dhe rifillova regjistrimin:

Gabimi i leximit të DHT: ('Sensori DHT nuk u gjet, kontrolloni instalimet elektrike',)

25.9, 22.6, -999.0, 22.6

Gabimi i leximit të DHT: ("Sensori DHT nuk u gjet, kontrolloni instalimet elektrike",)

25.9, 22.8, -999.0, 22.7

25.9, 22.9, 22.1, 22.8

25.9, 22.9, 22.2, 22.9

Gabimi i leximit të DHT: ("Sensori DHT nuk u gjet, kontrolloni instalimet elektrike",)

27.1, 23.0, -999.0, 23.0

Gabimi i leximit të DHT: ('Sensori DHT nuk u gjet, kontrolloni instalimet elektrike',)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

Gabimi i leximit të DHT: ('Sensori DHT nuk u gjet, kontrolloni instalimet elektrike',)

28.4, 23.2, -999.0, 23.3

Gabimi i leximit të DHT: ('Sensori DHT nuk u gjet, kontrolloni instalimet elektrike',)

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

Nuk kisha asnjë problem me vrapimin e dytë. Dokumentacioni Adafruit paralajmëron se ndonjëherë sensorët DHT nuk lexojnë.

Hapi 15: Përfundime

Përfundimet
Përfundimet

Kjo kurbë tregon qartë se kapaciteti më i lartë termik i disa sensorëve rrit kohën e reagimit të tyre.

Të gjithë sensorët regjistrojnë rritje dhe rënie të temperaturave.

Ata nuk janë shumë të shpejtë për t'u vendosur në një temperaturë të re.

Ato nuk janë shumë të sakta. (A janë mjaft të mirë për një stacion moti?)

Ju mund të keni nevojë të kalibroni sensorin tuaj kundër një termometri të besuar.

Recommended: