Mundarija:

Harorat sensori sinovlari - qaysi biri men uchun?: 15 qadam (rasmlar bilan)
Harorat sensori sinovlari - qaysi biri men uchun?: 15 qadam (rasmlar bilan)

Video: Harorat sensori sinovlari - qaysi biri men uchun?: 15 qadam (rasmlar bilan)

Video: Harorat sensori sinovlari - qaysi biri men uchun?: 15 qadam (rasmlar bilan)
Video: УХЛАШ ҲОЛАТИ КЎП СИРЛАРНИ СУ́ЗЛАБ КУ́ЯДИ 2024, Noyabr
Anonim
Harorat sensori sinovlari - qaysi biri men uchun?
Harorat sensori sinovlari - qaysi biri men uchun?

Jismoniy hisoblashda yangi kelganlar haroratni o'lchashni xohlaydigan birinchi sensorlardan biri. Eng mashhur to'rtta sensor-TMP36, u analog chiqishga ega va raqamli konvertorning analogiga muhtoj, DS18B20, u bitta simli ulanishni ishlatadi, DHT22 yoki biroz arzonroq DHT11, unga faqat raqamli pin kerak. namlik ko'rsatkichini beradi va nihoyat, I2C dan foydalanadigan BME680 (SPI bilan bir qatorda) va harorat, namlik, gaz (VOC) va atmosfera bosimini beradi, lekin biroz qimmatroq.

Men ularning qanchalik to'g'ri ekanligini ko'rishni va har qanday afzallik yoki kamchiliklarni kashf etmoqchiman. Menda kimyoviy taqqoslash davrida rangli fotosurat bosib chiqarishdan qolgan, simobli aniq termometr bor. (Hech qachon hech narsani tashlamang - keyinroq sizga kerak bo'ladi!)

Men ushbu testlar uchun CircuitPython va Adafruit Itsybitsy M4 ishlab chiqish platasidan foydalanmoqchiman. Barcha qurilmalar uchun mos drayverlar mavjud.

Ta'minotlar

Mening dastlabki ro'yxatim:

  • Itsybitsy M4 Express mikrokontroller
  • micro USB kabeli - dasturlash uchun
  • TMP36
  • DS18B20
  • 4.7K Ohm qarshilik
  • DHT22
  • BME680
  • Ko'p metrli
  • Non paneli yoki tasma taxtasi
  • Ulanish simlari

1 -qadam: davralar

Davralar
Davralar

To'q sariq simlar 3,3 V ga teng

Qora simlar GND

Kengashning pastki qismida kuchlanishni o'lchash uchun test punktlari joylashgan. (3.3v, GND va TMP36 analog chiqishi)

Markaziy rozetkalar chapdan o'ngga:

  • TMP36: 3.3v, analog signal chiqishi, GND
  • DS18B20: GND, raqamli signal chiqishi, 3.3v
  • DHT22: 3.3v, uzatish, bo'sh, GND
  • BME680: 3.3v, SDA, SCL, bo'sh, GND

Orqa ulagich, IB M4E platasiga ulanish uchun, chapdan o'ngga

  • 3.3v
  • TMP36 - A2 piniga analog
  • GND
  • DS18B20 raqamli chiqishi D3 piniga - yashil rangda
  • DHT22 raqamli chiqishi D2 piniga - sariq
  • SDA - oq
  • SCL - pushti

4.7K Ohmli rezistor-bu DS18B20-dagi 0ne-simli ulanish uchun signaldan 3.3vgacha tortish.

Kengashning orqa tomonida ikkita kesilgan iz bor:

Pushti va oq simlarning chap uchi ostida. (Sariq sim ostida.)

2 -qadam: usul

Usul
Usul

Har bir sensori uchun men haroratni (va agar mavjud bo'lsa) bir necha marta o'qish va simob (Hg) termometriga qarab haroratni tekshirish uchun qisqa skript yozaman. Men haroratning simob ko'rsatkichi bilan qanchalik yaqinligini va ko'rsatkichlar barqaror/izchil bo'ladimi -yo'qligini tekshirishni istayman.

Men, shuningdek, o'qishlar kutilgan aniqlikka mos keladimi yoki yaxshilanish uchun biror narsa qilish mumkinmi, deb hujjatlarni ko'rib chiqaman.

3 -qadam: TMP36 - dastlabki sinov

TMP36 - dastlabki sinov
TMP36 - dastlabki sinov
TMP36 - dastlabki sinov
TMP36 - dastlabki sinov

Chap oyoq - 3,3v, o'ng oyog'i - GND va markaziy oyog'i - analog formulasi, haroratni quyidagi formula yordamida ifodalaydi. TempC = (millivolts - 500) / 10

Shunday qilib, 750 millivolt 25 C haroratni beradi

Ko'rinib turibdiki, bu erda bir nechta muammolar bor. "Oddiy" simob termometrining harorati TMP36 ga qaraganda ancha past bo'ladi va ko'rsatkichlar unchalik mos kelmaydi - ba'zi "titroq" yoki shovqin bor.

TMP36 sensori haroratga mutanosib kuchlanishni yuboradi. Haroratni hisoblashdan oldin uni A/D konvertori o'qishi kerak. Keling, ko'p metrli datchikning o'rta oyog'idagi kuchlanishni to'g'ridan-to'g'ri o'qib chiqamiz va uni A/D natijasi bilan solishtiramiz. Mening ko'p metrli markaziy oyog'imdan o'qish 722 millivolt, ancha past va juda barqaror o'qish.

Biz sinab ko'rishimiz mumkin bo'lgan ikkita narsa bor. TMP36 uchun potentsiometrni almashtiring va hisobdagi kuchlanishni mikrokontrollerning haqiqiy kuchlanishiga moslashtiring. Keyin biz hisoblangan kuchlanish yaqinroq yoki yo'qligini va shovqin/titroq kamayishini ko'ramiz.

Keling, mikrokontroller va A/D ishlatilayotgan haqiqiy kuchlanishni o'lchaymiz. Bu 3.3v deb qabul qilingan, lekin aslida faqat 3.275v.

4 -qadam: Potentsiometrni almashtirish natijalari

Potentsiometrni almashtirish natijalari
Potentsiometrni almashtirish natijalari

Bu ancha yaxshi. O'qishlar shovqin kamroq bo'lgan bir necha millivolt ichida. Bu shovqin A/D emas, balki TMP36 dan ekanligini ko'rsatadi. Hisoblagichdagi ko'rsatkich har doim bir xilda - hech qanday chayqalish yo'q. (Hisoblagich chayqalishni "yumshatishi" mumkin.)

Vaziyatni yaxshilashning bir usuli o'rtacha o'qish bo'lishi mumkin. O'nta o'qishni tezda oling va o'rtacha ko'rsatkichdan foydalaning. Men, shuningdek, dasturning o'zgarishi paytida standart og'ishlarni hisoblab chiqaman va natijalarning tarqalishini ko'rsataman. Men o'qishlar sonini o'rtacha 1 standart og'ish ichida hisoblayman - qanchalik baland bo'lsa, shuncha yaxshi.

5 -qadam: O'rtacha o'qishlar va natija

O'rtacha o'qishlar va natija
O'rtacha o'qishlar va natija

Hali ham katta shovqin bor va TMP36 ko'rsatkichi hali ham simob termometridan yuqori. Shovqinni kamaytirish uchun men signal va GND o'rtasida 100NF kondansatör qo'shdim

Keyin men Internetda boshqa echimlarni qidirdim va topdim: https://www.doctormonk.com/2015/02/accurate-and-re… Doktor Monk signal va GND o'rtasida 47 k Ohmlik rezistorni qo'shishni taklif qiladi.

www.desert-home.com/2015/03/battery-operate… Bu yigit 15 o'qishni tartibiga ko'ra saralashni va markazni o'rtacha 5 qilishni taklif qiladi.

Men ushbu takliflarni kiritish uchun skriptni va sxemani o'zgartirdim va simob termometridan o'qishni o'z ichiga oldim.

Nihoyat! Endi bizda qurilma tavsifi aniqligi oralig'ida barqaror o'qishlar mavjud.

Sensorni ishga tushirish uchun ko'p kuch sarflandi, faqat ishlab chiqaruvchining aniqligi:

Aniqlik - eng yuqori (eng past): ± 3 ° C (± 4 ° C) Ularning narxi atigi 1,50 dollar (2 funt)

6 -qadam: DS18B20 - dastlabki sinov

DS18B20 - dastlabki sinov
DS18B20 - dastlabki sinov

Juda ehtiyot bo'ling. Bu paket TMP36 ga juda o'xshaydi, lekin oyoqlari teskari tomonda, o'ngda 3.3v va chapda GND. Chiqish markazda. Qurilmani ishga tushirish uchun bizga signal va 3.3v oralig'ida 4,7 k Ohmlik rezistor kerak. Ushbu qurilma bitta simli protokoldan foydalanadi va biz bir nechta drayverlarni Itsybitsy M4 Express lib papkasiga yuklab olishimiz kerak.

Bu taxminan $ 4 / £ 4 turadi Texnik xususiyatlari:

  • Foydalanish mumkin bo'lgan harorat oralig'i: -55 dan 125 ° C gacha (-67 ° F dan +257 ° F gacha)
  • 9 dan 12 bitgacha tanlash mumkin
  • 1 -simli interfeysdan foydalaniladi - aloqa uchun faqat bitta raqamli pin kerak
  • Noyob 64 bitli identifikator chipga yozilgan
  • Bir nechta sensorlar bitta pinni ulashishi mumkin
  • ± 0,5 ° C -10 ° C dan +85 ° C gacha aniqlik
  • Harorat chegaralangan signalizatsiya tizimi
  • So'rov vaqti 750 ms dan kam
  • 3.0 V dan 5.5 V gacha quvvat bilan foydalanish mumkin

Ushbu sensorning asosiy muammosi shundaki, u Dallas 1-Wire interfeysidan foydalanadi va hamma mikrokontrolderlar mos haydovchiga ega emas. Biz omadlimiz, Itsybitsy M4 Express uchun haydovchi bor.

7 -qadam: DS18B20 yaxshi ishlaydi

DS18B20 yaxshi ishlaydi
DS18B20 yaxshi ishlaydi

Bu ajoyib natijani ko'rsatadi.

Qo'shimcha ish va hisob -kitob xarajatlari bo'lmagan doimiy o'qishlar to'plami. O'qishlar mening simob termometrim bilan solishtirganda ± 0,5 ° C kutilgan aniqlik oralig'ida.

Taxminan 10 dollarlik suv o'tkazmaydigan versiya ham bor, men bundan oldin ham xuddi shunday muvaffaqiyat bilan foydalanganman.

8 -qadam: DHT22 va DHT11

DHT22 va DHT11
DHT22 va DHT11

DHT22 haroratni o'lchash uchun termistordan foydalanadi va narxi taxminan 10 dollar turadi va kichikroq DHT11 ning aniqroq va qimmatroq akasi. Bundan tashqari, u bitta simli interfeysdan foydalanadi, lekin DS18B20 bilan ishlatiladigan Dallas protokoliga mos kelmaydi. U namlikni ham, haroratni ham sezadi. Bu qurilmalarga ba'zida 3,3 v va signal pimi orasidagi tortish qarshiligi kerak bo'ladi. Bu paketda allaqachon o'rnatilgan.

  • Arzon
  • 3 dan 5 V gacha kuch va kirish -chiqish
  • Konvertatsiya paytida 2,5 mA maksimal oqimdan foydalanish (ma'lumot so'ralganda)
  • 2-5% aniqlikdagi namlikning 0-100% ko'rsatkichlari uchun yaxshi
  • -40 dan 80 ° C gacha bo'lgan harorat ko'rsatkichlari ± 0,5 ° C aniqligi uchun yaxshi
  • 0,5 Gts dan oshmaydigan namuna olish tezligi (har 2 soniyada bir marta)
  • Tana o'lchami 27 mm x 59 mm x 13,5 mm (1,05 "x 2,32" x 0,53 ")
  • 4 pinli, 0,1 dyuymli oraliq
  • Og'irligi (faqat DHT22): 2,4 g

DHT11 bilan taqqoslaganda, bu sensor aniqroq, aniqroq va harorat/namlikning katta diapazonida ishlaydi, lekin u kattaroq va qimmatroq.

9 -qadam: DHT22 natijalari

DHT22 natijalari
DHT22 natijalari

Bu juda oz harakat bilan ajoyib natijalar. O'qishlar juda barqaror va kutilgan bardoshlik chegarasida. Namlik ko'rsatkichi - bu bonus.

Siz o'qishni har soniyada olishingiz mumkin.

10 -qadam: DTH11 testi

DTH11 test
DTH11 test

Mening simob termometrim 21,9 darajani ko'rsatdi. Bu eski loyihadan olingan DHT11 va namlik qiymati bir necha daqiqa oldingi DHT22 ko'rsatkichlaridan juda farq qiladi. Bu taxminan $ 5 / £ 5 turadi.

Uning tavsifi quyidagilarni o'z ichiga oladi:

  • 5% aniqlik bilan namlikni 20-80% o'qish uchun yaxshi
  • 0-50 ° S harorat ko'rsatkichlari uchun ± 2 ° C aniqlikda - DTH22 dan past

Harorat hali ham aniqlik diapazonida ko'rinadi, lekin men bu eski qurilmadagi namlik ko'rsatkichiga ishonmayman.

11 -qadam: BME680

BME680
BME680

Sensor bitta paketda harorat, namlik, barometrik bosim va gazni o'lchash qobiliyatini o'z ichiga oladi, lekin bu erda sinovdan o'tkaziladigan datchiklarning eng qimmati. Taxminan 18,50 funt / 22 dollar turadi. Gaz sensori bo'lmagan shunga o'xshash mahsulot bor, u biroz arzonroq.

Bu beshta oltin standart sensori. Harorat sensori aniq va tegishli haydovchilar bilan ishlatish juda oson. Bu versiya I2C -dan foydalanadi, lekin Adafruit sindiruvchi kengashi SPI -dan ham foydalanishi mumkin.

BME280 va BMP280 singari, Boschning bu aniq sensori namlikni ± 3% aniqlikda, barometrik bosimni ± 1 gPa mutlaq aniqlikda va haroratni ± 1,0 ° C aniqlikda o'lchashi mumkin. Bosim balandlik bilan o'zgarganligi va bosim o'lchovlari juda yaxshi bo'lgani uchun siz uni ± 1 metr yoki undan yuqori aniqlikdagi balandlik o'lchagichi sifatida ham ishlatishingiz mumkin!

Hujjatlarga ko'ra, gaz sensori uchun "yonish vaqti" kerak.

12 -qadam: Qaysi birini ishlatishim kerak?

Qaysi birini ishlatishim kerak?
Qaysi birini ishlatishim kerak?
  • TMP36 juda arzon, kichik va mashhur, lekin ulardan foydalanish juda qiyin va noto'g'ri bo'lishi mumkin.
  • DS18B20 kichik, aniq, arzon, ishlatish uchun juda qulay va suv o'tkazmaydigan versiyasiga ega.
  • DTH22 shuningdek namlikni ko'rsatadi, o'rtacha narxda va ulardan foydalanish oson, lekin juda sekin bo'lishi mumkin.
  • BME680 boshqalarga qaraganda ancha yaxshi ishlaydi, lekin qimmat.

Agar men faqat haroratni xohlasam, men DS18B20 ni ± 0,5 ° C aniqlikda ishlatardim, lekin mening yoqtirganim BME680, chunki u ko'proq narsani bajaradi va uni ko'plab turli loyihalarda ishlatish mumkin.

Bitta yakuniy fikr. Harorat sensori mikroprotsessordan uzoqroq turishiga ishonch hosil qiling. Ba'zi Raspberry Pi HAT'lar asosiy taxtadan kelgan issiqlik sensorni isitishga imkon beradi va bu noto'g'ri o'qishni beradi.

13 -qadam: Qo'shimcha fikrlar va tajribalar

Qo'shimcha fikrlar va tajribalar
Qo'shimcha fikrlar va tajribalar

Rahmat gulliverrr, ChristianC231 va pgagen, men hozirgacha qilgan ishlarim haqida sharhlaringiz uchun. Kechikkanim uchun uzr so'rayman, lekin men Irlandiyada ta'tilda edim, bir necha hafta mobaynida elektron to'plamimdan foydalana olmadim.

Bu erda sensorlarning birgalikda ishlashini ko'rsatishga birinchi urinish.

Men sensorlarni navbatma -navbat o'qish uchun skript yozdim va haroratni har 20 soniyada bosib chiqaraman.

Men hamma narsani sovutish uchun to'plamni muzlatgichga bir soatga qo'ydim. Men uni kompyuterga uladim va natijalarni chop etish uchun Mu ni oldim. Keyin chiqish nusxa ko'chirildi,.csv faylga aylantirildi (vergul bilan ajratilgan o'zgaruvchilar) va grafikalar Excel natijalaridan olingan.

To'plamni muzlatgichdan olib chiqib ketish natijalari qayd etilgunga qadar taxminan uch daqiqa davom etdi, shuning uchun bu vaqt oralig'ida harorat biroz ko'tarildi. Menimcha, to'rtta sensorlar har xil issiqlik quvvatiga ega va shuning uchun ular har xil tezlikda qiziydi. Datchiklar xona haroratiga yaqinlashganda isish tezligi pasayishi kutilmoqda. Men buni simob termometr bilan 24,4 ° C deb yozdim.

Egri chiziqlar boshidagi haroratning katta farqlari datchiklarning har xil issiqlik sig'imiga bog'liq bo'lishi mumkin. Chiziqlar xona haroratiga yaqinlashganda oxirigacha birlashishini ko'rishdan mamnunman. Men TMP36 har doim boshqa sensorlarga qaraganda ancha yuqori bo'lishidan xavotirdaman.

Men ushbu qurilmalarning tasvirlangan to'g'riligini qayta tekshirish uchun ma'lumotlar varaqlarini ko'rib chiqdim

TMP36

  • Harorat bo'yicha ± 2 ° C aniqlik (tip)
  • ± 0,5 ° C chiziqli (tipik)

DS18B20

± 0,5 ° C -10 ° C dan +85 ° C gacha aniqlik

DHT22

harorat ± 0,5 ° C

BME680

± 1,0 ° C aniqlikdagi harorat

14 -qadam: To'liq grafik

To'liq grafik
To'liq grafik

Endilikda, sensorlar oxir -oqibat pastga tushib, haroratni ta'riflangan aniqlik chegarasida kelishib olganini ko'rishingiz mumkin. Agar TMP36 qiymatlaridan 1,7 daraja o'chirilsa (± 2 ° C kutilsa), barcha sensorlar o'rtasida yaxshi kelishuv mavjud.

Birinchi marta men ushbu tajribani o'tkazganimda DHT22 sensori muammoga olib keldi:

main.py chiqishi:

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 o'qish xatosi: ('DHT sensori topilmadi, simlarni tekshiring',)

Trackback (oxirgi oxirgi qo'ng'iroq):

"Main.py" fayli, 64 -qator, in

"Main.py" fayli, 59 -qator, get_dht22

NameError: tayinlashdan oldin havola qilingan mahalliy o'zgaruvchi

Men bu muammoni hal qilish uchun skriptni o'zgartirdim va yozishni qaytadan boshladim:

DHT o'qish xatosi: ('DHT sensori topilmadi, simlarni tekshiring',)

25.9, 22.6, -999.0, 22.6

DHT o'qish xatosi: ('DHT sensori topilmadi, simlarni tekshiring',)

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 o'qish xatosi: ('DHT sensori topilmadi, simlarni tekshiring',)

27.1, 23.0, -999.0, 23.0

DHT o'qish xatosi: ('DHT sensori topilmadi, simlarni tekshiring',)

27.2, 23.0, -999.0, 23.1

25.9, 23.3, 22.6, 23.2

DHT o'qish xatosi: ('DHT sensori topilmadi, simlarni tekshiring',)

28.4, 23.2, -999.0, 23.3

DHT o'qish xatosi: ('DHT sensori topilmadi, simlarni tekshiring',)

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

Ikkinchi yugurishda menda muammo yo'q edi. Adafruit hujjatlari, ba'zida DHT sensorlari o'qishni o'tkazib yuborishi haqida ogohlantiradi.

15 -qadam: Xulosa

Xulosa
Xulosa

Bu egri chiziq aniq ko'rsatadiki, ba'zi sensorlarning yuqori issiqlik sig'imi ularning reaktsiya vaqtini oshiradi.

Barcha sensorlar haroratning ko'tarilishi va tushishini qayd qiladi.

Ular yangi haroratga tezda moslasha olmaydi.

Ular unchalik aniq emas. (Ular ob -havo stantsiyasi uchun etarlimi?)

Sensorni ishonchli termometrga sozlashingiz kerak bo'lishi mumkin.

Tavsiya: