Saya telah melihat banyak contoh untuk menggunakan satu sensor suhu dengan Raspberry Pi, namun, bagaimana saya bisa mengalikan sensor suhu 5-6 ke Raspberry Pi? Saya ingin membaca suhu dari beberapa sumber secara bersamaan.
Dapatkah saya cukup menetapkan pin GPIO pada Raspberry Pi untuk membaca dari masing-masing sensor, pada dasarnya mereplikasi konfigurasi yang sama untuk satu sensor, atau apakah saya memerlukan semacam multiplexor yang akan dipasang oleh semua sensor pada gilirannya yang akan mengirim data secara paralel ke Raspberry Pi?
gpio
sensor
temperature
jc303
sumber
sumber
Jawaban:
Mengingat bahwa sensor Anda adalah DS18B20, dan ini adalah sirkuit 1-kawat dan bahwa 1-kawat adalah protokol yang dapat melakukan multiple adressing pada bus yang sama dan bahwa modul kernel suhu 1-kawat dapat membaca sebanyak 10 sensor suhu di bus yang sama. (periksa baris 49 dari kode sumber driver ).
Jika Anda hanya menghubungkan 10 sensor Anda ke 3 pin yang sama (3v3, GND dan 1-pin IO pin - yang merupakan pin nomor 4 pada konektor (ini adalah hardcoded pada driver!) Dan Anda akan membaca output mereka dari / sys / bus / w1 / devices / 28 * / w1_slave di mana 28 * adalah alamat 1-kawat unik individu. Periksa tutorial luar biasa dari adafruit . Jangan lupa resistor 4K7 yang menarik pin data (nomor 4 - HANYA SATU!) , karena penarikan internal Pi memberi Anda sekitar 50K, dan itu terlalu banyak untuk sensor, sehingga Anda akan memerlukan komponen tambahan ini.
Anda hanya harus memastikan Anda tidak mencoba menggunakan kekuatan parasit. Jika Anda menghubungkan 3 pin dari semua perangkat, Anda akan baik-baik saja.
sumber
You should just make sure you are not trying to use parasitic power.
Apa yang Anda maksudkan dengan ini? Apakah saya perlu menggunakan catu daya eksternal alih-alih 3.3V dari pin1 pada GPIO Pi? Atau kekuatan parasit jika saya hanya menggunakan Data GND + dan bukan 3V3? - ia menolak untuk melakukan hot-link ke nama pengguna Anda :-(this is hardcoded in the driver
apakah itu berarti menghubungkan sensor suhu ke pin GPIO yang berbeda (atau beberapa pin GPIO) tidak akan berfungsi?Untuk referensi, berikut adalah potongan pendek Python untuk menggigit GPIO 1-kawat dan mengembalikan pembacaan suhu untuk sensor pertama. Itu harus cukup mudah untuk memodifikasi untuk mengembalikan temp untuk semua sensor yang terhubung sebagai daftar atau sesuatu yang serupa.
sumber
Membicarakan bis 1-kawat bisa menyakitkan. Baik Anda berbicara dengan 1 sensor atau 100, Anda harus memikirkan waktu. Saya menulis beberapa kode untuk DS18B20 beberapa tahun yang lalu, tetapi dalam Majelis. Jika ada gunanya, di sini:
sumber
Jika tertarik, inilah panduan yang saya tulis untuk menggunakan sensor suhu DS18B20 (yang sebagaimana disebutkan di atas dapat dirantai dengan sebanyak yang Anda inginkan menggunakan pin GPIO yang sama pada Pi) dengan Raspberry Pi dan beberapa kode Pyhton yang mempostingnya ke Layanan tenang yang mengumpulkan dan menampilkan suhu dalam bagan dan diagram di situs web. Semua kode publik pada akun GitHub yang ditentukan. http://macgyverdev.blogspot.se/2014/01/weather-station-using-raspberry-pi.html
sumber
Apa jenis sensor suhu yang Anda gunakan? Jika Anda memiliki sesuatu seperti DS18B20 maka Anda dapat menghubungkan hingga 18446744073709551615 sensor, jika Anda memiliki banyak.
sumber
Untuk menjawab:
Ada tambahan modul yang bisa Anda dapatkan yang memiliki beberapa bus untuk terhubung ke pi.
Video ini membandingkan kecepatan mereka: https://www.youtube.com/watch?v=YbWidNBycls Dia akhirnya menggunakan kernel yang dikompilasi ulang untuk mencapai beberapa GPIO berkomunikasi dengan beberapa sensor. Dia belum memposting hasilnya tentang bagaimana dia mendapatkannya. Tetapi dimungkinkan untuk multiplex daripada menggunakan hanya satu pin.
Memperbarui. Dia telah memposting sekarang. Dia menghubungkan 81 sensor ke 9 GPIO yang terpisah dan mampu mendapatkan semua suhu dalam waktu kurang dari 3 detik: https://www.youtube.com/watch?v=JW9wzbp35w8
sumber
cara ideal untuk membaca banyak sensor adalah menggunakan sensor I2C.
ini adalah satu-satunya cara Anda dapat menghubungkan beberapa sensor bersama-sama atau Anda dapat menggunakan sensor analog tetapi mereka akan mengambil banyak pin analog tetapi i2c hanya akan menggunakan 2 baris. katakanlah Anda menggunakan Pi2 / 3, maka saya akan menyarankan mendapatkan topi Raspberry Pi yang memiliki port I2C sehingga Anda dapat menghubungkan semua perangkat i2c Anda dengan Pi dalam hitungan detik dan itu akan memastikan perangkat keras Anda benar.
sekarang Anda memiliki Pi dengan adpter I2C, biarkan bergerak pada bagian sensor. TI, AD, NXP, freescale dan banyak perusahaan lain membuat sensor temp dengan I2C tetapi Anda ingin menghubungkan lebih dari satu sensor sehingga ada dua opsi.
dapatkan 6 sensor I2C berbeda dengan alamat I2C berbeda, jika Anda memiliki dua sensor dengan alamat yang sama tidak akan berfungsi.
Anda bisa mendapatkan sensor dengan garis alamat dan hanya mengubah alamat dan Anda dapat menghubungkannya dengan Pi tanpa konflik alamat. Saya akan menyarankan menggunakan sensor TMP 100 ini saya lebih suka yang ini karena memiliki 2 baris alamat dengan dukungan garis alamat mengambang sehingga Anda dapat menghubungkan 6 sensor dengan satu baris i2c.
ada keuntungan menggunakan sensor yang sama adalah Anda tidak perlu membaca 6 lembar data untuk menulis kode Anda, Anda perlu mempelajari satu lembar data dan menulis kodenya dengan mudah. jika semua sensor Anda sama maka Anda akan memiliki hasil yang lebih baik untuk dibandingkan.
sumber