- Gambaran keseluruhan Sensor DHT11:
- Pra-Syarat:
- Memasang perpustakaan Adafruit LCD di Raspberry Pi:
- Memasang perpustakaan Adafruit DHT11 di Raspberry Pi:
- Rajah Litar:
- Pengaturcaraan Python untuk sensor DHT11:
- Mengukur Kelembapan dan Suhu menggunakan Raspberry Pi:
Suhu dan Kelembapan adalah parameter yang paling umum yang dipantau di lingkungan mana pun. Terdapat banyak sensor untuk dipilih untuk mengukur suhu dan kelembapan, tetapi yang paling banyak digunakan adalah DHT11 kerana julat dan ketepatan pengukurannya yang baik. Ia juga berfungsi dengan komunikasi satu pin dan oleh itu sangat mudah untuk berinteraksi dengan Mikrokontroler atau Mikropemproses. Dalam tutorial ini kita akan belajar bagaimana menghubungkan sensor DHT11 yang popular dengan Raspberry Pi dan memaparkan nilai suhu dan kelembapan pada layar LCD 16x2. Kami sudah menggunakannya untuk membina Stesen Cuaca IoT Raspberry Pi.
Gambaran keseluruhan Sensor DHT11:
Sensor DHT11 dapat mengukur kelembapan dan suhu relatif dengan spesifikasi berikut
Julat Suhu: 0-50 ° C Ketepatan Suhu: ± 2 ° C Julat Kelembapan: 20-90% RH Ketepatan Kelembapan: ± 5%
Sensor DHT11 tersedia sama ada dalam bentuk modul atau dalam bentuk sensor. Dalam tutorial ini kita menggunakan bentuk modul sensor, satu-satunya perbezaan antara keduanya adalah dalam bentuk modul sensor mempunyai kapasitor penyaringan dan resistor penarik yang terpasang pada pin output sensor. Oleh itu, jika anda menggunakan sensor sahaja, pastikan anda menambahkan kedua-dua komponen ini. Pelajari juga antara muka DHT11 dengan Arduino.
Bagaimana Sensor DHT11 berfungsi:
Sensor DHT11 dilengkapi dengan selongsong warna biru atau putih. Di dalam selongsong ini kita mempunyai dua komponen penting yang membantu kita merasakan kelembapan dan suhu relatif. Komponen pertama adalah sepasang elektrod; rintangan elektrik antara kedua elektrod ini ditentukan oleh substrat penahan kelembapan. Jadi rintangan yang diukur berkadar songsang dengan kelembapan relatif persekitaran. Semakin tinggi kelembapan relatif lebih rendah akan menjadi nilai rintangan dan sebaliknya. Perhatikan juga bahawa kelembapan relatif berbeza dengan kelembapan sebenar. Kelembapan relatif mengukur kandungan air di udara berbanding dengan suhu di udara.
Komponen lain adalah NTC Thermistor yang dipasang di permukaan. Istilah NTC bermaksud Koefisien suhu negatif, kerana kenaikan suhu nilai rintangan akan menurun
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.
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.
Memasang perpustakaan Adafruit LCD di Raspberry Pi:
Nilai suhu dan kelembapan 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.
Memasang perpustakaan Adafruit DHT11 di Raspberry Pi:
Sensor DHT11 berfungsi dengan prinsip sistem satu wayar. Nilai suhu dan kelembapan dirasakan oleh sensor dan kemudian dikirim melalui pin output sebagai data bersiri. 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 buat masa ini untuk memastikan semuanya mudah, kami akan menggunakan perpustakaan untuk bercakap dengan sensor DHT11.
The perpustakaan DHT11 disediakan oleh Adafruit boleh digunakan untuk DHT11, DHT22 dan lain-lain sensor suhu dawai satu juga. Prosedur untuk memasang perpustakaan DHT11 juga serupa dengan yang diikuti untuk memasang perpustakaan LCD. Satu-satunya baris yang akan berubah adalah pautan halaman GitHub di mana perpustakaan DHT disimpan.
Masukkan empat baris arahan satu persatu di terminal untuk memasang perpustakaan DHT
git klon
cd Adafruit_Python_DHT sudo apt-get install build-essential python-dev sudo python setup.py pasang
Setelah selesai, kedua-dua perpustakaan akan berjaya dipasang di Raspberry Pi kami. Sekarang kita boleh meneruskan sambungan perkakasan.
Rajah Litar:
Gambarajah litar lengkap Interfacing DH11 dengan Raspberry pi diberikan di bawah, ia dibina menggunakan Fritzing. Ikuti sambungan dan buat litar
Kedua-dua sensor LCD dan DHT11 berfungsi dengan bekalan + 5V jadi kami menggunakan pin 5V pada Raspberry Pi untuk memberi kuasa kepada kedua-duanya. Perintang penarik nilai 1k digunakan pada pin output sensor DHT11, jika anda menggunakan modul, anda boleh mengelakkan perintang ini.
A periuk trimmer daripada 10k ditambah kepada pin Vee daripada LCD untuk mengawal tahap kontras bagi LCD. Selain itu semua sambungannya cukup lurus ke hadapan. Tetapi perhatikan pin GPIO mana yang anda gunakan untuk menyambungkan pin kerana kami memerlukannya dalam program kami. Carta di bawah ini membolehkan anda mengetahui nombor pin GPIO.
Gunakan carta dan buat hubungan anda mengikut gambarajah litar. Saya menggunakan papan roti dan wayar jumper untuk membuat sambungan saya. Oleh kerana saya menggunakan modul DHT11, saya memasangnya secara langsung ke Raspberry Pi. Perkakasan saya kelihatan seperti di bawah
Pengaturcaraan Python untuk sensor DHT11:
Kita harus menulis program untuk membaca nilai suhu dan kelembapan dari sensor DHT11 dan kemudian memaparkannya pada LCD. Oleh kerana kami telah memuat turun perpustakaan untuk kedua-dua sensor LCD dan DHT11, kodnya mestilah agak lurus ke hadapan. The program lengkap python boleh didapati pada akhir halaman ini, tetapi anda boleh membaca lebih lanjut untuk memahami bagaimana program ini berfungsi.
Kita harus mengimport perpustakaan LCD dan perpustakaan DHT11 ke dalam program kita untuk menggunakan fungsi yang berkaitan dengannya. Oleh kerana kami telah memuat turun dan memasangnya di Pi kami, kami hanya boleh menggunakan baris berikut untuk mengimportnya. Kami juga mengimport perpustakaan waktu untuk menggunakan fungsi penundaan.
masa import #import waktu untuk membuat kelewatan import Adafruit_CharLCD sebagai LCD #Import perpustakaan LCD import Adafruit_DHT #Import DHT Library untuk sensor
Seterusnya, kita harus menentukan pin mana yang disambungkan ke sensor dan jenis sensor suhu yang digunakan. Sensor_name pemboleh ubah diberikan kepada Adafruit_DHT.DHT11 kerana kami menggunakan sensor DHT11 di sini. Pin output sensor disambungkan ke GPIO 17 Raspberry Pi dan oleh itu kami menetapkan 17 ke pemboleh ubah sensor_pin seperti yang ditunjukkan di bawah.
sensor_name = Adafruit_DHT.DHT11 #kami menggunakan sensor DHT11 sensor_pin = 17 # Sensor disambungkan ke GPIO17 pada Pi
Begitu juga, kita juga harus menentukan ke mana pin GPIO disambungkan ke LCD. Di sini kita menggunakan LCD dalam mod 4-bit maka kita akan mempunyai empat pin data dan dua pin kawalan untuk menyambung ke pin GPIO pi. Anda juga boleh menyambungkan pin lampu latar ke pin GPIO jika kami ingin mengawal lampu latar juga. Tetapi buat masa ini saya tidak menggunakannya, jadi saya telah memberikannya 0.
lcd_rs = 7 #RS LCD disambungkan ke GPIO 7 pada PI lcd_en = 8 #EN LCD disambungkan ke GPIO 8 pada PI lcd_d4 = 25 # D4 LCD disambungkan ke GPIO 25 pada PI lcd_d5 = 24 # D5 LCD adalah disambungkan ke GPIO 24 pada PI lcd_d6 = 23 # D6 dari LCD disambungkan ke GPIO 23 pada PI lcd_d7 = 18 # D7 dari LCD disambungkan ke GPIO 18 pada PI lcd_backlight = 0 #LED tidak disambungkan sehingga kami memberikan 0
Anda juga boleh menyambungkan LCD dalam mod 8-bit dengan Raspberry pi tetapi pin percuma akan dikurangkan.
Perpustakaan LCD dari Adafruit yang kami muat turun boleh digunakan untuk semua jenis paparan LCD khas. Di sini, dalam projek kami, kami menggunakan paparan LCD 16 * 2 sehingga kami menyebut bilangan Baris dan Lajur ke pemboleh ubah seperti yang ditunjukkan di bawah.
lcd_columns = 16 #untuk 16 * 2 LCD lcd_rows = 2 #untuk 16 * 2 LCD
Sekarang, setelah kita menyatakan pin LCD dan jumlah Baris dan Lajur untuk LCD, kita dapat menginisialisasi paparan 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) # Hantar semua butiran pin ke perpustakaan
Untuk memulakan program, kami memaparkan pesan intro kecil menggunakan fungsi lcd.message () dan kemudian memberikan kelewatan 2 saat untuk menjadikan mesej dapat dibaca. Untuk mencetak pada baris kedua perintah \ n dapat digunakan seperti gambar di bawah
lcd .message ('DHT11 with Pi \ n -CircuitDigest') #Memberi masa mesej intro. tidur (2) #tunggu selama 2 saat
Akhirnya, di dalam gelung sementara kita harus membaca nilai suhu dan kelembapan dari sensor dan memaparkannya di skrin LCD untuk setiap 2 saat. Program lengkap di dalam loop sementara ditunjukkan di bawah
sementara 1: # Gelung Tak Terhingga
kelembapan, suhu = Adafruit_DHT.read_retry (sensor_name, sensor_pin) #baca dari sensor dan simpan nilai masing-masing dalam suhu dan kelembapan berbeza-beza
lcd.clear () #Hapus layar LCD lcd.message ('Temp =%.1f C'% suhu) # Paparkan nilai suhu lcd.message ('\ nHum =%.1f %%'% kelembapan) #Display nilai masa Kelembapan.tidur (2) #Tunggu selama 2 saat kemudian kemas kini nilainya
Kita dapat memperoleh nilai suhu dan kelembapan dari sensor dengan menggunakan garis tunggal di bawah ini. Seperti yang anda lihat, mengembalikan dua nilai yang disimpan dalam kelembapan dan suhu yang berubah - ubah. The sensor_name dan sensor_pin butiran diluluskan sebagai parameter; nilai-nilai ini dikemas kini pada awal program
kelembapan, suhu = Adafruit_DHT.read_retry (sensor_name, sensor_pin)
Untuk memaparkan nama pemboleh ubah pada layar LCD kita dapat menggunakan pengenal seperti & d,% c dll Di sini kerana kita memaparkan nombor titik terapung dengan hanya satu digit setelah titik perpuluhan kita menggunakan pengenal%.1f untuk menampilkan nilai di suhu dan kelembapan yang berubah-ubah
lcd .message ('Temp =%.1f C'% suhu) lcd .message ('\ nHum =%.1f %%'% kelembapan)
Mengukur Kelembapan dan Suhu menggunakan Raspberry Pi:
Buat sambungan seperti di rajah litar dan pasang perpustakaan yang diperlukan. Kemudian lancarkan program python yang diberikan di hujung halaman ini. LCD anda harus memaparkan mesej intro dan kemudian memaparkan suhu dan kelembapan semasa seperti yang ditunjukkan dalam gambar di bawah.
Sekiranya anda tidak menjumpai apa-apa yang dipaparkan LCD, periksa sama ada tetingkap cengkerang python memaparkan eros, jika tidak ada ralat yang ditunjukkan, periksa sambungan anda sekali lagi dan sesuaikan potensiometer untuk mengubah tahap kontras LCD dan periksa sama ada anda mendapat sesuatu skrin.
Harap anda memahami projek ini dan seronok membangunnya, jika anda menghadapi masalah dalam menyelesaikannya, laporkan di bahagian komen atau gunakan forum untuk bantuan teknikal. Saya akan berusaha sedaya upaya untuk menjawab semua komen.
Anda juga boleh memeriksa projek kami yang lain menggunakan DHT11 dengan mikrokontroler lain.