- Bahan yang Diperlukan
- Pengenalan Sensor Suhu DS18B20
- Pra-Syarat
- Rajah Litar
- Memasang perpustakaan Adafruit LCD di Raspberry P
- Mengaktifkan Antaramuka Satu-Kawat di Pi
- Keluaran / Kerja
Raspberry Pi terkenal dengan kekuatan komputasi dan aplikasinya yang luas dalam bidang IoT, Automasi Rumah dan lain-lain. Tetapi untuk mana-mana sistem elektronik untuk berinteraksi dengan dunia nyata dan mendapatkan maklumat mengenainya, sistem ini harus menggunakan sensor. Terdapat banyak jenis sensor yang digunakan untuk proses ini dan sensor yang diperlukan dipilih berdasarkan parameter yang akan diukur dan aplikasinya. Dalam tutorial ini kita belajar menghubungkan antara sensor suhu DS18B20 dengan Raspberry Pi.
The DS18B20 digunakan secara meluas sensor suhu, terutamanya di tempat-tempat di mana persekitaran operasi yang keras terlibat seperti industri kimia, kilang lombong dan lain-lain artikel ini akan memberitahu tentang sensor dan bagaimana ia outstands sensor suhu lain dan akhirnya muka dengan Raspberry Pi dan melihat suhu nilai pada LCD 16x2.
Bahan yang Diperlukan
- Sensor Suhu DS18B20
- Pai raspberi
- Paparan LCD 16 * 2
- Pot periuk 10k
- 10k Tarik perintang ke atas
- Papan roti
- Menyambung wayar
Pengenalan Sensor Suhu DS18B20
DS18B20 adalah sensor suhu tiga terminal yang terdapat dalam pakej TO-92 (jenis transistor). Ia sangat mudah digunakan dan hanya memerlukan satu komponen luaran untuk mula berfungsi. Juga hanya memerlukan satu pin GPIO dari MCU / MPU untuk berkomunikasi dengannya. Sensor suhu DS18B20 khas dengan nama pinnya ditunjukkan di bawah.
Sensor ini juga tersedia sebagai versi kalis air di mana sensor dilindungi oleh tiub logam silinder. Dalam tutorial ini kita akan menggunakan sensor jenis transistor biasa yang ditunjukkan di atas. The DS18B20 adalah sensor suhu 1 wayar boleh program bermakna ia hanya memerlukan pin data untuk menghantar maklumat kepada mikropengawal atau mikropemproses papan seperti Raspberry Pi. Setiap sensor mempunyai alamat unik 64-bit untuk itu, jadi juga mungkin terdapat beberapa sensor yang disambungkan ke MCU / MPU yang sama kerana setiap sensor dapat ditangani secara individu pada bas data yang sama. Spesifikasi sensor ditunjukkan di bawah.
- Voltan operasi: 3-5V
- Julat Pengukuran: -55 ° C hingga + 125 ° C
- Ketepatan: ± 0.5 ° C
- Penyelesaian: 9-bit hingga 12-bit
Setelah mengetahui cukup banyak sensor, mari kita stat menghubungkannya dengan Raspberry Pi.
Pra-Syarat
Diandaikan bahawa Raspberry Pi anda sudah dilengkapi dengan sistem operasi dan dapat menyambung ke internet. Sekiranya tidak, ikuti tutorial Bermula dengan Raspberry Pi sebelum meneruskan. Di sini kita menggunakan Rasbian Jessie Raspberry Pi 3 yang dipasang.
Diasumsikan juga bahawa anda mempunyai akses ke pi anda melalui tetingkap terminal atau melalui aplikasi lain di mana anda boleh menulis dan menjalankan program python dan menggunakan tetingkap terminal.
Rajah Litar
Seperti yang kami katakan sebelumnya dalam tutorial ini, kami akan menghubungkan antara sensor DS18B20 dengan Pi dan menampilkan nilai suhu pada layar LCD 16 * 2. Oleh itu, sensor dan LCD harus dihubungkan dengan Raspberry Pi seperti gambar di bawah.
Ikuti rajah litar dan buat sambungan dengan sewajarnya. Sensor LCD dan DS18B20 berfungsi dengan bantuan + 5V yang disediakan oleh pin 5V pada Raspberry pi. The LCD penting untuk kerja-kerja dalam mod 4-bit dengan Raspberry pi, pin GPIO 18,23,24 dan 25 digunakan untuk talian data dan pin GPIO 7 dan 8 digunakan untuk garisan kawalan. A potensiometer juga digunakan untuk mengawal tahap kontras bagi LCD. Garis data DS18B20 disambungkan ke pin GPIO 4. Juga perhatikan bahawa perintang 10K mesti digunakan tarik data seperti tinggi seperti yang ditunjukkan dalam rajah litar.
Anda boleh mengikuti rajah litar di atas dan membuat sambungan atau menggunakan jadual pin untuk menindaklanjuti nombor pin GPIO.
Saya telah membina litar di papan roti menggunakan wayar helai tunggal dan wayar lelaki ke wanita untuk membuat sambungan. Seperti yang anda lihat, sensor hanya memerlukan satu wayar untuk bersambung dan dengan itu memerlukan ruang dan pin yang lebih sedikit. Perkakasan saya kelihatan seperti di bawah ini apabila semua sambungan dibuat. Kini tiba masanya untuk menghidupkan pi dan memulakan pengaturcaraan.
Memasang perpustakaan Adafruit LCD di Raspberry P
Nilai suhu akan dipaparkan pada paparan LCD 16 * 2. Adafruit memberi kami perpustakaan untuk mengendalikan LCD ini dengan mudah dalam mod 4-bit, jadi marilah kita menambahkannya ke Raspberry Pi kami dengan membuka tetingkap terminal Pi dan mengikuti langkah-langkah berikut.
Langkah 1: Pasang git pada Raspberry Pi anda dengan menggunakan baris di bawah. Git membolehkan anda mengklon sebarang fail projek di Github dan menggunakannya pada Raspberry pi anda. Perpustakaan kami ada di Github jadi kami harus memasang git untuk memuat turun perpustakaan itu ke dalam pi.
apt-get install git
Langkah 2: Garis berikut menghubungkan ke halaman GitHub di mana perpustakaan ada hanya jalankan baris untuk mengkloning fail projek di direktori utama Pi
git klon git: //github.com/adafruit/Adafruit_Python_CharLCD
Langkah 3: Gunakan perintah di bawah ini untuk mengubah baris direktori, masuk ke fail projek yang baru sahaja kita muat turun. Ayat perintah diberikan di bawah
cd Adafruit_Python_CharLCD
Langkah 4: Di dalam direktori akan ada file bernama setup.py , kita harus memasangnya, untuk memasang perpustakaan. Gunakan kod berikut untuk memasang perpustakaan
sudo python setup.py pasang
Itulah yang pasti perpustakaan berjaya dipasang. Sekarang mari kita teruskan dengan memasang perpustakaan DHT yang juga berasal dari Adafruit.
Mengaktifkan Antaramuka Satu-Kawat di Pi
Oleh kerana sensor DS18B20 berkomunikasi melalui kaedah One-Wire, kita harus mengaktifkan komunikasi satu wayar pada Pi dengan mengikuti langkah-langkah di bawah.
Langkah 1: - Buka prompt Perintah dan gunakan arahan di bawah untuk membuka fail konfigurasi
sudo nano /boot/config.txt
Langkah 2: - Di dalam file config tambahkan baris " dtoverlay = w1-gpio " (dilingkari di bawah gambar) dan simpan fail seperti yang ditunjukkan di bawah
Langkah 3: - Gunakan Ctrl + X untuk keluar dari fail dan simpan dengan menekan "Y" dan kemudian masukkan kekunci. Akhirnya mulakan semula Pi dengan menggunakan arahan
sudo reboot
Langkah 4: - Setelah reboot, buka terminal semula dan masukkan arahan berikut.
sudo modprobe w1– gpio sudo modprobe w1- therm . cd / sys / bus / w1 / peranti ls
Tingkap terminal anda akan memaparkan sesuatu seperti ini
Langkah 5: - Pada akhir langkah 4 ketika anda memasukkan ls , pi anda akan memaparkan nombor unik nombor ini akan berbeza untuk setiap pengguna, berdasarkan sensor, tetapi akan selalu bermula dengan 28-. Dalam kes saya nombornya adalah 28-03172337caff .
Langkah 6: - Sekarang kita dapat memeriksa apakah sensor berfungsi dengan memasukkan perintah berikut
cd 28-XXXXXXXXXXXX. cari ('t =') # cari "t =" dalam baris jika dipangkas_data! = -1: temp_string = garis #trim strig hanya ke nilai suhu temp_c = float (temp_string) / 1000.0 # bahagi nilai 1000 untuk mendapatkan nilai sebenar temp_c #kembalikan nilai untuk dicetak pada LCD
Pembolehubah garisan digunakan untuk membaca baris dalam fail. Kemudian garis-garis ini dibandingkan dicari untuk huruf "t =" dan nilai setelah huruf itu disimpan dalam temp_string berubah-ubah. Akhirnya untuk mendapatkan nilai suhu kita menggunakan pemboleh ubah temp_c di mana kita membahagi nilai rentetan dengan 1000. Pada akhirnya mengembalikan pemboleh ubah temp_c sebagai hasil fungsi.
Di dalam loop sementara yang tidak terbatas, kita hanya perlu memanggil fungsi yang ditentukan di atas untuk mendapatkan nilai suhu dan memaparkannya di layar LCD. Kami juga membersihkan LCD setiap 1 saat untuk memaparkan nilai yang dikemas kini.
sementara 1: #Infinite Loop lcd.clear () #Kosongkan layar LCD lcd .message ('Temp =%.1f C'% get_temp ()) # Paparkan nilai waktu suhu.saput (1) #Tunggu selama 1 saat kemudian kemas kini nilai
Keluaran / Kerja
Seperti biasa kod python lengkap diberikan di hujung halaman, gunakan kod tersebut dan kumpulkan pada Raspberry Pi anda. Buat sambungan seperti yang ditunjukkan dalam rajah litar dan sebelum menjalankan program, pastikan anda telah mengikuti langkah-langkah di atas untuk memasang fail header LCD dan mengaktifkan komunikasi satu wayar pada pi. Setelah selesai, jalankan program ini, jika semuanya berjalan seperti yang diharapkan, anda seharusnya dapat melihat teks intro. Sekiranya tidak sesuaikan potensiometer kontras sehingga anda melihat sesuatu. Hasil akhir akan kelihatan seperti ini di bawah.
Harap anda memahami projek ini dan tidak menghadapi masalah untuk membuatnya. Sekiranya dinyatakan masalah anda di bahagian komen atau gunakan forum untuk bantuan teknikal yang lebih. Ini hanya projek penghubung, tetapi apabila ini selesai, anda boleh berfikir lebih awal dengan mengerjakan stesen cuaca Raspberry Pi, pemberitahuan e-mel suhu dan banyak lagi.
Kerja projek yang lengkap juga ditunjukkan dalam video di bawah ini di mana anda dapat melihat nilai suhu dikemas kini dalam masa nyata.