Mündəricat:

Temperatur Sensorlarını Test Etmək - Hansı Mənim Üçün ?: 15 Addım (Şəkillərlə)
Temperatur Sensorlarını Test Etmək - Hansı Mənim Üçün ?: 15 Addım (Şəkillərlə)

Video: Temperatur Sensorlarını Test Etmək - Hansı Mənim Üçün ?: 15 Addım (Şəkillərlə)

Video: Temperatur Sensorlarını Test Etmək - Hansı Mənim Üçün ?: 15 Addım (Şəkillərlə)
Video: Ürəyinizin xəstə olduğunu göstərən 8 ƏLAMƏT 2024, Noyabr
Anonim
Temperatur Sensorlarını Test Etmək - Hansı Mənim Üçün?
Temperatur Sensorlarını Test Etmək - Hansı Mənim Üçün?

Fiziki hesablamaya yeni başlayanların sınamaq istədikləri ilk sensorlardan biri də temperaturu ölçmək üçün bir şeydir. Ən populyar sensorlardan dördü, analoq çıxışı olan və rəqəmsal çeviriciyə bənzər ehtiyacı olan TMP36, bir telli DHT22 və ya bir az daha ucuz DHT11 istifadə edən DS18B20-yə bənzər bir rəqəmsal pinə ehtiyac duyur. rütubət oxunuşunu təmin edir və son olaraq I2C (bəzi kəsmə lövhələrində SPI ilə) istifadə edən və temperatur, rütubət, qaz (VOC) və atmosfer təzyiqi verən BME680, lakin bir az daha baha başa gəlir.

Onların nə qədər doğru olduğunu görmək və hər hansı bir üstünlük və ya dezavantajı kəşf etmək istəyirəm. Onlarla müqayisə etmək üçün kimyəvi emal günlərində rəngli foto çapdan qalan dəqiq bir civə termometrinə sahibəm. (Heç vaxt heç nə atmayın - daha sonra ehtiyacınız olacaq!)

Bu testlər üçün CircuitPython və Adafruit Itsybitsy M4 inkişaf lövhəsindən istifadə edəcəyəm. Bütün cihazlar üçün uyğun sürücülər mövcuddur.

Təchizat

İlkin siyahım:

  • Itsybitsy M4 Express mikro nəzarətçisi
  • mikro USB kabeli - proqramlaşdırma üçün
  • TMP36
  • DS18B20
  • 4.7K Ohm müqavimət
  • DHT22
  • BME680
  • Çox metrlik
  • Çörək paneli və ya lövhə
  • Bağlayıcı tel

Addım 1: Dövrlər

Dövrlər
Dövrlər

Narıncı tellər 3.3 V -dir

Qara tellər GND -dir

Lövhənin altındakı gərginliyi ölçmək üçün test nöqtələri var. (3.3v, GND və TMP36 analoq çıxışı)

Orta yuvalar soldan sağa:

  • TMP36: 3.3v, analoq siqnal çıxışı, GND
  • DS18B20: GND, rəqəmsal siqnal çıxışı, 3.3v
  • DHT22: 3.3v, siqnal, boş, GND
  • BME680: 3.3v, SDA, SCL, boş, GND

IB M4E lövhəsinə qoşulmaq üçün arxa bağlayıcı soldan sağa

  • 3.3v
  • TMP36 - A2 pininə analoq
  • GND
  • D18 pininə DS18B20 rəqəmsal çıxışı - yaşıl
  • DHT22 rəqəmsal çıxışı D2 pininə sarıdır
  • SDA - ağ
  • SCL - çəhrayı

4.7K Ohm müqavimət, DS18B20-də 0ne telli əlaqə üçün siqnaldan 3.3v-ə qədər çəkilmədir.

Lövhənin arxa tərəfində 2 kəsilmiş parça var:

Həm çəhrayı, həm də ağ tellərin sol əlinin altında. (Sarı telin altında.)

Addım 2: Metod

Metod
Metod

Hər bir sensor üçün bir neçə dəfə temperatur (və digər maddələr varsa) oxumaq və civə (Hg) termometrimə qarşı temperaturu yoxlamaq üçün qısa bir skript yazacağam. Temperaturun civə oxunuşu ilə nə qədər yaxın olduğunu və oxunuşların sabit/ardıcıl olub olmadığını görmək istəyəcəyəm.

