5.5 KiB
Ukur Suhu - Raspberry Pi
Dalam bahagian pelajaran ini, anda akan menambah sensor suhu pada Raspberry Pi anda.
Perkakasan
Sensor yang akan anda gunakan ialah sensor kelembapan dan suhu DHT11, yang menggabungkan 2 sensor dalam satu pakej. Sensor ini agak popular, dengan beberapa sensor komersial yang menggabungkan suhu, kelembapan, dan kadangkala tekanan atmosfera. Komponen sensor suhu adalah termistor koefisien suhu negatif (NTC), iaitu termistor di mana rintangan berkurang apabila suhu meningkat.
Ini adalah sensor digital, jadi ia mempunyai ADC onboard untuk menghasilkan isyarat digital yang mengandungi data suhu dan kelembapan yang boleh dibaca oleh mikropengawal.
Sambungkan sensor suhu
Sensor suhu Grove boleh disambungkan ke Raspberry Pi.
Tugasan
Sambungkan sensor suhu
-
Masukkan satu hujung kabel Grove ke soket pada sensor kelembapan dan suhu. Ia hanya boleh dimasukkan dalam satu arah sahaja.
-
Dengan Raspberry Pi dimatikan, sambungkan hujung lain kabel Grove ke soket digital yang ditandakan D5 pada Grove Base hat yang disambungkan ke Pi. Soket ini adalah yang kedua dari kiri, pada barisan soket bersebelahan dengan pin GPIO.
Programkan sensor suhu
Peranti kini boleh diprogramkan untuk menggunakan sensor suhu yang disambungkan.
Tugasan
Programkan peranti.
-
Hidupkan Pi dan tunggu sehingga ia selesai boot.
-
Lancarkan VS Code, sama ada secara langsung pada Pi, atau sambung melalui sambungan Remote SSH.
⚠️ Anda boleh merujuk kepada arahan untuk menyediakan dan melancarkan VS Code dalam pelajaran 1 jika diperlukan.
-
Dari terminal, buat folder baru dalam direktori rumah pengguna
pi
yang dipanggiltemperature-sensor
. Buat fail dalam folder ini yang dipanggilapp.py
:mkdir temperature-sensor cd temperature-sensor touch app.py
-
Buka folder ini dalam VS Code.
-
Untuk menggunakan sensor suhu dan kelembapan, pakej Pip tambahan perlu dipasang. Dari Terminal dalam VS Code, jalankan arahan berikut untuk memasang pakej Pip ini pada Pi:
pip3 install seeed-python-dht
-
Tambahkan kod berikut ke fail
app.py
untuk mengimport pustaka yang diperlukan:import time from seeed_dht import DHT
Pernyataan
from seeed_dht import DHT
mengimport kelasDHT
untuk berinteraksi dengan sensor suhu Grove dari modulseeed_dht
. -
Tambahkan kod berikut selepas kod di atas untuk mencipta satu instance kelas yang menguruskan sensor suhu:
sensor = DHT("11", 5)
Ini mengisytiharkan satu instance kelas
DHT
yang menguruskan sensor Digital Humidity dan Temperature. Parameter pertama memberitahu kod bahawa sensor yang digunakan ialah sensor DHT11 - pustaka yang anda gunakan menyokong varian lain sensor ini. Parameter kedua memberitahu kod bahawa sensor disambungkan ke port digitalD5
pada Grove base hat.✅ Ingat, semua soket mempunyai nombor pin unik. Pin 0, 2, 4, dan 6 adalah pin analog, manakala pin 5, 16, 18, 22, 24, dan 26 adalah pin digital.
-
Tambahkan gelung infiniti selepas kod di atas untuk mendapatkan nilai sensor suhu dan mencetaknya ke konsol:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Panggilan kepada
sensor.read()
mengembalikan tuple kelembapan dan suhu. Anda hanya memerlukan nilai suhu, jadi kelembapan diabaikan. Nilai suhu kemudian dicetak ke konsol. -
Tambahkan jeda kecil selama sepuluh saat di akhir
loop
kerana tahap suhu tidak perlu diperiksa secara berterusan. Jeda mengurangkan penggunaan kuasa peranti.time.sleep(10)
-
Dari Terminal VS Code, jalankan arahan berikut untuk menjalankan aplikasi Python anda:
python3 app.py
Anda sepatutnya melihat nilai suhu dipaparkan di konsol. Gunakan sesuatu untuk memanaskan sensor, seperti menekan ibu jari anda padanya, atau menggunakan kipas untuk melihat perubahan nilai:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 Anda boleh menemui kod ini dalam folder code-temperature/pi.
😀 Program sensor suhu anda berjaya!
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.