Satura rādītājs:

Temperatūras sensoru pārbaude - kurš man?: 15 soļi (ar attēliem)
Temperatūras sensoru pārbaude - kurš man?: 15 soļi (ar attēliem)

Video: Temperatūras sensoru pārbaude - kurš man?: 15 soļi (ar attēliem)

Video: Temperatūras sensoru pārbaude - kurš man?: 15 soļi (ar attēliem)
Video: Замена отопления в новостройке. Подключение. Опрессовка. #17 2024, Novembris
Anonim
Temperatūras sensoru pārbaude - kurš man?
Temperatūras sensoru pārbaude - kurš man?

Viens no pirmajiem sensoriem, ko fiziskās skaitļošanas jaunpienācēji vēlas izmēģināt, ir kaut kas temperatūras mērīšanai. Četri no populārākajiem sensoriem ir TMP36, kam ir analogā izeja un kam nepieciešams analogo un digitālo pārveidotājs, DS18B20, kas izmanto viena vadu savienojumu, DHT22 vai nedaudz lētāks DHT11, kuram ir nepieciešama tikai digitālā tapa. nodrošina mitruma nolasīšanu un, visbeidzot, BME680, kas izmanto I2C (ar SPI, kā arī dažos sadalīšanas dēļos) un sniedz temperatūru, mitrumu, gāzi (GOS) un atmosfēras spiedienu, bet maksā nedaudz vairāk.

Es vēlos redzēt, cik precīzi tie ir, un atklāt visas priekšrocības vai trūkumus. Man jau ir precīzs dzīvsudraba termometrs, kas palicis pāri no krāsainās fotogrāfijas drukāšanas vēl ķīmiskās apstrādes laikos, lai tos salīdzinātu. (Nekad neko nemetiet ārā - jums tas būs vajadzīgs vēlāk!)

Šiem testiem es izmantošu CircuitPython un Adafruit Itsybitsy M4 izstrādes plati. Visām ierīcēm ir pieejami piemēroti draiveri.

Piegādes

Mans sākotnējais saraksts:

  • Itsybitsy M4 Express mikrokontrolleris
  • mikro USB kabelis - programmēšanai
  • TMP36
  • DS18B20
  • 4,7 K omu rezistors
  • DHT22
  • BME680
  • Daudzmetru
  • Maizes dēlis vai sloksnes dēlis
  • Savienojošais vads

1. darbība: shēmas

Ķēdes
Ķēdes

Oranžie vadi ir 3,3 V

Melnie vadi ir GND

Plāksnes apakšā ir testa punkti sprieguma mērīšanai. (3.3v, GND un TMP36 analogā izeja)

Centrālās kontaktligzdas ir no kreisās uz labo:

  • TMP36: 3.3v, analogā signāla izeja, GND
  • DS18B20: GND, digitālā signāla izeja, 3.3v
  • DHT22: 3.3v, signāls ārā, tukšs, GND
  • BME680: 3.3v, SDA, SCL, tukšs, GND

Aizmugurējais savienotājs savienošanai ar IB M4E plati, no kreisās uz labo

  • 3.3v
  • TMP36 - analogs līdz kontaktam A2
  • GND
  • DS18B20 digitālā izeja līdz D3 tapai - zaļa
  • DHT22 digitālā izeja līdz tapai D2 - dzeltena
  • SDA - balta
  • SCL - rozā

4,7 K omu rezistors ir pullup no signāla uz 3,3 V, lai pievienotu 0 vadu savienojumu DS18B20.

Dēļa aizmugurē ir 2 griezuma celiņi:

Zem rozā un baltā stieples kreisā gala. (Zem dzeltenās stieples.)

2. solis: metode

Metode
Metode

Katram sensoram es uzrakstīšu īsu skriptu, lai vairākas reizes nolasītu temperatūru (un citus vienumus, ja tie ir pieejami) un pārbaudītu temperatūru pret manu dzīvsudraba (Hg) termometru. Es meklēšu, lai redzētu, cik cieši temperatūra ir salīdzināma ar dzīvsudraba rādījumu un vai rādījumi ir stabili/konsekventi.

