- Ikhtisar Sensor DHT11:
- Prasyarat:
- Menginstal perpustakaan LCD Adafruit di Raspberry Pi:
- Menginstal perpustakaan Adafruit DHT11 di Raspberry Pi:
- Diagram Sirkuit:
- Pemrograman Python untuk sensor DHT11:
- Mengukur Kelembaban dan Suhu menggunakan Raspberry Pi:
Suhu dan Kelembaban adalah parameter paling umum yang dipantau di lingkungan mana pun. Ada banyak sekali sensor yang dapat dipilih untuk mengukur suhu dan kelembapan, tetapi yang paling banyak digunakan adalah DHT11 karena jangkauan dan akurasinya yang baik. Ia juga bekerja dengan komunikasi satu pin dan karenanya sangat mudah untuk dihubungkan dengan Mikrokontroler atau Mikroprosesor. Dalam tutorial ini kita akan belajar bagaimana menghubungkan sensor DHT11 yang populer dengan Raspberry Pi dan menampilkan nilai suhu dan kelembaban pada layar LCD 16x2. Kami sudah menggunakannya untuk membangun Stasiun Cuaca IoT Raspberry Pi.
Ikhtisar Sensor DHT11:
Sensor DHT11 dapat mengukur kelembaban dan suhu relatif dengan spesifikasi sebagai berikut
Rentang Suhu: 0-50 ° C Akurasi Suhu: ± 2 ° C Kisaran Kelembaban: 20-90% RH Akurasi Kelembaban: ± 5%
Sensor DHT11 tersedia baik dalam bentuk modul maupun dalam bentuk sensor. Dalam tutorial ini kita menggunakan bentuk modul dari sensor, satu-satunya perbedaan antara keduanya adalah bahwa dalam bentuk modul sensor memiliki kapasitor filtering dan resistor pull-up yang dipasang pada pin keluaran sensor. Jadi jika Anda menggunakan sensor saja pastikan Anda menambahkan kedua komponen tersebut. Juga pelajari DHT11 berinteraksi dengan Arduino.
Bagaimana Sensor DHT11 bekerja:
Sensor DHT11 hadir dengan casing warna biru atau putih. Di dalam casing ini kami memiliki dua komponen penting yang membantu kami merasakan kelembapan dan suhu relatif. Komponen pertama adalah sepasang elektroda; hambatan listrik antara kedua elektroda ini ditentukan oleh substrat penahan kelembaban. Jadi resistansi yang diukur berbanding terbalik dengan kelembaban relatif lingkungan. Semakin tinggi kelembaban relatif, semakin rendah nilai resistansi dan sebaliknya. Perhatikan juga bahwa Kelembaban relatif berbeda dengan kelembapan sebenarnya. Kelembaban relatif mengukur kadar air di udara relatif terhadap suhu di udara.
Komponen lainnya adalah Termistor NTC yang dipasang di permukaan. Istilah NTC adalah singkatan dari koefisien suhu negatif, untuk kenaikan suhu nilai resistansi akan menurun
Prasyarat:
Diasumsikan bahwa Raspberry Pi Anda sudah di-flash dengan sistem operasi dan sudah bisa terkoneksi ke internet. Jika tidak, ikuti tutorial Memulai Raspberry Pi sebelum melanjutkan.
Juga diasumsikan bahwa Anda memiliki akses ke pi Anda baik melalui jendela terminal atau melalui aplikasi lain di mana Anda dapat menulis dan menjalankan program python dan menggunakan jendela terminal.
Menginstal perpustakaan LCD Adafruit di Raspberry Pi:
Nilai suhu dan kelembaban akan ditampilkan pada layar LCD 16 * 2. Adafruit memberi kita perpustakaan untuk dengan mudah mengoperasikan LCD ini dalam mode 4-bit, jadi mari kita tambahkan ke Raspberry Pi kita dengan membuka jendela terminal Pi dan mengikuti langkah-langkah di bawah ini.
Langkah 1: Instal git di Raspberry Pi Anda dengan menggunakan baris di bawah ini. Git memungkinkan Anda untuk mengkloning file proyek apa pun di Github dan menggunakannya di Raspberry pi Anda. Perpustakaan kami ada di Github jadi kami harus menginstal git untuk mengunduh perpustakaan itu ke pi.
apt-get install git
Langkah 2: Baris berikut menautkan ke halaman GitHub tempat perpustakaan hadir, cukup jalankan baris untuk mengkloning file proyek di direktori home Pi
git clone git: //github.com/adafruit/Adafruit_Python_CharLCD
Langkah 3: Gunakan perintah di bawah ini untuk mengubah baris direktori, untuk masuk ke file proyek yang baru saja kita unduh. Baris perintah diberikan di bawah ini
cd Adafruit_Python_CharLCD
Langkah 4: Di dalam direktori akan ada file bernama setup.py , kita harus menginstalnya, untuk menginstal perpustakaan. Gunakan kode berikut untuk menginstal perpustakaan
sudo python setup.py install
Itu perpustakaan seharusnya telah berhasil diinstal. Sekarang mari kita lanjutkan dengan menginstal pustaka DHT yang juga dari Adafruit.
Menginstal perpustakaan Adafruit DHT11 di Raspberry Pi:
Sensor DHT11 bekerja dengan prinsip sistem satu kabel. Nilai suhu dan kelembaban yang dirasakan oleh sensor kemudian ditransmisikan melalui pin keluaran sebagai data serial. Kami kemudian dapat membaca data ini dengan menggunakan pin I / O pada MCU / MPU. Untuk memahami bagaimana nilai-nilai ini dibaca, Anda harus membaca lembar data sensor DHT11, tetapi untuk saat ini agar semuanya tetap sederhana, kami akan menggunakan perpustakaan untuk berbicara dengan sensor DHT11.
The DHT11 perpustakaan disediakan oleh Adafruit dapat digunakan untuk DHT11, DHT22 dan sensor suhu satu kawat lain juga. Prosedur untuk menginstal pustaka DHT11 juga mirip dengan yang diikuti untuk menginstal pustaka LCD. Satu-satunya baris yang akan berubah adalah tautan dari halaman GitHub tempat perpustakaan DHT disimpan.
Masukkan empat baris perintah satu per satu di terminal untuk menginstal pustaka DHT
git clone
cd Adafruit_Python_DHT sudo apt-get install build-essential python-dev sudo python setup.py install
Setelah selesai, Anda akan berhasil menginstal kedua pustaka di Raspberry Pi kami. Sekarang kita dapat melanjutkan dengan koneksi perangkat keras.
Diagram Sirkuit:
Diagram rangkaian lengkap Interfacing DH11 dengan Raspberry pi diberikan di bawah ini, itu dibangun menggunakan Fritzing. Ikuti koneksi dan buat sirkuit
Baik sensor LCD dan DHT11 bekerja dengan suplai + 5V jadi kami menggunakan pin 5V pada Raspberry Pi untuk memberi daya pada keduanya. Sebuah resistor pull up bernilai 1k digunakan pada pin keluaran sensor DHT11, jika anda menggunakan modul anda dapat menghindari resistor ini.
Sebuah pot penghias dari 10k ditambahkan ke pin Vee dari LCD untuk mengontrol tingkat kontras LCD. Selain itu, semua koneksinya cukup lurus ke depan. Tetapi catat pin GPIO mana yang Anda gunakan untuk menghubungkan pin karena kami akan membutuhkannya dalam program kami. Bagan di bawah ini memungkinkan Anda untuk mengetahui nomor pin GPIO.
Gunakan diagram dan buat koneksi Anda sesuai dengan diagram sirkuit. Saya menggunakan papan tempat memotong roti dan kabel jumper untuk membuat koneksi saya. Karena saya menggunakan modul DHT11, saya menghubungkannya langsung ke Raspberry Pi. Perangkat keras saya terlihat seperti ini di bawah
Pemrograman Python untuk sensor DHT11:
Kita harus menulis program untuk membaca nilai suhu dan kelembaban dari sensor DHT11 dan kemudian menampilkannya pada LCD. Karena kami telah mengunduh perpustakaan untuk sensor LCD dan DHT11, kodenya harus cukup lurus ke depan. Program lengkap python dapat ditemukan di akhir halaman ini, tetapi Anda dapat membaca lebih lanjut untuk memahami cara kerja program.
Kita harus mengimpor perpustakaan LCD dan perpustakaan DHT11 ke dalam program kita untuk menggunakan fungsi yang terkait dengannya. Karena kami telah mengunduh dan menginstalnya di Pi kami, kami cukup menggunakan baris berikut untuk mengimpornya. Kami juga mengimpor perpustakaan waktu untuk menggunakan fungsi penundaan.
waktu impor # impor waktu untuk membuat penundaan impor Adafruit_CharLCD sebagai LCD #Impor perpustakaan LCD impor Adafruit_DHT #Impor Perpustakaan DHT untuk sensor
Selanjutnya, kita harus menentukan ke pin mana sensor tersebut terhubung dan jenis sensor suhu apa yang digunakan. Variabel sensor_name ditetapkan ke Adafruit_DHT.DHT11 karena kami menggunakan sensor DHT11 di sini. Pin output sensor terhubung ke GPIO 17 dari Raspberry Pi dan karenanya kami menetapkan 17 ke variabel sensor_pin seperti yang ditunjukkan di bawah ini.
sensor_name = Adafruit_DHT.DHT11 #kami menggunakan sensor DHT11 sensor_pin = 17 #Sensor terhubung ke GPIO17 di Pi
Demikian pula, kita juga harus menentukan ke pin GPIO mana LCD terhubung. Di sini kita menggunakan LCD dalam mode 4-bit sehingga kita akan memiliki empat pin data dan dua pin kontrol untuk dihubungkan ke pin GPIO dari pi. Selain itu, Anda dapat menghubungkan pin lampu latar ke pin GPIO jika kami juga ingin mengontrol lampu latar. Tetapi untuk saat ini saya tidak menggunakan itu jadi saya telah menetapkan 0 untuk itu.
lcd_rs = 7 #RS LCD terhubung ke GPIO 7 pada PI lcd_en = 8 #EN LCD terhubung ke GPIO 8 pada PI lcd_d4 = 25 # D4 LCD terhubung ke GPIO 25 pada PI lcd_d5 = 24 # D5 LCD terhubung ke GPIO 24 pada PI lcd_d6 = 23 # D6 LCD terhubung ke GPIO 23 pada PI lcd_d7 = 18 # D7 LCD terhubung ke GPIO 18 pada PI lcd_backlight = 0 # LED tidak terhubung jadi kami tetapkan ke 0
Anda juga dapat menghubungkan LCD dalam mode 8-bit dengan Raspberry pi tetapi kemudian pin gratis akan berkurang.
Perpustakaan LCD dari Adafruit yang kami unduh dapat digunakan untuk semua jenis tampilan LCD berkarakteristik. Di sini, di proyek kami, kami menggunakan layar LCD 16 * 2 jadi kami menyebutkan jumlah Baris dan Kolom ke variabel seperti yang ditunjukkan di bawah ini.
lcd_columns = 16 #untuk 16 * 2 LCD lcd_rows = 2 #untuk 16 * 2 LCD
Sekarang, setelah kita mendeklarasikan pin LCD dan jumlah Baris dan Kolom untuk LCD, kita dapat menginisialisasi layar LCD dengan menggunakan baris berikut yang mengirimkan semua informasi yang diperlukan ke perpustakaan.
lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) #Kirim semua detail pin ke perpustakaan
Untuk memulai program, kami menampilkan pesan intro kecil menggunakan fungsi lcd.message () dan kemudian memberikan jeda 2 detik agar pesan dapat dibaca. Untuk mencetak pada 2 nd baris perintah \ n dapat digunakan seperti yang ditunjukkan di bawah ini
lcd .message ('DHT11 with Pi \ n -CircuitDigest') #Beri pesan intro time.sleep (2) # waiting selama 2 detik
Terakhir, di dalam while loop kita harus membaca nilai suhu dan kelembaban dari sensor dan menampilkannya di layar LCD setiap 2 detik. Program lengkap di dalam while loop ditampilkan di bawah ini
sementara 1: #Infinite Loop
kelembaban, suhu = Adafruit_DHT.read_retry (sensor_name, sensor_pin) #membaca dari sensor dan menyimpan nilai masing-masing dalam suhu dan kelembaban varibale
lcd.clear () #Hapus layar LCD lcd.message ('Temp =%.1f C'% suhu) # Menampilkan nilai suhu lcd.message ('\ nHum =%.1f %%'% kelembaban) #Display nilai Humidity time.sleep (2) #Tunggu selama 2 detik lalu perbarui nilainya
Kita bisa dengan mudah mendapatkan nilai suhu dan kelembaban dari sensor menggunakan satu baris di bawah ini. Seperti yang Anda lihat, ini mengembalikan dua nilai yang disimpan dalam variabel kelembaban dan suhu. The sensor_name dan sensor_pin rincian dikirimkan sebagai parameter; nilai-nilai ini diperbarui pada awal program
kelembaban, suhu = Adafruit_DHT.read_retry (sensor_name, sensor_pin)
Untuk menampilkan nama variabel pada layar LCD kita dapat menggunakan pengenal seperti & d,% c dll. Di sini karena kita menampilkan bilangan floating point dengan hanya satu digit setelah titik desimal kita menggunakan pengenal%.1f untuk menampilkan nilai di suhu dan kelembaban yang bervariasi
lcd .message ('Temp =%.1f C'% temperature) lcd .message ('\ nHum =%.1f %%'% kelembaban)
Mengukur Kelembaban dan Suhu menggunakan Raspberry Pi:
Buat koneksi sesuai diagram sirkuit dan instal perpustakaan yang diperlukan. Kemudian luncurkan program python yang diberikan di akhir halaman ini. LCD Anda harus menampilkan pesan intro dan kemudian menampilkan nilai suhu dan kelembaban saat ini seperti yang ditunjukkan pada gambar di bawah.
Jika Anda tidak menemukan apa pun yang ditampilkan LCD, periksa apakah jendela shell python menampilkan kesalahan, jika tidak ada kesalahan yang ditampilkan, periksa koneksi Anda sekali lagi dan sesuaikan potensiometer untuk memvariasikan tingkat kontras LCD dan periksa apakah Anda mendapatkan sesuatu. layar.
Harap Anda memahami proyek dan menikmati membangunnya, jika Anda menghadapi masalah dalam menyelesaikan ini, laporkan di bagian komentar atau gunakan forum untuk bantuan teknis. Saya akan mencoba yang terbaik untuk menanggapi semua komentar.
Anda juga dapat memeriksa proyek kami yang lain menggunakan DHT11 dengan mikrokontroler lain.