Oxumaların gözlənilən dəqiqliyə uyğun olub olmadığını və təkmilləşdirmələr üçün edilə biləcək bir şey olub olmadığını öyrənmək üçün sənədlərə də baxacağam.

Addım 3: TMP36 - İlkin sınaq

TMP36 - İlkin sınaq
TMP36 - İlkin sınaq
TMP36 - İlkin sınaq
TMP36 - İlkin sınaq

Sol ayaq 3.3v, sağ ayaq GND və mərkəzi ayaq aşağıdakı düsturla istiliyi ifadə edən analoq bir gərginlikdir. TempC = (millivolts - 500) / 10

Beləliklə, 750 millivolt 25 C temperatur verir

Görünür burada bir neçə problem var. 'Normal' olan civə termometrinin temperaturu TMP36 ilə müqayisədə çox aşağıdır və oxunuşlar o qədər də uyğun deyil - bəzi 'titrəmə' və ya səs -küy var.

TMP36 sensoru, temperaturla mütənasib bir gərginlik göndərir. Bu, temperatur hesablanmadan əvvəl A/D çeviricisi tərəfindən oxunmalıdır. Gərginliyi birbaşa sensorun orta ayağından bir çox metrlə oxuyaq və A/D-nin nəticəsi ilə müqayisə edək. Çox ayaqlı sayğacımla orta ayaqdan oxunuş 722 millivoltdur, çox aşağı və çox sabit bir oxunuşdur.

Sınaya biləcəyimiz iki şey var. TMP36 üçün potensiometr əvəz edin və hesablamadakı gərginliyi mikro nəzarətçinin real gərginliyinə uyğunlaşdırın. Daha sonra hesablanmış gərginliyin daha yaxın olub olmadığını və səs -küy/titrəmənin azaldığını görəcəyik.

Mikrodenetleyicim və A/D -də istifadə olunan əsl gərginliyi ölçək. Bunun 3.3v olduğu qəbul edildi, amma əslində yalnız 3.275v -dir.

Addım 4: Potansiyometr Əvəzetmə Nəticələri

Potansiyometr Əvəzetmə Nəticələri
Potansiyometr Əvəzetmə Nəticələri

Bu daha yaxşıdır. Oxumalar daha az səs -küylə bir neçə millivolt içərisindədir. Bu səs -küyün A/D -dən çox TMP36 -dan olduğunu göstərir. Sayğacdakı oxu həmişə sabitdir - heç bir sarsıntı yoxdur. (Sayğac sarsıntı çıxışını "hamarlaşdıra" bilər.)

Vəziyyəti yaxşılaşdırmağın bir yolu, orta oxunuş ola bilər. Tez on oxu alın və ortalamadan istifadə edin. Nəticələrin yayılmasına işarə etmək üçün proqramı dəyişərkən standart sapmanı da hesablayacağam. Oxumaların sayını da ortalamanın 1 standart sapması daxilində sayacağam - nə qədər yüksəkdirsə o qədər yaxşıdır.

Addım 5: Orta Oxumalar və Nəticə

Orta oxunuş və nəticə
Orta oxunuş və nəticə

Hələ çox səs -küy var və TMP36 -dan oxunuş civə termometrindən daha yüksəkdir. Səsi azaltmaq üçün siqnal və GND arasında 100NF kondansatör daxil etdim

Daha sonra internetdə başqa həllər axtardım və bunları tapdım: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk, siqnal və GND arasında 47 k Ohm rezistor daxil etməyi təklif edir.

www.desert-home.com/2015/03/battery-operate… Bu adam 15 oxunuşu sıraya görə sıralamağı və mərkəzin 5 ortalamasını təklif edir.

Ssenarini və dövrəni bu təklifləri daxil etmək üçün dəyişdirdim və civə termometrindən bir oxu daxil etdim.

Nəhayət! İndi cihaz təsvirinin dəqiqlik aralığında sabit oxunuşlara sahibik.

Yalnız istehsalçının dəqiqliyi olan sensorun işləməsi üçün çox səy göstərildi:

Dəqiqlik - Ən Yüksək (Ən Aşağı): ± 3 ° C (± 4 ° C) Cəmi 1.50 ABŞ dolları (2 funt)

Addım 6: DS18B20 - İlkin Test

DS18B20 - İlkin Test
DS18B20 - İlkin Test

Çox diqqətli olun. Bu paket TMP36 -ya çox bənzəyir, ancaq ayaqları sağda 3.3v və solda GND ilə əksinədir. Siqnal mərkəzdədir. Bu cihazı işə salmaq üçün siqnal və 3.3v arasında 4.7 k Ohm rezistora ehtiyacımız var. Bu cihaz bir telli protokoldan istifadə edir və Itsybitsy M4 Express-in lib qovluğuna bir neçə sürücü yükləməliyik.

Bu, təxminən $ 4 / £ 4 -ə başa gəlir Texniki xüsusiyyətlər:

  • İstifadə edilə bilən temperatur aralığı: -55 ilə 125 ° C (-67 ° F - +257 ° F)
  • 9 ilə 12 bit arasında seçilə bilən qətnamə
  • 1 telli interfeysdən istifadə edir - ünsiyyət üçün yalnız bir rəqəmsal pin lazımdır
  • Unikal 64 bitlik ID çipə yandırıldı
  • Birdən çox sensor bir pin paylaşa bilər
  • ± 0,5 ° C -10 ° C ilə +85 ° C arasında dəqiqlik
  • Temperatur həddi siqnalizasiya sistemi
  • Sorğu müddəti 750 ms -dən azdır
  • 3.0V -dən 5.5V -a qədər gücdə istifadə edilə bilər

Bu sensorun əsas problemi Dallas 1-Wire interfeysindən istifadə etməsidir və bütün mikrokontrolörlərin uyğun bir sürücüyə malik olmamasıdır. Şanslıyıq, Itsybitsy M4 Express üçün bir sürücü var.

Addım 7: DS18B20 Yaxşı işləyir

DS18B20 Yaxşı işləyir
DS18B20 Yaxşı işləyir

Bu əla nəticə göstərir.

Əlavə iş və hesablama xərcləri olmadan davamlı oxunuşlar dəsti. Oxumalar, civə termometrimlə müqayisədə ± 0.5 ° C gözlənilən dəqiqlik aralığındadır.

Keçmişdə bərabər uğurla istifadə etdiyim təxminən 10 dollarlıq suya davamlı bir versiya da var.

Addım 8: DHT22 və DHT11

DHT22 və DHT11
DHT22 və DHT11

DHT22, temperaturu əldə etmək üçün bir termistor istifadə edir və qiyməti təxminən 10 dollar / 10 dollardır və kiçik DHT11 -in daha dəqiq və bahalı qardaşıdır. Həm də bir telli interfeysdən istifadə edir, lakin DS18B20 ilə istifadə olunan Dallas protokolu ilə uyğun gəlmir. Həm rütubəti, həm də temperaturu hiss edir. Bu qurğular bəzən 3.3 v və siqnal pimi arasında bir çəkmə müqavimətinə ehtiyac duyurlar. Bu paketdə artıq quraşdırılmış biri var.

  • Aşağı qiymət
  • 3 -dən 5V -a qədər güc və I/O
  • Dönüşüm zamanı 2.5mA maksimum cari istifadə (məlumat istəyərkən)
  • 2-5% dəqiqlikdə 0-100% nəmlik göstəriciləri üçün yaxşıdır
  • -40 ilə 80 ° C arası temperatur oxunması üçün ± 0.5 ° C dəqiqlik üçün yaxşıdır
  • 0,5 Hz -dən çox olmayan nümunə götürmə sürəti (hər 2 saniyədə bir)
  • Bədən ölçüsü 27mm x 59mm x 13.5mm (1.05 "x 2.32" x 0.53 ")
  • 4 pin, 0,1 "aralıq
  • Ağırlıq (yalnız DHT22): 2.4g

DHT11 ilə müqayisədə bu sensor daha dəqiq, daha dəqiqdir və daha böyük temperatur/rütubət aralığında işləyir, lakin daha böyük və daha bahalıdır.

Addım 9: DHT22 Nəticələri

DHT22 Nəticələri
DHT22 Nəticələri

Bunlar çox az səylə əla nəticələrdir. Oxumalar olduqca sabitdir və gözlənilən tolerantlıq daxilindədir. Rütubətin oxunması bir bonusdur.

Yalnız hər saniyədə oxuya bilərsiniz.

Addım 10: DTH11 Testi

DTH11 Testi
DTH11 Testi

Civə termometrim 21.9 dərəcə göstərdi. Bu köhnə bir layihədən aldığım olduqca köhnə bir DHT11 və rütubət dəyəri bir neçə dəqiqə əvvəl DHT22 oxunuşlarından çox fərqlidir. Təxminən 5 dollar / 5 funt sterlinqə başa gəlir.

Onun təsvirinə daxildir:

  • 5% dəqiqlik ilə 20-80% nəmlik göstəriciləri üçün yaxşıdır
  • 0-50 ° C temperatur göstəriciləri üçün ± 2 ° C dəqiqlik üçün yaxşıdır - DTH22 -dən azdır

İstilik hələ də dəqiqlik aralığında görünür, amma bu köhnə cihazdan rütubətin oxunmasına inanmıram.

Addım 11: BME680

BME680
BME680

Bu sensor bir paketdə temperatur, rütubət, barometrik təzyiq və VOC qaz algılama qabiliyyətini ehtiva edir, lakin burada sınaqdan keçirilmiş sensorlar arasında ən bahalıdır. Təxminən £ 18.50 / 22 dollara başa gəlir. Qaz sensoru olmayan oxşar bir məhsul daha ucuzdur.

Bu qızıl standart beşlik sensoru. İstilik sensoru dəqiqdir və uyğun sürücülərlə istifadə etmək çox asandır. Bu versiya I2C istifadə edir, lakin Adafruit breakout board SPI -dən də istifadə edə bilər.

BME280 və BMP280 kimi Bosch -un bu həssas sensoru rütubəti ± 3% dəqiqliklə, barometrik təzyiqi ± 1 hPa mütləq dəqiqliklə və temperaturu ± 1.0 ° C dəqiqliklə ölçə bilir. Təzyiq hündürlüklə dəyişdiyindən və təzyiq ölçüləri çox yaxşı olduğundan, ± 1 metr və ya daha yaxşı dəqiqliklə bir altimetr olaraq da istifadə edə bilərsiniz!

Sənədlər, qaz sensoru üçün "yanma vaxtına" ehtiyac olduğunu söyləyir.

Addım 12: Hansını istifadə etməliyəm?

Hansından istifadə etməliyəm?
Hansından istifadə etməliyəm?
  • TMP36 çox ucuz, kiçik və populyardır, lakin istifadəsi olduqca çətindir və qeyri -dəqiq ola bilər.
  • DS18B20 kiçik, dəqiq, ucuz, istifadəsi çox asandır və suya davamlı bir versiyaya malikdir.
  • DTH22 həmçinin rütubəti göstərir, orta qiymətlidir və istifadəsi asandır, lakin çox yavaş ola bilər.
  • BME680 digərlərindən daha çox şey edir, lakin bahalıdır.

Yalnız temperatur istəsəm, DS18B20 -ni ± 0,5 ° C dəqiqliklə istifadə edərdim, amma ən çox sevdiyim BME680 -dir, çünki daha çox iş görür və çoxlu sayda fərqli layihələrdə istifadə edilə bilər.

Son bir fikir. Temperatur sensörünüzü mikroprosessordan uzaq tutduğunuzdan əmin olun. Bəzi Raspberry Pi HAT'lar, ana lövhədən gələn istiliyin sensoru istiləşdirməsinə icazə verir və yanlış oxu verir.

Addım 13: Əlavə Düşüncələr və Təcrübə

Əlavə Düşüncələr və Təcrübə
Əlavə Düşüncələr və Təcrübə

Gülliverrr, ChristianC231 və pgagen, indiyə qədər etdiyim işlər haqqında fikirlərinizə görə təşəkkür edirəm. Gecikdiyim üçün üzr istəyirəm, amma bir neçə həftədir ki, elektronika dəstimə daxil olmadan İrlandiyada tətildə oldum.

Sensorların birlikdə işlədiyini göstərmək üçün ilk cəhddir.

Sensorları növbə ilə oxumaq və hər 20 saniyədə bir temperatur dəyərlərini çap etmək üçün bir yazı yazdım.

Kiti hər şeyi soyutmaq üçün bir saat soyuducuya qoydum. Mən onu PC -yə qoşdum və nəticələrini çap etdirmək üçün Mu -nu aldım. Çıxış sonra kopyalanaraq bir.csv faylına çevrildi (vergüllə ayrılmış dəyişənlər) və Excel -də nəticələrdən qrafiklər çəkildi.

Nəticələri qeyd etmədən əvvəl dəsti soyuducudan çıxarmaq təxminən üç dəqiqə çəkdi, buna görə də bu müddət ərzində temperaturda bir qədər artım baş verdi. Dörd sensorun fərqli istilik qabiliyyətinə malik olduğundan və fərqli sürətlərdə istiləşəcəyindən şübhələnirəm. Sensorlar otaq istiliyinə yaxınlaşdıqca istiləşmə sürətinin azalacağı gözlənilir. Bunu civə termometrimlə 24.4 ° C olaraq qeyd etdim.

Döngələrin başlanğıcındakı temperatur fərqləri, sensorların fərqli istilik qabiliyyətlərinə bağlı ola bilər. Xətlərin otaq istiliyinə yaxınlaşdıqca sona yaxınlaşdığını görməkdən məmnunam. TMP36 -nın həmişə digər sensorlardan daha yüksək olması məni narahat edir.

Bu cihazların təsvir edilmiş düzgünlüyünü yenidən yoxlamaq üçün məlumat vərəqlərinə baxdım

TMP36

  • İstilik üzərində ± 2 ° C dəqiqlik (tip)
  • ± 0,5 ° C xətti (tip)

DS18B20

± 0,5 ° C -10 ° C ilə +85 ° C arasında dəqiqlik

DHT22

temperatur ± 0,5 ° C

BME680

± 1.0 ° C dəqiqliklə temperatur

Addım 14: Tam Qrafik

Tam Qrafik
Tam Qrafik

İndi görə bilərsiniz ki, sensorlar nəticədə düzəldilər və təsvir olunan dəqiqlik daxilində temperatur haqqında az -çox razılaşırlar. TMP36 dəyərlərindən 1,7 dərəcə çıxarılsa (± 2 ° C gözlənilir) bütün sensorlar arasında yaxşı bir razılaşma var.

Bu təcrübəni ilk dəfə işlədiyim zaman DHT22 sensoru problem yaratdı:

main.py çıxışı:

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 oxuma xətası: ('DHT sensoru tapılmadı, naqilləri yoxlayın',)

İzləmə (sonuncu zəng):

Fayl "main.py", satır 64, in

Fayl "main.py", satır 59, get_dht22

NameError: təyin etməzdən əvvəl istinad edilən yerli dəyişən

Bu problemi həll etmək üçün ssenarini dəyişdirdim və yenidən başladım:

DHT oxuma xətası: ('DHT sensoru tapılmadı, naqilləri yoxlayın',)

25.9, 22.6, -999.0, 22.6

DHT oxuma xətası: ('DHT sensoru tapılmadı, naqilləri yoxlayın',)

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 oxuma xətası: ('DHT sensoru tapılmadı, naqilləri yoxlayın',)

27.1, 23.0, -999.0, 23.0

DHT oxuma xətası: ('DHT sensoru tapılmadı, naqilləri yoxlayın',)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

DHT oxuma xətası: ('DHT sensoru tapılmadı, naqilləri yoxlayın',)

28.4, 23.2, -999.0, 23.3

DHT oxuma xətası: ('DHT sensoru tapılmadı, naqilləri yoxlayın',)

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

İkinci qaçışda heç bir problemim yox idi. Adafruit sənədləri, bəzən DHT sensorlarının oxunuşları qaçırdığını xəbərdar edir.

Addım 15: Nəticələr

Nəticələr
Nəticələr

Bu əyri, bəzi sensorların daha yüksək istilik tutumunun reaksiya müddətini artırdığını açıq şəkildə göstərir.

Bütün sensorlar temperaturun yüksəlməsini və düşməsini qeyd edir.

Yeni bir temperatura tez uyğunlaşa bilmirlər.

Çox dəqiq deyillər. (Bir hava stansiyası üçün kifayət qədər yaxşıdırmı?)

Sensorunuzu etibarlı bir termometrə qarşı kalibr etməyiniz lazım ola bilər.

Tövsiyə: