Rangkaian Elektronika dan Mikrokontroller Dasar

Rangkaian Sensor Kelembaban dan Suhu Menggunakan DHT22

Kita dapat menggunakan sensor kelembaban dan sensor suhu sekaligus menggunakan DHT-22 beserta Arduino UNO untuk membaca data dan menampilkannya pada serial monitor atau bisa juga pada LCD. Pada tutorial ini hanya akan menampilakan data pada serial monitor saja untuk lebih praktisnya.

Sensor DHT-22 dipilih daripada sensor DHT-11 karena memiliki range pengukuran yang luas yaitu 0 sampai 100% untuk kelembaban dan -40 derajat celcius sampai 125 derajat celcius untuk suhu. Sensor ini juga memiliki output digital (single-bus) dengan akurasi yang tinggi.

Sebagai reaksi dari sensor ini, saya menggunakan fan DC yang akan berputar ketika level kelembaban mencapai 60% atau ketika suhu lebih dari 40 derajat celcius, tetapi kita dapat mengganti nilainya pada sketchnya.

Skema:




Pada sketch dapat dilihat library DHT yang disertakan pada code di bawah ini, cukup copy lalu paste di arduino IDEnya.


Sketch:

  1. #include "DHT.h"
  2.  
  3. #define DHTPIN 2 // pin yang dihubungkan dengan sensor
  4. #define DHTTYPE DHT22 // DHT 22 (AM2302)
  5. #define fan 4
  6.  
  7. int maxHum = 60;
  8. int maxTemp = 40;
  9.  
  10. DHT dht(DHTPIN, DHTTYPE);
  11.  
  12. void setup() {
  13. pinMode(fan, OUTPUT);
  14. Serial.begin(9600);
  15. dht.begin();
  16. }
  17.  
  18. void loop() {
  19. // Jeda waktu pengukuran
  20. delay(2000);
  21.  
  22. // Membaca suhu atau kelembaban membutuhkan waktu sekitar 250 milidetik!
  23. // Pembacaan sensor mungkin juga sampai 2 detik lamanya (sensor sangat lambat)
  24. float h = dht.readHumidity();
  25. // Membaca suhu sebagai satuan derajat Celcius
  26. float t = dht.readTemperature();
  27. // Menguji pembacaan sensor (bila gagal maka diulangi lagi)
  28. if (isnan(h) || isnan(t)) {
  29. Serial.println("Gagal membaca dari sensor DHT");
  30. return;
  31. }
  32. if(h > maxHum || t > maxTemp) {
  33. digitalWrite(fan, HIGH);
  34. } else {
  35. digitalWrite(fan, LOW);
  36. }
  37. Serial.print("Kelembaban: ");
  38. Serial.print(h);
  39. Serial.print(" %\t");
  40. Serial.print("Suhu: ");
  41. Serial.print(t);
  42. Serial.println(" *C ");
  43.  
  44. }
Kita mungkin ingin mengganti nilai dari maxHum dan maxTemp untuk memulai kapan fan harus memutar. Kita juga dapat menggunakan relay sebagai ganti dari fan jika kita ingin menambahkan peralatan dengan tegangan yang lebih tinggi. Dan perlu diingat untuk menyambungkan resistor 10K antara Vcc dan Data pin pada sensor DHT-22.

Halaman Berikutnya
« Prev Post
Halaman Sebelumnya
Next Post »

1 komentar :

Unknown delete 31 Mei 2018 pukul 06.29

librarynya gk ada di google drive

Posting Komentar