Isi kandungan:

Sensor Suhu dan Kelembapan Arduino: 7 Langkah
Sensor Suhu dan Kelembapan Arduino: 7 Langkah

Video: Sensor Suhu dan Kelembapan Arduino: 7 Langkah

Video: Sensor Suhu dan Kelembapan Arduino: 7 Langkah
Video: Membuat Monitoring Suhu dan Kelembapan dengan Arduino Sensor DHT11 2024, November
Anonim

Oleh ThundertronicsFollow More oleh pengarang:

PIC16F877A Analog ke Digital Converter (ADC)
PIC16F877A Analog ke Digital Converter (ADC)
PIC16F877A Analog ke Digital Converter (ADC)
PIC16F877A Analog ke Digital Converter (ADC)
Antara Muka LCD Dengan Mikrokontroler PIC16F877A
Antara Muka LCD Dengan Mikrokontroler PIC16F877A
Antara Muka LCD Dengan Mikrokontroler PIC16F877A
Antara Muka LCD Dengan Mikrokontroler PIC16F877A
Bekalan Kuasa Modular DIY
Bekalan Kuasa Modular DIY
Bekalan Kuasa Modular DIY
Bekalan Kuasa Modular DIY

Dalam tutorial ini, saya akan menerangkan pembuatan sensor suhu dan kelembapan menggunakan papan mini Arduino pro dengan sensor DHT11 (atau DHT22).

Langkah 1: Tonton Video

Penting untuk melihat video terlebih dahulu sebelum beralih ke langkah seterusnya. Video menerangkan segalanya dan menunjukkan bagaimana ia dilakukan. Walau bagaimanapun, dalam catatan ini, saya akan menulis lebih banyak data dan perincian teknikal.

www.youtube.com/watch?v=56LKl7Xd770

Langkah 2: Bahagian yang Diperlukan

Bahagian yang diperlukan untuk projek ini adalah:

1- Papan mini Arduino pro (atau Arduino mana-mana).

2- Sensor suhu dan kelembapan DHT11 (atau DHT22).

Paparan LCD 3- 16x2.

4- Kandang pilihan anda, lebih baik sama dengan yang digunakan dalam video.

Potensiometer 5- 10K.

6- Terminal skru.

7- Perintang dengan nilai yang berbeza.

Bateri 8- 9v.

sementara alat yang diperlukan adalah:

1- gerudi tangan seperti Dremil.

2- bit yang berbeza untuk gerudi, kerana kami akan menggunakan bit pelicin dan bit pemotong.

3- menolong tangan.

ditambah, alat elektronik biasa seperti multimeter dan sebagainya.

Langkah 3: Reka Bentuk Skematik

Reka Bentuk Skematik
Reka Bentuk Skematik

Dalam projek ini, saya memilih untuk membuat PCB dan bukannya membuat sendiri. Oleh itu, saya telah menggunakan alat dalam talian EasyEDA untuk pekerjaan yang merupakan pengalaman yang baik.

Ini adalah halaman projek di laman web easyEDA:

Penjelasan skema adalah seperti berikut:

1- Saya telah menggunakan penyesuai ICSP 6-pin untuk memprogram Arduino pro mini kerana ia tidak disertakan dengan satu. ia adalah J2 pada skema.

2- R2 adalah 100 Ohms dan ia menetapkan kecerahan LCD. Pada dasarnya, anda boleh meletakkan lebih banyak rintangan daripada 100R jika anda mahu lampu latar LCD menjadi lebih redup. Atau lebih baik lagi, dapatkan potensiometer untuk bertindak sebagai rintangan siri yang berubah-ubah.

3- JP1 hanyalah penyambung yang mempunyai jejak PCB yang bagus. Saya tidak pernah meletakkan terminal yang sebenarnya melainkan memasang kabel. Lakukan seperti yang anda suka.

4- U2 adalah terminal sambungan bateri. Di sini, saya lebih suka terminal skru yang bagus untuk mendapatkan sambungan yang tegas. Anda boleh menyolder wayar, tetapi pastikan anda meletakkan solder yang cukup agar sambungannya cukup kukuh untuk menahan gegaran.

5- LCD1 adalah komponen LCD di easyEDA. Ia mempunyai sambungan asas ke Arduino pro mini. Pastikan pin di sini sama dengan pin dalam perisian.

6- RV1 adalah potensiometer 10K untuk menetapkan kontras LCD. Ia mesti digunakan sekali sahaja dan ketika pertama kali anda menghidupkan LCD.

Langkah 4: Reka Bentuk PCB

Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB
Reka Bentuk PCB

Setelah menyelesaikan reka bentuk skematik dan memahami apa artinya semua, kini saatnya untuk membuat PCB untuknya.

Anda harus menekan "Convert to PCB" di EasyEDA untuk membuat PCB di PCB editor. Kemudian, mulailah meletakkan bahagian dan melakukan routing seperti biasa. Saya cadangkan jangan pernah menggunakan penghala automatik.

Saya telah menggunakan banyak vias untuk berpindah dari lapisan atas ke bawah kerana ruangnya sangat sedikit.

Langkah 5: Buat PCB

Kini, reka bentuk PCB sudah selesai. Kami memeriksa semuanya dan tidak ada masalah. Kita perlu menghantar fail reka bentuk (gerbers) kepada syarikat fabrikasi PCB pilihan kita sehingga dapat melakukannya untuk kita.

Syarikat pilihan saya adalah JLCPCB. Mereka adalah yang terbaik untuk projek dan prototaip tersebut dan mereka menawarkan harga hanya $ 2 untuk keseluruhan 10 keping reka bentuk anda!

Jadi, sekarang kita klik (….) Dan pilih JLCPCB. Kami diarahkan ke laman web JLCPCB kerana mereka bekerjasama dengan EasyEDA. Sekarang isi semua dan buat pesanan. Sekarang tunggu sehingga PCB tiba.

Perlu disebutkan bahawa JLCPCB bukan sahaja mempunyai EasyEDA yang berkaitan dengan mereka, tetapi mereka juga mempunyai kedai komponen yang besar! Manfaat di sini ialah mendapatkan pesanan PCB dan pesanan komponen dihantar bersama! Ya, tidak perlu menunggu 2 pakej tiba secara berasingan, tetapi ia digabungkan dalam satu bungkusan. Saya sangat mengesyorkan menggunakan ini.

Langkah 6: Perhimpunan

Kami mempunyai PCB sahaja dengan segalanya sekarang. Inilah masanya untuk mengumpulkan semuanya.

Pertama, kita perlu menyolder elektronik mengikut skema. Ini adalah tugas yang mudah untuk projek ini.

Setelah menyelesaikan pematerian, sekarang potong lubang yang diperlukan di dalam penutup plastik kemudian pasangkan PCB dengan komponen lain di dalam menggunakan pistol gam panas.

Anda sekarang harus menggunakan potensiometer untuk menyesuaikan kontras LCD, sambil memilih injap perintang yang diperlukan untuk kecerahan, saya telah memilih 100R.

Langkah 7: Kod

Kod untuk projek ini dilampirkan dengan langkah ini, dan penjelasannya adalah seperti berikut:

// sertakan kod perpustakaan: #include #include "DHT.h" // tetapkan DHT Pin #define DHTPIN 2

Sertakan perpustakaan yang diperlukan dan tentukan pin 2 Arduino pro mini sebagai pin data untuk sensor. Pastikan anda memasang perpustakaan ini jika anda tidak memilikinya.

// mulakan perpustakaan dengan nombor pin antara muka LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #tentukan DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Sekarang mulakan perpustakaan LCD dengan pin ini mengikut skema itu sendiri. Gunakan juga perpustakaan DHT dan pilih DHT11 sebagai sensor untuk digunakan, jadi jika anda mempunyai DHT22 maka anda harus mengubahnya.

Baris terakhir mengatakan bahawa kami mempunyai sensor DHT11 dan pin datanya berada di pin "DHTPIN" yang merupakan pin 2 seperti yang kami tetapkan sebelumnya.

batal persediaan () {// sediakan lajur dan baris LCD bilangan: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print ("Suhu dan"); lcd.setCursor (0, 1); lcd.print ("sensor kelembapan"); kelewatan (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("Hossam Moghrabi"); kelewatan (3000); }

Sekarang sudah tiba masanya! dan inilah yang sedang berlaku:

LCD berukuran 16 x 2.

Mulakan perintah DHT untuk mendapatkan nilai.

Cetak "Sensor suhu dan kelembapan" pada 2 baris.

Kelewatan 3 saat.

Paparan yang jelas

Cetak "THUNDERTRONICS" pada baris pertama kemudian cetak "Hossam Moghrabi" pada baris ke-2.

Kelewatan 3 saat.

^ Saya telah melakukan ini sebagai skrin selamat datang yang berlangsung sekitar 6 saat atau lebih sebelum nilai dipaparkan.

gelung kosong () {// baca kelembapan int h = dht.readHumidity (); // suhu bacaan dalam c int t = dht.readTemperature (); jika (isnan (h) || isnan (t)) {lcd.print ("ERROR"); kembali; }

Sekarang kita berada di dalam lingkaran kekal kita yang akan terus berulang.

Simpan bacaan kelembapan di dalam pemboleh ubah "h" dan bacaan suhu di dalam pemboleh ubah "t".

Seterusnya, kami mempunyai pernyataan if. Ini pada dasarnya mengembalikan mesej ralat apabila terdapat ralat. Biarkan tanpa mengubahnya.

Sekarang kita mempunyai semua nilai yang kita perlukan.

lcd.setCursor (0, 0); lcd.print ("Temp. ="); lcd.print (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Kelembapan ="); lcd.print (h); lcd.print ("%"); // lcd.print ("Hossam Moghrabi"); kelewatan (2000);

Akhirnya, kami memaparkan nilai-nilai ini pada paparan LCD. Anda boleh mengubahnya dengan cara yang anda mahukan kerana hanya mencetak nilai di dalam pemboleh ubah "h" dan "t". Menangguhkan 2 saat agak pilihan tetapi anda tidak akan mendapat banyak keuntungan dengan melakukannya lebih cepat kerana sensor itu sendiri tidak begitu pantas dan walaupun begitu, nilai fizikal tidak pernah berubah secepat itu. Jadi 2 saat sangat pantas untuk pekerjaan!

Iaitu ia!

Disyorkan: