Daftar Isi:
- Perlengkapan
- Langkah 1: Sirkuit
- Langkah 2: Metode
- Langkah 3: TMP36 - Percobaan Awal
- Langkah 4: Hasil Substitusi Potensiometer
- Langkah 5: Rata-rata Bacaan dan Hasil
- Langkah 6: DS18B20 - Pengujian Awal
- Langkah 7: DS18B20 Bekerja Dengan Baik
- Langkah 8: DHT22 dan DHT11
- Langkah 9: Hasil DHT22
- Langkah 10: Tes DTH11
- Langkah 11: BME680
- Langkah 12: Yang Mana Yang Harus Saya Gunakan?
- Langkah 13: Pemikiran dan Eksperimen Lebih Lanjut
- Langkah 14: Grafik Penuh
- Langkah 15: Kesimpulan
Video: Menguji Sensor Suhu - Yang Mana untuk Saya?: 15 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Salah satu sensor pertama yang ingin dicoba oleh pendatang baru dalam komputasi fisik adalah sesuatu untuk mengukur suhu. Empat dari sensor yang paling populer adalah TMP36, yang memiliki output analog dan memerlukan konverter analog ke digital, DS18B20, yang menggunakan konektivitas satu kabel, DHT22, atau DHT11 yang sedikit lebih murah, yang hanya membutuhkan pin digital, tetapi juga memberikan pembacaan kelembaban, dan terakhir BME680 yang menggunakan I2C (dengan SPI juga pada beberapa papan breakout) dan memberikan suhu, kelembaban, gas (VOC) dan tekanan atmosfer tetapi harganya sedikit lebih mahal.
Saya ingin melihat seberapa akurat mereka, dan menemukan kelebihan atau kekurangannya. Saya sudah memiliki termometer air raksa yang akurat, sisa dari pencetakan foto berwarna pada masa pemrosesan kimia, untuk membandingkannya. (Jangan pernah membuang apa pun - Anda akan membutuhkannya nanti!)
Saya akan menggunakan CircuitPython dan papan pengembangan Adafruit Itsybitsy M4 untuk pengujian ini. Driver yang sesuai tersedia untuk semua perangkat.
Perlengkapan
Daftar awal saya:
- Mikrokontroler Itsybitsy M4 Express
- kabel micro USB - untuk pemrograman
- TMP36
- DS18B20
- Resistor 4.7K Ohm
- DHT22
- BME680
- Multimeter
- Papan tempat memotong roti atau papan strip
- Menghubungkan kabel
Langkah 1: Sirkuit
Kabel oranye adalah 3,3 V
Kabel hitam adalah GND
Di bagian bawah papan adalah titik uji untuk mengukur tegangan. (output analog 3.3v, GND dan TMP36)
Soket tengah adalah, dari kiri ke kanan:
- TMP36: 3.3v, sinyal analog keluar, GND
- DS18B20: GND, sinyal digital keluar, 3.3v
- DHT22: 3.3v, sinyal keluar, kosong, GND
- BME680: 3.3v, SDA, SCL, kosong, GND
Konektor belakang, untuk koneksi ke papan IB M4E, dari kiri ke kanan
- 3.3v
- TMP36 - analog keluar ke pin A2
- GND
- DS18B20 digital keluar ke pin D3 - hijau
- DHT22 digital keluar ke pin D2 - kuning
- SDA - putih
- SCL - merah muda
Resistor 4.7K Ohm adalah pullup dari sinyal ke 3.3v untuk koneksi 0ne-wire pada DS18B20.
Ada 2 trek yang dipotong di bagian belakang papan:
Di bawah ujung kiri dari kedua kabel merah muda dan putih. (Di bawah kabel kuning.)
Langkah 2: Metode
Untuk setiap sensor saya akan menulis skrip singkat untuk membaca suhu (dan item lainnya jika tersedia) beberapa kali dan memeriksa suhu terhadap termometer air raksa(Hg) saya. Saya akan mencari untuk melihat seberapa dekat suhu dibandingkan dengan pembacaan merkuri dan apakah pembacaannya stabil/konsisten.
Saya juga akan melihat dokumentasi untuk melihat apakah pembacaan sesuai dengan akurasi yang diharapkan dan jika ada sesuatu yang dapat dilakukan untuk melakukan perbaikan.
Langkah 3: TMP36 - Percobaan Awal
Kaki kiri adalah 3.3v, kaki kanan adalah GND dan kaki tengah adalah tegangan analog yang mewakili suhu menggunakan rumus berikut. TempC = (milivolt - 500) / 10
Jadi, 750 milivolt menghasilkan suhu 25 C
Tampaknya ada beberapa masalah di sini. Suhu dari 'normal', termometer air raksa, jauh lebih rendah daripada dari TMP36 dan pembacaannya tidak terlalu konsisten - ada beberapa 'jitter' atau kebisingan.
Sensor TMP36 mengirimkan tegangan yang sebanding dengan suhu. Ini harus dibaca oleh konverter A/D sebelum suhu dihitung. Mari kita baca tegangan langsung dari kaki tengah sensor dengan multi-meter dan bandingkan dengan hasil dari A/D. Pembacaan dari kaki tengah dengan multi-meter saya adalah 722 milivolt, jauh lebih rendah dan pembacaan yang sangat stabil.
Ada dua hal yang bisa kita coba. Ganti potensiometer untuk TMP36 dan sesuaikan tegangan dalam perhitungan dengan tegangan aktual mikrokontroler. Kami kemudian akan melihat apakah tegangan yang dihitung lebih dekat dan jika noise/jitter berkurang.
Mari kita ukur tegangan aktual yang digunakan mikrokontroler dan A/D saya. Ini diasumsikan 3.3v tetapi sebenarnya hanya 3.275v.
Langkah 4: Hasil Substitusi Potensiometer
Ini jauh lebih baik. Pembacaan berada dalam beberapa milivolt dengan lebih sedikit noise. Ini menunjukkan bahwa kebisingan berasal dari TMP36 daripada A/D. Pembacaan pada meteran selalu stabil - tidak ada jitter. (Pengukur mungkin 'memuluskan' output yang gelisah.)
Salah satu cara untuk memperbaiki situasi mungkin dengan membaca rata-rata. Ambil sepuluh bacaan dengan cepat dan gunakan rata-rata. Saya juga akan menghitung simpangan baku saat saya mengubah program, untuk memberikan indikasi penyebaran hasil. Saya juga akan menghitung jumlah pembacaan dalam 1 standar deviasi rata-rata - semakin tinggi semakin baik.
Langkah 5: Rata-rata Bacaan dan Hasil
Masih banyak noise dan pembacaan dari TMP36 masih lebih tinggi daripada dari termometer air raksa. Untuk mengurangi kebisingan saya telah menyertakan kapasitor 100NF antara sinyal dan GND
Saya kemudian mencari solusi lain di internet dan menemukan ini: https://www.doctormonk.com/2015/02/accurate-and-re… Dr Monk menyarankan untuk menyertakan resistor 47 k Ohm antara sinyal dan GND.
www.desert-home.com/2015/03/battery-operate… Sementara orang ini menyarankan untuk menyortir 15 bacaan ke dalam urutan dan rata-rata pusat 5.
Saya memodifikasi skrip dan sirkuit untuk memasukkan saran-saran ini dan menyertakan pembacaan dari termometer air raksa.
Akhirnya! Sekarang kami memiliki pembacaan yang stabil dalam kisaran akurasi deskripsi perangkat.
Ini cukup banyak upaya untuk membuat sensor bekerja yang hanya memiliki akurasi pabrikan:
Akurasi - Tertinggi (Terendah): ±3°C (±4°C) Harganya hanya sekitar $1,50 (£2)
Langkah 6: DS18B20 - Pengujian Awal
Berhati-hatilah. Paket ini terlihat sangat mirip dengan TMP36 tetapi kaki-kakinya sebaliknya dengan 3.3v di sebelah kanan dan GND di sebelah kiri. Sinyal keluar berada di tengah. Agar perangkat ini berfungsi, kita memerlukan resistor 4,7 k Ohm antara sinyal dan 3,3v. Perangkat ini menggunakan protokol satu kabel dan kita perlu mengunduh beberapa driver ke dalam folder lib Itsybitsy M4 Express.
Harganya sekitar $4 / £4Spesifikasi teknis:
- Kisaran suhu yang dapat digunakan: -55 hingga 125°C (-67°F hingga +257°F)
- 9 hingga 12 bit resolusi yang dapat dipilih
- Menggunakan antarmuka 1-Wire - hanya membutuhkan satu pin digital untuk komunikasi
- ID 64 bit unik dibakar menjadi chip
- Beberapa sensor dapat berbagi satu pin
- ±0,5 °C Akurasi dari -10 °C hingga +85 °C
- Sistem alarm batas suhu
- Waktu kueri kurang dari 750ms
- Dapat digunakan dengan daya 3.0V hingga 5.5V
Masalah utama dengan sensor ini adalah bahwa ia menggunakan antarmuka Dallas 1-Wire dan tidak semua mikrokontroler memiliki driver yang sesuai. Kami beruntung, ada driver untuk Itsybitsy M4 Express.
Langkah 7: DS18B20 Bekerja Dengan Baik
Ini menunjukkan hasil yang bagus.
Satu set bacaan yang stabil tanpa pekerjaan tambahan dan biaya perhitungan. Pembacaan berada dalam kisaran akurasi yang diharapkan ±0,5°C bila dibandingkan dengan termometer air raksa saya.
Ada juga versi tahan air sekitar $ 10 yang telah saya gunakan di masa lalu dengan kesuksesan yang sama.
Langkah 8: DHT22 dan DHT11
DHT22 menggunakan termistor untuk mendapatkan suhu dan biaya sekitar $10 / £10 dan merupakan saudara yang lebih akurat dan mahal dari DHT11 yang lebih kecil. Ini juga menggunakan antarmuka satu kabel tetapi TIDAK kompatibel dengan protokol Dallas yang digunakan dengan DS18B20. Ia merasakan kelembapan dan juga suhu. Perangkat ini terkadang membutuhkan resistor pull up antara 3,3 v dan pin sinyal. Paket ini memiliki satu yang sudah diinstal.
- Biaya rendah
- Daya 3 hingga 5V dan I/O
- 2.5mA max penggunaan saat ini selama konversi (saat meminta data)
- Baik untuk pembacaan kelembaban 0-100% dengan akurasi 2-5%
- Baik untuk pembacaan suhu -40 hingga 80 ° C ± 0,5 ° C akurasi
- Tidak lebih dari 0.5 Hz sampling rate (setiap 2 detik sekali)
- Ukuran tubuh 27mm x 59mm x 13.5mm (1,05" x 2,32" x 0,53")
- 4 pin, jarak 0,1"
- Berat (hanya DHT22): 2.4g
Dibandingkan dengan DHT11, sensor ini lebih presisi, lebih akurat dan bekerja dalam rentang suhu/kelembaban yang lebih besar, tetapi lebih besar dan lebih mahal.
Langkah 9: Hasil DHT22
Ini adalah hasil yang sangat baik dengan sedikit usaha. Pembacaan cukup stabil dan dalam toleransi yang diharapkan. Pembacaan kelembaban adalah bonus.
Anda hanya dapat melakukan pembacaan setiap detik.
Langkah 10: Tes DTH11
Termometer air raksa saya menunjukkan 21,9 derajat C. Ini adalah DHT11 lama yang saya ambil dari proyek lama dan nilai kelembapannya sangat berbeda dengan pembacaan DHT22 dari beberapa menit yang lalu. Biayanya sekitar $5 / £5.
Deskripsinya meliputi:
- Baik untuk pembacaan kelembaban 20-80% dengan akurasi 5%
- Baik untuk pembacaan suhu 0-50 ° C ± 2 ° C akurasi - kurang dari DTH22
Suhu tampaknya masih dalam kisaran akurasi tetapi saya tidak percaya pembacaan kelembaban dari perangkat lama ini.
Langkah 11: BME680
Sensor ini berisi suhu, kelembaban, tekanan barometrik, dan kemampuan penginderaan gas VOC dalam satu paket tetapi merupakan sensor yang paling mahal yang diuji di sini. Biayanya sekitar £18,50 / $22. Ada produk serupa tanpa sensor gas yang harganya sedikit lebih murah.
Ini adalah sensor standar emas dari lima. Sensor suhu akurat, dan dengan driver yang sesuai, sangat mudah digunakan. Versi ini menggunakan I2C tetapi papan breakout Adafruit juga dapat menggunakan SPI.
Seperti BME280 & BMP280, sensor presisi dari Bosch ini dapat mengukur kelembaban dengan akurasi ±3%, tekanan barometrik dengan akurasi absolut ±1 hPa, dan suhu dengan akurasi ±1,0°C. Karena tekanan berubah dengan ketinggian, dan pengukuran tekanan sangat baik, Anda juga dapat menggunakannya sebagai altimeter dengan akurasi ±1 meter atau lebih baik!
Dokumentasi mengatakan perlu beberapa 'waktu pembakaran' untuk sensor gas.
Langkah 12: Yang Mana Yang Harus Saya Gunakan?
- TMP36 sangat murah, kecil dan populer tetapi cukup sulit digunakan dan mungkin tidak akurat.
- DS18B20 kecil, akurat, murah, sangat mudah digunakan dan memiliki versi tahan air.
- DTH22 juga menunjukkan kelembapan, dengan harga sedang dan mudah digunakan tetapi mungkin terlalu lambat.
- BME680 melakukan lebih banyak daripada yang lain tetapi mahal.
Jika saya hanya menginginkan suhu, saya akan menggunakan DS18B20 dengan akurasi ±0,5°C tetapi favorit saya adalah BME680 karena ia melakukan lebih banyak hal dan dapat digunakan dalam sejumlah besar proyek yang berbeda.
Satu pemikiran terakhir. Pastikan Anda menjaga sensor suhu Anda jauh dari mikroprosesor. Beberapa HAT Raspberry Pi memungkinkan panas dari papan utama untuk menghangatkan sensor, memberikan pembacaan yang salah.
Langkah 13: Pemikiran dan Eksperimen Lebih Lanjut
Terima kasih gulliverrr, ChristianC231 dan pgagen atas komentar Anda tentang apa yang telah saya lakukan sejauh ini. Saya minta maaf atas keterlambatannya, tetapi saya sedang berlibur di Irlandia, tanpa akses ke peralatan elektronik saya selama beberapa minggu.
Berikut adalah upaya pertama untuk menunjukkan sensor bekerja sama.
Saya menulis skrip untuk membaca sensor secara bergantian dan mencetak nilai suhu setiap 20 detik atau lebih.
Saya memasukkan kit ke dalam lemari es selama satu jam, untuk mendinginkan semuanya. Saya menghubungkannya ke PC dan meminta Mu untuk mencetak hasilnya. Outputnya kemudian disalin, diubah menjadi file.csv (variabel yang dipisahkan koma) dan grafik diambil dari hasil di Excel.
Dibutuhkan sekitar tiga menit dari mengeluarkan kit dari lemari es sebelum hasilnya dicatat, sehingga beberapa kenaikan suhu telah terjadi dalam interval ini. Saya menduga bahwa keempat sensor memiliki kapasitas termal yang berbeda sehingga akan memanas pada tingkat yang berbeda. Laju pemanasan diperkirakan akan menurun saat sensor mendekati suhu kamar. Saya mencatat ini sebagai 24,4°C dengan termometer air raksa saya.
Perbedaan suhu yang lebar pada awal kurva dapat disebabkan oleh perbedaan kapasitas termal sensor. Saya senang melihat bahwa garis-garis itu menyatu menjelang akhir saat mendekati suhu kamar. Saya khawatir TMP36 selalu jauh lebih tinggi daripada sensor lainnya.
Saya mencari lembar data untuk memeriksa kembali keakuratan yang dijelaskan dari perangkat ini
TMP36
- ±2°C akurasi di atas suhu (ketik)
- ±0,5°C linearitas (tip)
DS18B20
±0,5°C Akurasi dari -10 °C hingga +85 °C
DHT22
suhu ± 0,5 ° C
BME680
suhu dengan akurasi ± 1,0 ° C
Langkah 14: Grafik Penuh
Anda sekarang dapat melihat bahwa sensor akhirnya turun dan menyetujui suhu kurang lebih dalam akurasi yang dijelaskan. Jika 1,7 derajat diambil dari nilai TMP36 (±2°C diharapkan) ada kesepakatan yang baik antara semua sensor.
Pertama kali saya menjalankan eksperimen ini, sensor DHT22 menyebabkan masalah:
keluaran main.py:
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
Kesalahan pembacaan DHT: ('Sensor DHT tidak ditemukan, periksa kabel',)
Traceback (panggilan terakhir terakhir):
File "main.py", baris 64, di
File "main.py", baris 59, di get_dht22
NameError: variabel lokal direferensikan sebelum penugasan
Jadi saya memodifikasi skrip untuk mengatasi masalah ini dan memulai kembali perekaman:
Kesalahan pembacaan DHT: ('Sensor DHT tidak ditemukan, periksa kabel',)
25.9, 22.6, -999.0, 22.6
Kesalahan pembacaan DHT: ('Sensor DHT tidak ditemukan, periksa kabel',)
25.9, 22.8, -999.0, 22.7
25.9, 22.9, 22.1, 22.8
25.9, 22.9, 22.2, 22.9
Kesalahan pembacaan DHT: ('Sensor DHT tidak ditemukan, periksa kabel',)
27.1, 23.0, -999.0, 23.0
Kesalahan pembacaan DHT: ('Sensor DHT tidak ditemukan, periksa kabel',)
27.2, 23.0, -999.0, 23.1
25.9, 23.3, 22.6, 23.2
Kesalahan pembacaan DHT: ('Sensor DHT tidak ditemukan, periksa kabel',)
28.4, 23.2, -999.0, 23.3
Kesalahan pembacaan DHT: ('Sensor DHT tidak ditemukan, periksa kabel',)
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
Saya tidak punya masalah dengan putaran kedua. Dokumentasi Adafruit memang memperingatkan bahwa terkadang sensor DHT tidak membaca.
Langkah 15: Kesimpulan
Kurva ini dengan jelas menunjukkan bahwa kapasitas termal yang lebih tinggi dari beberapa sensor meningkatkan waktu reaksinya.
Semua sensor merekam suhu naik dan turun.
Mereka tidak terlalu cepat untuk menyesuaikan diri dengan suhu baru.
Mereka tidak terlalu akurat. (Apakah mereka cukup baik untuk stasiun cuaca?)
Anda mungkin perlu mengkalibrasi sensor Anda dengan termometer tepercaya.
Direkomendasikan:
Sensor Suhu untuk Arduino Diterapkan untuk COVID 19: 12 Langkah (dengan Gambar)
Sensor Suhu untuk Arduino Diterapkan untuk COVID 19: Sensor suhu untuk Arduino adalah elemen mendasar ketika kita ingin mengukur suhu prosesor tubuh manusia. Sensor suhu dengan Arduino harus bersentuhan atau dekat untuk menerima dan mengukur tingkat panas. Begitulah cara
ESP8266 NodeMCU Access Point (AP) untuk Server Web Dengan Sensor Suhu DT11 dan Mencetak Suhu & Kelembaban di Browser: 5 Langkah
ESP8266 NodeMCU Access Point (AP) untuk Web Server Dengan Sensor Suhu DT11 dan Pencetakan Suhu & Kelembaban di Browser: Hai guys di sebagian besar proyek kami menggunakan ESP8266 dan di sebagian besar proyek kami menggunakan ESP8266 sebagai server web sehingga data dapat diakses di perangkat apa pun melalui wifi dengan mengakses server Web yang dihosting oleh ESP8266 tetapi satu-satunya masalah adalah kita membutuhkan router yang berfungsi untuk
Cara Menggunakan Tinkercad untuk Menguji & Menerapkan Perangkat Keras Anda: 5 Langkah (dengan Gambar)
Cara Menggunakan Tinkercad untuk Menguji & Mengimplementasikan Perangkat Keras Anda: Simulasi sirkuit adalah teknik di mana perangkat lunak komputer mensimulasikan perilaku sirkuit atau sistem elektronik. Desain baru dapat diuji, dievaluasi, dan didiagnosis tanpa benar-benar membangun sirkuit atau sistem. Simulasi sirkuit mungkin
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): 6 Langkah (Dengan Gambar)
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini dan
Keyboard Saya Tangan Saya: 8 Langkah (dengan Gambar)
Keyboard Saya Tangan Saya: Saya menggunakan pemotong laser Epilog baru yang baru-baru ini dimiliki Instructables untuk menggores gambar tangan saya dengan laser ke keyboard laptop saya…secara permanen. Sekarang, itu membatalkan garansi Anda dalam gaya DIY! Saya telah mengukir lebih banyak laptop dengan laser daripada kebanyakan