Sadržaj:
- Supplies
- Korak 1: Krugovi
- Korak 2: Metoda
- Korak 3: TMP36 - Početno suđenje
- Korak 4: Rezultati zamjene potenciometra
- Korak 5: Prosječna očitanja i rezultat
- Korak 6: DS18B20 - Inicijalno testiranje
- Korak 7: DS18B20 radi dobro
- Korak 8: DHT22 i DHT11
- Korak 9: Rezultati DHT22
- Korak 10: DTH11 test
- Korak 11: BME680
- Korak 12: Koju da koristim?
- Korak 13: Daljnje misli i eksperimentiranje
- Korak 14: Potpuni grafikon
- Korak 15: Zaključci
Video: Testiranje senzora temperature - koji je za mene?: 15 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
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, kojem je potreban samo digitalni pin, ali i daje očitanje vlažnosti, i na kraju BME680 koji koristi I2C (sa SPI -jem 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 tačni i otkriti sve prednosti i nedostatke. Već posjedujem precizan živin termometar, preostao od štampanja fotografija u boji još u vrijeme hemijske obrade, da ih uporedim. (Nikada ništa ne bacajte - 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.
Supplies
Moja početna lista:
- Itybitsy M4 Express mikrokontroler
- mikro USB kabel - za programiranje
- TMP36
- DS18B20
- 4.7K Ohm otpornik
- DHT22
- BME680
- Više metara
- Oglasna ploča ili ploča
- Priključna žica
Korak 1: Krugovi
Narandž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.3v, izlaz analognog signala, GND
- DS18B20: GND, izlaz digitalnog signala, 3.3v
- DHT22: 3.3v, signal izlaz, prazan, GND
- BME680: 3.3v, SDA, SCL, prazno, GND
Zadnji konektor, za povezivanje sa IB M4E pločom, 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 - roza
Otpornik od 4,7K ohma je izvlačenje iz signala na 3,3v za 0-žičnu vezu na DS18B20.
Na stražnjoj strani ploče nalaze se 2 izrezane trake:
Ispod lijevog kraja ružičaste i bijele žice. (Ispod žute žice.)
Korak 2: Metoda
Za svaki senzor napisaću kratku skriptu za očitavanje temperature (i drugih stavki ako su dostupne) nekoliko puta i provjeru temperature prema živom (Hg) termometru. Gledaću da vidim koliko se temperatura upoređuje sa očitavanjem žive i da li su očitavanja stabilna/konzistentna.
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 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 i očitanja nisu baš dosljedna - postoji neki 'podrhtavanje' ili buka.
Senzor TMP36 šalje napon proporcionalan temperaturi. A/D pretvarač to mora pročitati prije izračunavanja temperature. Očitajmo napon direktno sa srednje noge senzora s višemetara 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.
Postoje dvije 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 je zapravo samo 3.275v.
Korak 4: Rezultati zamjene potenciometra
Ovo je mnogo bolje. Očitanja su unutar nekoliko milivolti sa mnogo manje buke. Ovo sugeriše da je buka iz TMP36, a ne iz A/D -a. Očitavanje na mjeraču je uvijek stabilno - bez podrhtavanja. (Mjerač možda "izglađuje" nervozni izlaz.)
Jedan od načina za poboljšanje 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. Brojat ću i broj očitanja unutar 1 standardne devijacije srednje vrijednosti - što je veće, to bolje.
Korak 5: Prosječna očitanja i rezultat
Još uvijek postoji velika buka, a očitanje sa TMP36 je i dalje veće nego sa živinim termometrom. Da 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 momak predlaže sortiranje 15 očitanja po redu i usrednjavanje centra 5.
Promijenio sam skriptu i krug tako da uključim ove prijedloge i uključio sam očitanje sa živinog termometra.
Napokon! Sada imamo stalna očitanja unutar opsega tačnosti opisa uređaja.
Bio je to veliki napor da se senzor pokrene, a proizvođač ima preciznost:
Tačnost - Najviša (najniža): ± 3 ° C (± 4 ° C) Koštaju samo oko 1,50 USD (2 £)
Korak 6: DS18B20 - Inicijalno testiranje
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 centru. Da 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 Itybitsy M4 Express.
To košta oko 4 USD / 4 £ Tehničke specifikacije:
- Raspon upotrebljive temperature: -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 Tačnost od -10 ° C do +85 ° C
- Alarmni sistem za ograničenje temperature
- Vrijeme upita je manje od 750 ms
- Koristi se 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 upravljački program za Itsybitsy M4 Express.
Korak 7: DS18B20 radi dobro
Ovo pokazuje odličan rezultat.
Stalan skup očitanja bez dodatnog rada i proračuna. Očitavanja su unutar očekivanog opsega tačnosti od ± 0,5 ° C u poređenju sa mojim živinim termometrom.
Postoji i vodootporna verzija po cijeni od 10 USD koju sam ranije koristio s jednakim uspjehom.
Korak 8: DHT22 i DHT11
DHT22 koristi termistor za postizanje temperature i košta oko 10 USD / 10 £ i precizniji je i skup brat manjeg DHT11. Također koristi jednožično sučelje, ali NIJE kompatibilan s Dallas protokolom koji se koristi s DS18B20. Oseća vlagu, kao i temperaturu. Ovim uređajima je ponekad potreban otpornik između 3,3 V i signalnog pina. Ovaj paket već ima instaliran.
- Jeftino
- Napajanje od 3 do 5V i U/I
- 2,5 mA max trenutna upotreba tokom konverzije (dok se traže podaci)
- Dobro za očitanje vlažnosti od 0-100% s točnošću od 2-5%
- Dobro za tačnost očitavanja 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 pina, razmak 0,1"
- Težina (samo DHT22): 2,4 g
U usporedbi s DHT11, ovaj senzor je precizniji, precizniji i radi u većem rasponu temperature/vlažnosti, ali je veći i skuplji.
Korak 9: Rezultati DHT22
Ovo su odlični rezultati uz vrlo malo truda. Očitavanja 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
Moj živinski termometar je pokazivao 21,9 stepeni C. Ovo je prilično stari DHT11 koji sam preuzeo iz starog projekta, a vrijednost vlažnosti se jako razlikuje od očitanja DHT22 od prije nekoliko minuta. Košta oko 5 USD / 5 £.
Njegov opis uključuje:
- Dobar 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 preciznost - 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
Ovaj senzor sadrži mogućnosti osjetljivosti temperature, vlažnosti, barometrijskog 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 gas koji je malo jeftiniji.
Ovo je senzor zlatnog standarda od pet. Senzor temperature je precizan i sa odgovarajućim upravljačkim programima vrlo jednostavan za upotrebu. Ova verzija koristi I2C, ali Adafruit ploča može koristiti i SPI.
Kao i BME280 i BMP280, ovaj Bosch precizni senzor može mjeriti vlažnost sa ± 3% tačnosti, barometarski pritisak sa ± 1 hPa apsolutnom tačnošću i temperaturu sa ± 1,0 ° C tačnosti. Budući da se tlak mijenja s nadmorskom visinom, a mjerenja tlaka su toliko dobra, možete ga koristiti i kao visinomjer sa ± 1 metar ili boljom preciznošću!
Dokumentacija kaže da mu je potrebno neko vrijeme sagorijevanja za senzor plina.
Korak 12: Koju da koristim?
- TMP36 je vrlo jeftin, mali i popularan, ali prilično težak za upotrebu i može biti neprecizan.
- DS18B20 je mali, precizan, 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 želim samo temperaturu, koristio 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.
Još jedna misao. Pazite da senzor temperature držite podalje od mikroprocesora. Neki Raspberry Pi HAT -ovi dopuštaju toplinu sa glavne ploče da zagrije senzor, dajući lažno očitanje.
Korak 13: 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 sedmica.
Evo prvog pokušaja da se pokaže kako senzori rade zajedno.
Napisao sam skriptu za čitanje senzora redom i ispisivanje vrijednosti temperature svakih 20 -ak sekundi.
Stavila sam komplet u frižider na sat, da se sve ohladi. Uključio sam ga u računar i natjerao Mu da odštampa rezultate. Izlaz je zatim kopiran, pretvoren u.csv datoteku (varijable razdvojene zarezima) i grafikoni se crpe iz rezultata u Excelu.
Trebalo je otprilike tri minute da izvadite komplet iz hladnjaka prije nego što su zabilježeni rezultati, pa je u tom intervalu došlo do izvesnog porasta temperature. Pretpostavljam 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. Snimio sam ovo živinim termometrom na 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 približavajući se sobnoj temperaturi. Zabrinut sam da je TMP36 uvijek mnogo veći od ostalih senzora.
Potražio sam tehničke listove kako bih ponovo provjerio opisanu tačnost ovih uređaja
TMP36
- ± 2 ° C tačnost u odnosu na temperaturu (tip)
- ± 0.5 ° C linearnost (tip)
DS18B20
± 0,5 ° C Tačnost od -10 ° C do +85 ° C
DHT22
temperatura ± 0,5 ° C
BME680
temperatura sa ± 1,0 ° C tačnost
Korak 14: Potpuni grafikon
Sada možete vidjeti da su se senzori na kraju izjednačili i dogovorili o temperaturi manje -više unutar njihove opisane tačnosti. Ako se vrijednosti TMP36 skinu za 1,7 stepeni (očekuje se ± 2 ° C), postoji dobra saglasnost između svih senzora.
Kada sam prvi put izveo ovaj eksperiment, DHT22 senzor 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
Greška čitanja DHT -a: ('DHT senzor nije pronađen, provjerite ožičenje',)
Traceback (posljednji zadnji poziv):
Datoteka "main.py", red 64, u
Datoteka "main.py", red 59, u get_dht22
NameError: lokalna varijabla referencirana prije dodjele
Stoga sam izmijenio skriptu kako bih se nosio s ovim problemom i ponovo pokrenuo snimanje:
Greška čitanja DHT -a: ('DHT senzor nije pronađen, provjerite ožičenje',)
25.9, 22.6, -999.0, 22.6
Greška čitanja DHT -a: ('DHT senzor 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
Greška čitanja DHT -a: ('DHT senzor nije pronađen, provjerite ožičenje',)
27.1, 23.0, -999.0, 23.0
Greška čitanja DHT -a: ('DHT senzor nije pronađen, provjerite ožičenje',)
27.2, 23.0, -999.0, 23.1
25.9, 23.3, 22.6, 23.2
Greška čitanja DHT -a: ('DHT senzor nije pronađen, provjerite ožičenje',)
28.4, 23.2, -999.0, 23.3
Greška čitanja DHT -a: ('DHT senzor 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 sa drugom vožnjom. Adafruit dokumentacija upozorava da ponekad DHT senzori propuštaju očitanja.
Korak 15: 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š tačni. (Jesu li dovoljno dobre za meteorološku stanicu?)
Možda ćete morati kalibrirati senzor prema pouzdanom termometru.
Preporučuje se:
MAX7219 LED matrična montaža i testiranje: 6 koraka (sa slikama)
MAX7219 Sastavljanje i testiranje LED matrične tačke: Dot-matrični ekran je uređaj za prikaz koji sadrži diode koje emituju svjetlost poravnate u obliku matrice. Ovi matrični ekrani se koriste u aplikacijama gdje su potrebni simboli, grafike, znakovi, abecede, brojevi biti prikazani zajedno
Slanje-IOT-podataka-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: 41 korak
Slanje-podataka-IOT-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: Predstavljamo NCD-ov dugoročni IoT osjetnik temperature i vlažnosti. Zahvaljujući rasponu do 28 milja i bežičnom mrežnom arhitekturom, ovaj senzor prenosi podatke o vlažnosti (± 1,7%) i temperaturi (± 0,3 ° C) u intervalima koje definira korisnik, spavajući
Robotski štand za testiranje: 8 koraka (sa slikama)
Robotski ispitni štand: Trebalo mi je a da bih držao kotače svog YAAR robota (vidi YAAR Instructable) od tla radi testiranja
Korištenje senzora temperature, kišnice i vibracija na Arduinu za zaštitu željeznica: 8 koraka (sa slikama)
Korištenje senzora temperature, kišnice i vibracija na Arduinu za zaštitu željeznica: U suvremenom društvu, povećanje broja putnika u željeznici znači da željezničke kompanije moraju učiniti više kako bi optimizirale mreže kako bi bile u skladu sa potražnjom. U ovom projektu ćemo na malom mjerilu pokazati kako senzori temperature, kišnice i vibracije rade
SENZOR SUHU DENGAN LCD DAN LED (Izrada senzora temperature sa LCD -om i LED -om): 6 koraka (sa slikama)
SENZOR SUHU DENGAN LCD DAN LED (Izrada temperaturnog senzora sa LCD -om i LED diodama): Zdravo, recimo Devi Rivaldi sa UNIVERSITAS NUSA PUTRA u Indoneziji, koji uključuje arduino senzor na LCD -u i LED diode. Ini adalah pembaca suhu dengan desain saya sendiri, sengan ini anda