Satura rādītājs:
- Piegādes
- 1. darbība: shēmas
- 2. solis: metode
- 3. darbība: TMP36 - sākotnējais izmēģinājums
- 4. solis: potenciometra aizstāšanas rezultāti
- 5. solis: vidējie rādījumi un rezultāts
- 6. darbība: DS18B20 - sākotnējā pārbaude
- 7. darbība: DS18B20 darbojas labi
- 8. solis: DHT22 un DHT11
- 9. solis: DHT22 rezultāti
- 10. solis: DTH11 tests
- 11. darbība: BME680
- 12. solis: kuru man izmantot?
- 13. solis: turpmākās domas un eksperimenti
- 14. darbība. Pilns grafiks
- 15. darbība. Secinājumi
Video: Temperatūras sensoru pārbaude - kurš man?: 15 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:55
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
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
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
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
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
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
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
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 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
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
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
Š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?
- 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
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
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
Šī 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:
TouchFree: automātiska temperatūras pārbaude un maskas noteikšanas kiosks: 5 soļi
TouchFree: automatizēta temperatūras pārbaude un masku noteikšanas kiosks: Tā kā valstis visā pasaulē tiek atvērtas no jauna, dzīvošana kopā ar jauno koronavīrusu kļūst par jaunu dzīvesveidu. Bet, lai apturētu vīrusa izplatīšanos, mums ir jānošķir cilvēki, kuriem ir koronavīruss, no pārējiem. Saskaņā ar CDC, drudzis ir l
Arduino saskarne ar ultraskaņas sensoru un bezkontakta temperatūras sensoru: 8 soļi
Arduino saskarne ar ultraskaņas sensoru un bezkontakta temperatūras sensoru: Mūsdienās ražotāji, izstrādātāji priekšroku dod Arduino, lai strauji attīstītu projektu prototipus. Arduino ir atvērtā koda elektronikas platforma, kuras pamatā ir viegli lietojama aparatūra un programmatūra. Arduino ir ļoti laba lietotāju kopiena. Šajā projektā
Temperatūras nolasīšana, izmantojot LM35 temperatūras sensoru ar Arduino Uno: 4 soļi
Temperatūras lasīšana, izmantojot LM35 temperatūras sensoru ar Arduino Uno: Sveiki, puiši, šajā pamācībā mēs iemācīsimies izmantot LM35 kopā ar Arduino. Lm35 ir temperatūras sensors, kas var nolasīt temperatūras vērtības no -55 ° C līdz 150 ° C. Tā ir 3 termināļu ierīce, kas nodrošina analogo spriegumu, kas ir proporcionāls temperatūrai. Augstākā
Kā lietot DHT11 temperatūras sensoru ar Arduino un drukas temperatūras siltumu un mitrumu: 5 soļi
Kā lietot DHT11 temperatūras sensoru ar Arduino un drukas temperatūras karstumu un mitrumu: DHT11 sensoru izmanto temperatūras un mitruma mērīšanai. Viņi ir ļoti populāri elektronikas hobiji. DHT11 mitruma un temperatūras sensors ļauj patiešām viegli pievienot mitruma un temperatūras datus saviem DIY elektronikas projektiem. Tas ir par
ESP32 NTP temperatūras zondes gatavošanas termometrs ar Steinhart-Hart korekciju un temperatūras trauksmi: 7 soļi (ar attēliem)
ESP32 NTP temperatūras zondes vārīšanas termometrs ar Šteinharta-Harta korekciju un temperatūras trauksmi: Joprojām ir ceļā, lai pabeigtu "gaidāmo projektu", "ESP32 NTP temperatūras zondes vārīšanas termometrs ar Šteinharta-Harta korekciju un temperatūras trauksmi" ir pamācība, kas parāda, kā es varu pievienot NTP temperatūras zondi, pjezo b