Es arī apskatīšu dokumentāciju, lai redzētu, vai rādījumi atbilst gaidītajai precizitātei un vai ir iespējams kaut ko darīt, lai uzlabotu.

3. darbība: TMP36 - sākotnējais izmēģinājums

TMP36 - sākotnējais izmēģinājums
TMP36 - sākotnējais izmēģinājums
TMP36 - sākotnējais izmēģinājums
TMP36 - sākotnējais izmēģinājums

Kreisā kāja ir 3.3v, labā kāja ir GND un centrālā kāja ir analogs spriegums, kas attēlo temperatūru, izmantojot šādu formulu. TempC = (milivolti - 500) / 10

Tātad 750 milivolti dod 25 C temperatūru

Šķiet, ka šeit ir pāris problēmas. Temperatūra no “parastā” dzīvsudraba termometra ir daudz zemāka nekā no TMP36, un rādījumi nav ļoti konsekventi - ir kāds “nervozums” vai troksnis.

TMP36 sensors izsūta spriegumu, kas ir proporcionāls temperatūrai. Tas ir jālasa A/D pārveidotājam pirms temperatūras aprēķināšanas. Ar multimetru nolasīsim spriegumu tieši no sensora vidējās kājas un salīdzināsim to ar A/D rezultātu. Rādījums no centrālās kājas ar manu multimetru ir 722 milivolti, daudz zemāks un ļoti stabils.

Mēs varam izmēģināt divas lietas. Aizstājiet TMP36 potenciometru un aprēķinā pieregulējiet spriegumu atbilstoši mikrokontrollera faktiskajam spriegumam. Tad mēs redzēsim, vai aprēķinātais spriegums ir tuvāk un vai troksnis/nervozitāte ir samazināta.

Izmērīsim faktisko spriegumu, ko izmanto mans mikrokontrolleris un A/D. Tika pieņemts, ka tas ir 3.3v, bet patiesībā tas ir tikai 3.275v.

4. solis: potenciometra aizstāšanas rezultāti

Potenciometra aizstāšanas rezultāti
Potenciometra aizstāšanas rezultāti

Tas ir daudz labāk. Rādījumi ir pāris milivoltu robežās ar daudz mazāku troksni. Tas liek domāt, ka troksnis ir no TMP36, nevis no A/D. Mērītāja rādījumi vienmēr ir stabili - bez nervozēšanas. (Skaitītājs var “izlīdzināt” nervozitāti.)

Viens veids, kā uzlabot situāciju, var būt vidējais rādījums. Ātri veiciet desmit rādījumus un izmantojiet vidējo. Es arī aprēķinu standarta novirzi, mainot programmu, lai sniegtu norādi par rezultātu izplatību. Es arī skaitīšu rādījumu skaitu 1 standarta novirzes robežās no vidējā - jo lielāks, jo labāk.

5. solis: vidējie rādījumi un rezultāts

Vidējie rādījumi un rezultāts
Vidējie rādījumi un rezultāts

Joprojām ir liels troksnis, un nolasījums no TMP36 joprojām ir augstāks nekā no dzīvsudraba termometra. Lai samazinātu troksni, starp signālu un GND esmu iekļāvis 100NF kondensatoru

Pēc tam internetā meklēju citus risinājumus un atradu šos: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk iesaka starp signālu un GND iekļaut 47 k omu rezistoru.

www.desert-home.com/2015/03/battery-operate… Kamēr šis puisis iesaka sakārtot 15 rādījumus kārtībā un noteikt centra vidējo vērtību 5.

Es mainīju skriptu un ķēdi, lai iekļautu šos ieteikumus, un iekļāvu dzīvsudraba termometra rādījumu.

Beidzot! Tagad mums ir stabili rādījumi ierīces apraksta precizitātes diapazonā.

Tas prasīja daudz pūļu, lai panāktu sensora darbību, kuram ir tikai ražotāja precizitāte:

Precizitāte - visaugstākā (zemākā): ± 3 ° C (± 4 ° C) Tie maksā tikai aptuveni 1,50 USD (2 USD)

6. darbība: DS18B20 - sākotnējā pārbaude

DS18B20 - sākotnējā pārbaude
DS18B20 - sākotnējā pārbaude

Esiet ļoti uzmanīgs. Šis iepakojums izskatās ļoti līdzīgs TMP36, bet kājas ir otrādi - 3.3v labajā pusē un GND kreisajā pusē. Izejas signāls atrodas centrā. Lai šī ierīce darbotos, mums ir nepieciešams 4,7 k omu rezistors starp signālu un 3,3 V. Šī ierīce izmanto viena stieples protokolu, un mums ir jālejupielādē pāris draiveri Itsybitsy M4 Express lib mapē.

Tas maksā apmēram $ 4 / £ 4 Tehniskās specifikācijas:

  • Izmantojams temperatūras diapazons: no -55 līdz 125 ° C (no -67 ° F līdz +257 ° F)
  • 9 līdz 12 bitu izvēles izšķirtspēja
  • Izmanto 1 vadu saskarni - saziņai nepieciešama tikai viena digitālā tapa
  • Unikāls 64 bitu ID ierakstīts mikroshēmā
  • Vairāki sensori var koplietot vienu tapu
  • ± 0,5 ° C Precizitāte no -10 ° C līdz +85 ° C
  • Temperatūras ierobežošanas signalizācijas sistēma
  • Vaicājuma laiks ir mazāks par 750 ms
  • Var izmantot ar jaudu no 3,0 V līdz 5,5 V.

Šī sensora galvenā problēma ir tā, ka tas izmanto Dallas 1-Wire interfeisu, un ne visiem mikrokontrolleriem ir piemērots draiveris. Mums ir paveicies, ir vadītājs Itsybitsy M4 Express.

7. darbība: DS18B20 darbojas labi

DS18B20 darbojas labi
DS18B20 darbojas labi

Tas parāda lielisku rezultātu.

Pastāvīgs rādījumu kopums bez papildu darba un aprēķiniem. Nolasījumi ir paredzamajā precizitātes diapazonā ± 0,5 ° C, salīdzinot ar manu dzīvsudraba termometru.

Ir arī ūdensnecaurlaidīga versija par aptuveni 10 USD, ko esmu izmantojis agrāk ar vienādiem panākumiem.

8. solis: DHT22 un DHT11

DHT22 un DHT11
DHT22 un DHT11

DHT22 izmanto termistoru, lai iegūtu temperatūru, un tas maksā apmēram USD 10 / £ 10, un ir precīzāks un dārgāks brālis mazākajam DHT11. Tas izmanto arī viena vadu saskarni, bet NAV savietojams ar Dalasas protokolu, ko izmanto kopā ar DS18B20. Tas jūt mitrumu, kā arī temperatūru. Šīm ierīcēm dažreiz ir nepieciešams pacelšanas rezistors starp 3,3 V un signāla tapu. Šī pakete jau ir instalēta.

  • Lēts
  • 3 līdz 5 V jauda un I/O
  • 2,5 mA maksimālā pašreizējā izmantošana pārveidošanas laikā (datu pieprasīšanas laikā)
  • Piemērots 0–100% mitruma rādījumiem ar 2–5% precizitāti
  • Piemērots temperatūras rādījumiem no -40 līdz 80 ° C ± 0,5 ° C
  • Ne vairāk kā 0,5 Hz paraugu ņemšanas biežums (reizi 2 sekundēs)
  • Korpusa izmērs 27 mm x 59 mm x 13,5 mm (1,05 x 2,32 x 0,53 collas)
  • 4 tapas, 0,1 collu atstarpe
  • Svars (tikai DHT22): 2,4 g

Salīdzinot ar DHT11, šis sensors ir precīzāks, precīzāks un darbojas lielākā temperatūras/mitruma diapazonā, taču tas ir lielāks un dārgāks.

9. solis: DHT22 rezultāti

DHT22 rezultāti
DHT22 rezultāti

Tie ir lieliski rezultāti ar ļoti mazu piepūli. Rādījumi ir diezgan stabili un paredzamās pielaides robežās. Mitruma nolasīšana ir bonuss.

Jūs varat veikt rādījumus tikai katru sekundi.

10. solis: DTH11 tests

DTH11 tests
DTH11 tests

Mans dzīvsudraba termometrs rādīja 21,9 grādus pēc Celsija. Šis ir diezgan vecs DHT11, ko es paņēmu no kāda veca projekta, un mitruma vērtība ļoti atšķiras no DHT22 rādījumiem pirms dažām minūtēm. Tas maksā apmēram $ 5 / £ 5.

Tās aprakstā ietilpst:

  • Piemērots 20-80% mitruma rādījumiem ar 5% precizitāti
  • Piemērots 0-50 ° C temperatūras rādījumiem ± 2 ° C precizitāte - mazāka nekā DTH22

Šķiet, ka temperatūra joprojām ir precizitātes diapazonā, bet es neuzticos šīs vecās ierīces mitruma rādījumiem.

11. darbība: BME680

BME680
BME680

Šis sensors vienā iepakojumā satur temperatūras, mitruma, barometriskā spiediena un GOS noteikšanas iespējas, taču tas ir visdārgākais no šeit pārbaudītajiem sensoriem. Tas maksā apmēram £ 18.50 / $ 22. Ir līdzīgs produkts bez gāzes sensora, kas ir nedaudz lētāks.

Šis ir zelta standarta sensors no pieciem. Temperatūras sensors ir precīzs, un ar piemērotiem draiveriem tas ir ļoti ērti lietojams. Šī versija izmanto I2C, bet Adafruit sadalīšanas dēlis var izmantot arī SPI.

Tāpat kā BME280 un BMP280, arī šis Bosch precīzijas sensors var izmērīt mitrumu ar ± 3% precizitāti, barometrisko spiedienu ar ± 1 hPa absolūtu precizitāti un temperatūru ar ± 1,0 ° C precizitāti. Tā kā spiediens mainās līdz ar augstumu un spiediena mērījumi ir tik labi, varat to izmantot arī kā altimetru ar ± 1 metru vai labāku precizitāti!

Dokumentācijā teikts, ka gāzes sensoram ir vajadzīgs zināms “iedegšanās laiks”.

12. solis: kuru man izmantot?

Kuru man vajadzētu izmantot?
Kuru man vajadzētu izmantot?
  • TMP36 ir ļoti lēts, mazs un populārs, taču diezgan grūti lietojams un var būt neprecīzs.
  • DS18B20 ir mazs, precīzs, lēts, ļoti ērti lietojams, un tam ir ūdensnecaurlaidīga versija.
  • DTH22 arī norāda uz mitrumu, ir mērenas cenas un viegli lietojams, taču var būt pārāk lēns.
  • BME680 dara daudz vairāk nekā citi, bet ir dārgi.

Ja es gribētu tikai temperatūru, es izmantotu DS18B20 ar ± 0,5 ° C precizitāti, bet mans mīļākais ir BME680, jo tas dara daudz vairāk un to var izmantot daudzos dažādos projektos.

Viena pēdējā doma. Noteikti turiet temperatūras sensoru tālu prom no mikroprocesora. Daži Raspberry Pi HAT ļauj siltumam no galvenās plates uzsildīt sensoru, radot nepatiesu rādījumu.

13. solis: turpmākās domas un eksperimenti

Tālākās domas un eksperimenti
Tālākās domas un eksperimenti

Paldies gulliverrr, ChristianC231 un pgagen par komentāriem par to, ko esmu darījis līdz šim. Es atvainojos par kavēšanos, bet esmu atvaļinājies Īrijā, pāris nedēļas neesot piekļuvis savam elektronikas komplektam.

Šeit ir pirmais mēģinājums parādīt sensorus, kas darbojas kopā.

Es uzrakstīju skriptu, lai nolasītu sensorus pēc kārtas un izdrukātu temperatūras vērtības apmēram ik pēc 20 sekundēm.

Es ievietoju komplektu uz stundu ledusskapī, lai viss atdziest. Es to pievienoju datoram un saņēmu Mu, lai izdrukātu rezultātus. Pēc tam izvade tika nokopēta, pārvērsta par.csv failu (ar komatu atdalīti mainīgie), un grafiki tiek iegūti no Excel rezultātiem.

No komplekta izņemšanas no ledusskapja pagāja apmēram trīs minūtes, pirms tika reģistrēti rezultāti, tāpēc šajā intervālā bija notikusi neliela temperatūras paaugstināšanās. Man ir aizdomas, ka četriem sensoriem ir atšķirīga siltuma jauda, un tāpēc tie sasilst dažādos ātrumos. Paredzams, ka sasilšanas ātrums samazināsies, kad sensori tuvosies istabas temperatūrai. Es to ierakstīju kā 24,4 ° C ar savu dzīvsudraba termometru.

Plašās temperatūras atšķirības līkņu sākumā varētu būt saistītas ar sensoru atšķirīgajām siltuma jaudām. Man ir prieks redzēt, ka līnijas tuvojas beigām, tuvojoties istabas temperatūrai. Mani uztrauc tas, ka TMP36 vienmēr ir daudz augstāks nekā citi sensori.

Es uzmeklēju datu lapas, lai vēlreiz pārbaudītu šo ierīču aprakstīto precizitāti

TMP36

  • ± 2 ° C precizitāte virs temperatūras (tip)
  • ± 0,5 ° C linearitāte (tip)

DS18B20

± 0,5 ° C Precizitāte no -10 ° C līdz +85 ° C

DHT22

temperatūra ± 0,5 ° C

BME680

temperatūra ar ± 1,0 ° C precizitāti

14. darbība. Pilns grafiks

Pilns grafiks
Pilns grafiks

Tagad jūs varat redzēt, ka sensori beidzot izlīdzinājās un vienojās par temperatūru vairāk vai mazāk aprakstītās precizitātes robežās. Ja no TMP36 vērtībām noņem 1,7 grādus (paredzama ± 2 ° C), visi sensori ir labi vienoti.

Pirmo reizi veicot šo eksperimentu, DHT22 sensors radīja problēmu:

main.py izvade:

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 lasīšanas kļūda: ("DHT sensors nav atrasts, pārbaudiet vadu",)

Traceback (pēdējais pēdējais zvans):

Fails "main.py", 64. rinda, collas

Fails "main.py", 59. rinda, vietnē get_dht22

NameError: vietējais mainīgais, uz kuru atsaucas pirms piešķiršanas

Tāpēc es mainīju skriptu, lai tiktu galā ar šo problēmu, un atsāku ierakstīšanu:

DHT lasīšanas kļūda: ("DHT sensors nav atrasts, pārbaudiet vadu",)

25.9, 22.6, -999.0, 22.6

DHT lasīšanas kļūda: ("DHT sensors nav atrasts, pārbaudiet vadu",)

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 lasīšanas kļūda: ("DHT sensors nav atrasts, pārbaudiet vadu",)

27.1, 23.0, -999.0, 23.0

DHT lasīšanas kļūda: ("DHT sensors nav atrasts, pārbaudiet vadu",)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

DHT lasīšanas kļūda: ("DHT sensors nav atrasts, pārbaudiet vadu",)

28.4, 23.2, -999.0, 23.3

DHT lasīšanas kļūda: ("DHT sensors nav atrasts, pārbaudiet vadu",)

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

Ar otro braucienu man nebija problēmu. Adafruit dokumentācija brīdina, ka dažkārt DHT sensori nokavē rādījumus.

15. darbība. Secinājumi

Secinājumi
Secinājumi

Šī līkne skaidri parāda, ka dažu sensoru augstākā siltuma jauda palielina to reakcijas laiku.

Visi sensori reģistrē temperatūras paaugstināšanos un pazemināšanos.

Viņi nav ļoti ātri nosēdušies jaunā temperatūrā.

Tie nav ļoti precīzi. (Vai tie ir pietiekami labi laika apstākļu stacijai?)

Jums var būt nepieciešams kalibrēt sensoru pret uzticamu termometru.

Ieteicams: