Saya memiliki proyek yang mengharuskan untuk melakukan I²C / I2C / TWI jarak jauh (30 hingga 40 meter).
Saya telah melihat beberapa orang menyarankan menurunkan clock-rate ke suatu tempat di sekitar 500 Hz, untuk mengurangi efek kapasitansi dari garis panjang seperti itu saya kira? Komponen yang saya gunakan memerlukan setidaknya clock-rate 100 kHz standar. Saya melakukan penelitian lebih lanjut dan menemukan di antara jawaban pertanyaan lain saran untuk menggunakan level shifter P82B96. Dalam lembar data, mereka memberikan contoh penggunaannya pada garis bahkan 100 meter:
Saya telah menemukan cara lain untuk menggeser level melalui papan breakout dari adafruit , yang hanya sebuah MOSFET (bss138) dengan dua resistor pull-up (satu untuk setiap sisi / voltase). Mereka mendapat ide daricatatan aplikasi dari NXP (AN10441) , dan dua saluran di sana dapat digunakan seperti ini:
Sekarang saya bertanya-tanya: solusi mana yang terbaik? Atau ada sesuatu yang saya abaikan? Dan juga, apakah 5V cukup untuk memastikan koneksi yang baik? Apakah akan ada keuntungan menggunakan voltase yang lebih tinggi seperti 12V?
Jawaban:
Saya pikir Anda berada di jalur yang benar dengan sesuatu seperti NXP P82B96. Jika Anda melihat Gambar 14 dan teks terkait datasheet membahas menggunakan panjang kabel hingga 250 m dengan kecepatan data lebih dari 100 kHz.
Ada banyak sensor suhu I2C yang tersedia yang dapat memberi Anda akurasi beberapa derajat celsius tanpa kalibrasi dan tanpa tambahan sirkuit analog. Karena Anda tetap mengembalikan data untuk diproses, memfilter derau akan sangat mudah.
Jika Anda khawatir tentang kapasitansi kabel Anda mungkin lebih baik dengan twisted pair unshielded daripada kabel berpelindung.
sumber
Anda mungkin bisa lolos dengan sensor DS18B20 dengan menggunakan CAT5 berpelindung atau kabel serupa. Ini hanya pengukuran termal, jadi jika beberapa bacaan rusak Anda dapat membuat program Anda cukup kuat untuk menghadapinya (bagaimanapun juga itu adalah praktik yang baik).
Untuk penggunaan rantai restoran, saya telah merancang apa yang disebut kontrol RTU (unit atap) yang bekerja pada beberapa sensor pasif (mereka menggunakan termistor NTC yang dapat dipertukarkan , yang tidak memerlukan kalibrasi untuk pemanasan yang nyaman). Jauh lebih mudah untuk menyaring suara dari sensor pasif. Sepasang instalasi (kompleks otomotif utama Amerika Utara) menggunakan RTD platinum dengan pengkondisi sinyal - perangkat yang sangat akurat dan stabil. Anda harus memutuskan sensor terlebih dahulu, kemudian melihat bagaimana hal itu dihubungkan - salah satu dari opsi sensor ini cocok untuk aplikasi Anda (meskipun RTD mungkin berlebihan).
Jika tidak jelas, saya menyarankan konfigurasi "bintang" sensor di sekitar prosesor Anda.
Jika Anda benar-benar ingin menggunakan "bus" (selain satu-kawat atau I2C), Anda akan membutuhkan kecerdasan di ujungnya, yang berarti prosesor dalam beberapa bentuk. Jika Anda menggunakan babi utuh, Anda mungkin ingin mempertimbangkan untuk menggunakan sensor nirkabel yang berkomunikasi melalui beberapa band ISM yang legal di wilayah Anda. Atau, Anda dapat menggunakan satu sensor per Pi dan membuatnya berbicara satu sama lain melalui intranet WiFi Anda.
sumber