Sadržaj:

Testiranje osjetnika temperature - koji je za mene?: 15 koraka (sa slikama)
Testiranje osjetnika temperature - koji je za mene?: 15 koraka (sa slikama)

Video: Testiranje osjetnika temperature - koji je za mene?: 15 koraka (sa slikama)

Video: Testiranje osjetnika temperature - koji je za mene?: 15 koraka (sa slikama)
Video: Как Проверить Датчик Температуры Автомобиля 2024, Studeni
Anonim
Testiranje osjetnika temperature - koji je za mene?
Testiranje osjetnika temperature - koji je za mene?

Jedan od prvih senzora koje početnici u fizičkom računarstvu žele isprobati je nešto za mjerenje temperature. Četiri najpopularnija senzora su TMP36, koji ima analogni izlaz i potreban mu je analogno-digitalni pretvarač, DS18B20, koji koristi jednožilnu vezu, DHT22 ili nešto jeftiniji DHT11, koji samo treba digitalni pin, ali i daje očitanje vlažnosti, i na kraju BME680 koji koristi I2C (sa SPI -om također na nekim pločama za probijanje) i daje temperaturu, vlažnost, plin (VOC) i atmosferski tlak, ali košta malo više.

Želim vidjeti koliko su točni i otkriti sve prednosti ili nedostatke. Već posjedujem točan živin termometar, preostao od tiskanja fotografija u boji još u doba kemijske obrade, kako bih ih usporedio. (Nikada nemojte ništa izbacivati - trebat će vam kasnije!)

Za ove ću testove koristiti CircuitPython i razvojnu ploču Adafruit Itsybitsy M4. Za sve uređaje dostupni su odgovarajući upravljački programi.

Pribor

Moj početni popis:

  • Svoj mikrokontroler Itsybitsy M4 Express
  • mikro USB kabel - za programiranje
  • TMP36
  • DS18B20
  • 4.7K ohmski otpornik
  • DHT22
  • BME680
  • Višemetarski
  • Oglasna ploča ili ploča
  • Spojna žica

Korak 1: Krugovi

Krugovi
Krugovi

Narančaste žice su 3,3 V

Crne žice su GND

Na dnu ploče nalaze se ispitne točke za mjerenje napona. (3.3v, GND i TMP36 analogni izlaz)

Središnje utičnice su slijeva nadesno:

  • TMP36: 3,3 V, izlaz analognog signala, GND
  • DS18B20: GND, izlaz digitalnog signala, 3.3v
  • DHT22: 3,3 V, signal izlaz, prazan, GND
  • BME680: 3,3 V, SDA, SCL, prazno, GND

Stražnji priključak, za spajanje na ploču IB M4E, slijeva nadesno

  • 3.3v
  • TMP36 - analogni izlaz na pin A2
  • GND
  • DS18B20 digitalni izlaz na pin D3 - zeleno
  • DHT22 digitalni izlaz na pin D2 - žuto
  • SDA - bijela
  • SCL - ružičasta

Otpornik od 4,7K ohma rasterećenje je od signala do 3,3v za 0-žičnu vezu na DS18B20.

Na stražnjoj strani ploče nalaze se 2 izrezane pjesme:

Ispod lijevog kraja ružičaste i bijele žice. (Ispod žute žice.)

Korak 2: Metoda

Metoda
Metoda

Za svaki senzor napisat ću kratku skriptu za očitavanje temperature (i drugih stavki ako su dostupne) nekoliko puta i provjeriti temperaturu prema živom (Hg) termometru. Pokušat ću vidjeti koliko je bliska temperatura u usporedbi s očitanjem žive i jesu li očitanja postojana/dosljedna.

Također ću pogledati dokumentaciju kako bih provjerio odgovaraju li očitanja očekivanoj točnosti i može li se nešto učiniti kako bi se poboljšala.

Korak 3: TMP36 - Početno ispitivanje

TMP36 - Početno suđenje
TMP36 - Početno suđenje
TMP36 - Početno suđenje
TMP36 - Početno suđenje

Lijeva noga je 3,3 V, desna noga je GND, a središnja noga je analogni napon koji predstavlja temperaturu koristeći sljedeću formulu. TempC = (milivolti - 500) / 10

Dakle, 750 milivolti daje temperaturu od 25 C

Čini se da ovdje postoji nekoliko problema. Temperatura iz 'normalnog', živinog termometra, mnogo je niža nego u TMP36, a očitanja nisu baš dosljedna - postoji neki 'podrhtavanje' ili šum.

Senzor TMP36 šalje napon proporcionalan temperaturi. A/D pretvarač to mora pročitati prije izračunavanja temperature. Očitajmo napon izravno s srednje noge osjetnika s više metara i usporedimo ga s rezultatom iz A/D-a. Očitavanje sa središnje noge na mom višemetaru je 722 milivolta, mnogo niže i vrlo stabilno očitanje.

Dvije su stvari koje možemo pokušati. Zamijenite potenciometar za TMP36 i prilagodite napon u proračunu stvarnom naponu mikrokontrolera. Zatim ćemo vidjeti je li izračunati napon bliži i je li buka/podrhtavanje smanjena.

Izmjerimo stvarni napon koji se koristi na mikrokontroleru i A/D -u. Pretpostavlja se da je to 3.3V, ali zapravo je samo 3.275v.

Korak 4: Rezultati zamjene potenciometra

Rezultati zamjene potenciometra
Rezultati zamjene potenciometra

Ovo je mnogo bolje. Očitanja su unutar nekoliko milivolti s mnogo manje buke. To sugerira da buka dolazi od TMP36, a ne od A/D -a. Očitavanje na mjeraču je uvijek stabilno - bez podrhtavanja. (Mjerač možda "izglađuje" nervozni izlaz.)

Jedan od načina poboljšanja situacije može biti prosječno čitanje. Brzo uzmite deset očitanja i upotrijebite prosjek. Također ću izračunati standardnu devijaciju dok mijenjam program, kako bih dao naznaku širenja rezultata. Također ću brojati broj očitanja unutar 1 standardne devijacije srednje vrijednosti - što je veće, to bolje.

Korak 5: Prosječna očitanja i rezultat

Prosječna čitanja i rezultat
Prosječna čitanja i rezultat

Još uvijek postoji velika buka, a očitanje s TMP36 i dalje je veće nego sa živinim termometrom. Kako bih smanjio šum, uključio sam kondenzator od 100NF između signala i GND

Zatim sam potražio druga rješenja na internetu i pronašao ova: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk predlaže uključivanje otpornika od 47 k Ohma između signala i GND.

www.desert-home.com/2015/03/battery-operate… Dok ovaj tip predlaže razvrstavanje 15 očitanja u red i usrednjavanje središta 5.

Promijenio sam skriptu i sklop tako da uključim ove prijedloge i uključio sam očitanje sa živinog termometra.

Napokon! Sada imamo stalna očitanja unutar raspona točnosti opisa uređaja.

Bio je to veliki napor da senzor funkcionira, a točnost samo od proizvođača:

Točnost - Najviša (najniža): ± 3 ° C (± 4 ° C) Koštaju samo oko 1,50 USD (2 £)

Korak 6: DS18B20 - Početno testiranje

DS18B20 - Početna ispitivanja
DS18B20 - Početna ispitivanja

Budite vrlo oprezni. Ovaj paket izgleda vrlo slično TMP36, ali noge su obrnute sa 3,3 V na desnoj strani i GND na lijevoj strani. Izlazni signal je u sredini. Kako bi ovaj uređaj radio, potreban nam je otpornik od 4,7 k Ohma između signala i 3,3 V. Ovaj uređaj koristi jednožični protokol i moramo preuzeti nekoliko upravljačkih programa u mapu lib na Itsybitsy M4 Express.

To košta oko 4 USD / 4 £ Tehničke specifikacije:

  • Korisni raspon temperatura: -55 do 125 ° C (-67 ° F do +257 ° F)
  • 9 do 12 bitna rezolucija po izboru
  • Koristi 1 -Wire sučelje - za komunikaciju je potreban samo jedan digitalni pin
  • Jedinstveni 64 -bitni ID narezan u čip
  • Više senzora može dijeliti jedan pin
  • ± 0,5 ° C Točnost od -10 ° C do +85 ° C
  • Alarmni sustav za ograničenje temperature
  • Vrijeme upita je manje od 750 ms
  • Upotrebljivo sa 3.0V do 5.5V napajanjem

Glavni problem s ovim senzorom je taj što koristi Dallas 1-Wire sučelje i nemaju svi mikrokontroleri odgovarajući upravljački program. Imamo sreće, postoji vozač za Itsybitsy M4 Express.

Korak 7: DS18B20 dobro radi

DS18B20 radi dobro
DS18B20 radi dobro

Ovo pokazuje sjajan rezultat.

Stalan skup očitanja bez dodatnog rada i proračuna. Očitanja su unutar očekivanog raspona točnosti od ± 0,5 ° C u usporedbi s mojim živinim termometrom.

Postoji i vodootporna verzija po cijeni od 10 USD koju sam i ranije koristio s jednakim uspjehom.

Korak 8: DHT22 i DHT11

DHT22 i DHT11
DHT22 i DHT11

DHT22 koristi termistor za dobivanje temperature i košta oko 10 USD / 10 £ te je točniji i skuplji brat manjeg DHT11. Također koristi jednožično sučelje, ali NIJE kompatibilan s Dallas protokolom koji se koristi s DS18B20. Osjeća vlagu, kao i temperaturu. Ovim uređajima ponekad je potreban otpornik za podizanje između 3,3 V i signalnog pina. Ovaj paket već ima instaliran.

  • Niska cijena
  • 3 do 5V napajanja i I/O
  • 2,5 mA max trenutna potrošnja tijekom pretvorbe (dok se traže podaci)
  • Dobro za očitanje vlažnosti od 0-100% s točnošću od 2-5%
  • Dobar za očitanja temperature od -40 do 80 ° C ± 0,5 ° C
  • Ne više od 0,5 Hz brzina uzorkovanja (jednom u 2 sekunde)
  • Veličina tijela 27 mm x 59 mm x 13,5 mm (1,05 "x 2,32" x 0,53 ")
  • 4 igle, razmak 0,1"
  • Težina (samo DHT22): 2,4 g

U usporedbi s DHT11, ovaj je senzor precizniji, točniji i radi u većem rasponu temperature/vlage, ali je veći i skuplji.

Korak 9: Rezultati DHT22

Rezultati DHT22
Rezultati DHT22

Ovo su izvrsni rezultati uz vrlo malo truda. Očitanja su prilično stabilna i unutar očekivane tolerancije. Očitavanje vlažnosti je bonus.

Očitavanja možete uzeti samo svake sekunde.

Korak 10: DTH11 test

DTH11 test
DTH11 test

Moj živin termometar pokazivao je 21,9 stupnjeva C. Ovo je prilično stari DHT11 koji sam preuzeo iz starog projekta, a vrijednost vlažnosti jako se razlikuje od očitanja DHT22 od prije nekoliko minuta. Košta oko 5 USD / 5 £.

Njegov opis uključuje:

  • Dobro za očitanja vlažnosti od 20-80% s točnošću od 5%
  • Dobro za očitanja temperature od 0-50 ° C ± 2 ° C točnost - manje od DTH22

Čini se da je temperatura još uvijek u rasponu točnosti, ali ne vjerujem očitavanju vlažnosti sa ovog starog uređaja.

Korak 11: BME680

BME680
BME680

Ovaj senzor sadrži mogućnosti osjetljivosti temperature, vlažnosti, barometarskog tlaka i VOC plinova u jednom paketu, ali je najskuplji od ovdje ispitanih senzora. Košta oko 18,50 funti / 22 dolara. Postoji sličan proizvod bez senzora za plin koji je malo jeftiniji.

Ovo je senzor zlatnog standarda od pet. Senzor temperature je točan i s odgovarajućim upravljačkim programima vrlo jednostavan za korištenje. Ova verzija koristi I2C, ali Adafruit ploča može koristiti i SPI.

Poput BME280 i BMP280, ovaj Bosch precizni senzor može mjeriti vlažnost s ± 3% točnosti, barometarski tlak s ± 1 hPa apsolutnom točnošću i temperaturu s ± 1,0 ° C točnosti. Budući da se tlak mijenja s visinom, a mjerenja tlaka su toliko dobra, možete ga koristiti i kao visinomjer s ± 1 metar ili boljom točnošću!

Dokumentacija kaže da treba neko 'vrijeme sagorijevanja' za senzor plina.

Korak 12: Koju bih trebao koristiti?

Koju bih trebao koristiti?
Koju bih trebao koristiti?
  • TMP36 je vrlo jeftin, mali i popularan, ali prilično težak za upotrebu i može biti netočan.
  • DS18B20 je mali, točan, jeftin, vrlo jednostavan za upotrebu i ima vodootpornu verziju.
  • DTH22 također ukazuje na vlažnost, ima umjerenu cijenu i jednostavan je za upotrebu, ali može biti prespor.
  • BME680 čini mnogo više od ostalih, ali je skup.

Da samo želim temperaturu, upotrijebio bih DS18B20 s točnošću od ± 0,5 ° C, ali najdraži mi je BME680 jer radi mnogo više i može se koristiti u velikom broju različitih projekata.

Jedna posljednja misao. Pazite da osjetnik temperature držite podalje od mikroprocesora. Neki Raspberry Pi HAT -ovi dopuštaju zagrijavanje senzora toplinom s glavne ploče, dajući lažno očitanje.

Korak 13: Daljnje misli i eksperimentiranje

Daljnje misli i eksperimentiranje
Daljnje misli i eksperimentiranje

Hvala gulliverrr, ChristianC231 i pgagen na komentarima na ono što sam do sada učinio. Žao mi je zbog kašnjenja, ali bio sam na odmoru u Irskoj, bez pristupa svom kompletu elektronike nekoliko tjedana.

Evo prvog pokušaja da se pokaže kako senzori rade zajedno.

Napisao sam skriptu za čitanje senzora i ispisivanje vrijednosti temperature svakih 20 -ak sekundi.

Stavila sam komplet u hladnjak na sat vremena da se sve ohladi. Uključio sam ga u računalo i natjerao Mu da ispiše rezultate. Izlaz je zatim kopiran, pretvoren u.csv datoteku (varijable odvojene zarezima) i grafikoni se crpe iz rezultata u Excelu.

Trebalo je oko tri minute da izvadite komplet iz hladnjaka prije nego što su zabilježeni rezultati, pa je u tom intervalu došlo do izvjesnog porasta temperature. Sumnjam da četiri senzora imaju različite toplinske kapacitete pa bi se zagrijavali različitim brzinama. Očekivalo bi se da će se stopa zagrijavanja smanjivati kako se senzori približavaju sobnoj temperaturi. Zabilježio sam to živinim termometrom kao 24,4 ° C.

Velike razlike u temperaturi na početku krivulja mogle bi biti posljedica različitih toplinskih kapaciteta senzora. Drago mi je vidjeti da se linije približavaju kraju dok se približavaju sobnoj temperaturi. Zabrinut sam da je TMP36 uvijek mnogo viši od ostalih senzora.

Potražio sam tehničke listove kako bih ponovno provjerio opisanu točnost ovih uređaja

TMP36

  • ± 2 ° C točnost prema temperaturi (tip)
  • Linearnost ± 0,5 ° C (tip)

DS18B20

± 0,5 ° C Točnost od -10 ° C do +85 ° C

DHT22

temperatura ± 0,5 ° C

BME680

temperatura s točnošću od ± 1,0 ° C

Korak 14: Cijeli grafikon

Cijeli grafikon
Cijeli grafikon

Sada možete vidjeti da su se senzori na kraju izjednačili i složili oko temperature manje -više unutar njihove opisane točnosti. Ako se vrijednosti TMP36 skinu za 1,7 stupnjeva (očekuje se ± 2 ° C), postoji dobar dogovor između svih senzora.

Prvi put kada sam izveo ovaj eksperiment, senzor DHT22 je izazvao problem:

main.py izlaz:

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

Pogreška čitanja DHT -a: ('DHT osjetnik nije pronađen, provjerite ožičenje',)

Traceback (zadnji posljednji poziv):

Datoteka "main.py", red 64, u

Datoteka "main.py", redak 59, u get_dht22

NameError: lokalna varijabla referencirana prije dodjele

Stoga sam izmijenio skriptu kako bih se nosio s ovim problemom i ponovno pokrenuo snimanje:

Pogreška čitanja DHT -a: ('DHT osjetnik nije pronađen, provjerite ožičenje',)

25.9, 22.6, -999.0, 22.6

Pogreška čitanja DHT -a: ('DHT osjetnik nije pronađen, provjerite ožičenje',)

25.9, 22.8, -999.0, 22.7

25.9, 22.9, 22.1, 22.8

25.9, 22.9, 22.2, 22.9

Pogreška čitanja DHT -a: ('DHT osjetnik nije pronađen, provjerite ožičenje',)

27.1, 23.0, -999.0, 23.0

Pogreška čitanja DHT -a: ('DHT osjetnik nije pronađen, provjerite ožičenje',)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

Pogreška čitanja DHT -a: ('DHT osjetnik nije pronađen, provjerite ožičenje',)

28.4, 23.2, -999.0, 23.3

Pogreška čitanja DHT -a: ('DHT osjetnik nije pronađen, provjerite ožičenje',)

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

Nisam imao problema s drugom vožnjom. Adafruit dokumentacija upozorava da ponekad DHT senzori propuštaju očitanja.

Korak 15: Zaključci

Zaključci
Zaključci

Ova krivulja jasno pokazuje da veći toplinski kapacitet nekih senzora povećava njihovo vrijeme reakcije.

Svi senzori bilježe porast i pad temperature.

Ne stižu se brzo na novu temperaturu.

Nisu baš točni. (Jesu li dovoljno dobre za meteorološke stanice?)

Možda ćete morati kalibrirati senzor prema pouzdanom termometru.

Preporučeni: