Sensor suhu dan kelembapan sering digunakan sebagai alat Internet of Things (IoT). Salah satu jenis sensor yang populer adalah DHT 22, yang bisa mengukur nilai suhu negatif dan nilai suhu panas yang cukup tinggi.
Penerapannya mencangkup smart home, smart office, smart factory dan smart agriculture. Bisa menyalakan fan jika suhu terlalu panas. Bisa menyalakan air jika kelembapannya rendah (kering). Bisa mematikan alat jika suhu terlampau panas. Masih banyak lagi bentuk penerapannya.
Video ini menjelaskan mengenai DHT 22, bagaimana mengaitkan DHT 22 ke papan Arduino Uno dan Breadboard, dan menunjukkan hasil pengukuran dalam kondisi normal.
Sebagai bonus, video juga menunjukkan perilaku sensor DHT 22 ketika sensor ini dicelupkan ke dalam air dan dimasukkan ke dalam kulkas. Ada dua DHT 22 yang digunakan. Satu diberikan lapisan coating dan yang satunya tidak diberikan lapisan coating. Dua sensor tersebut dimasukkan ke dalam air.
Kode program dan skema Breadboard bisa ditemukan pada link berikut:
// ProgressTech www.progresstech.co.id // Protus Tanuhandaru #include <DHT.h> //menyertakan library DHT kedalam program #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // Mengatur alamat I2C dan ukuran LCD #define DHTPIN4 4 //pasang sensor pada pin 4 digital #define DHTPIN6 6 //pasang sensor pada pin 6 digital #define DHTTYPE22 DHT22 //kita menggunakan jenis sensor DHT22 DHT dht4(DHTPIN4, DHTTYPE22); //deklarasi pin sensor pada PIN 4 dengan jenis sensor yang dipilih DHT dht6(DHTPIN6, DHTTYPE22); //deklarasi pin sensor pada PIN 6 dengan jenis sensor yang dipilih void setup() { dht4.begin(); //program komunikasi atau setup untuk sensor DHT pada PIN 4 dht6.begin(); //program komunikasi atau setup untuk sensor DHT pada PIN 6 lcd.begin(); // Inisiasi LCD I2C lcd.backlight(); // Menyalakan backlight LCD lcd.setCursor(0, 0); // Tempatkan cursor pada posisi 0 dan 0 lcd.print("ProgressTech"); lcd.setCursor(0, 1); // Tempatkan cursor pada posisi 0 dan 0 lcd.print("Protus"); Serial.begin(9600); //program komunikasi atau setup untuk serial monitor dan kecepatan komunikasi (baudrate) } void loop() { float kelembapan4 = dht4.readHumidity(); //menyimpan nilai kelembapan pada variabel kelembapan sensor PIN 4 float suhu4 = dht4.readTemperature(); //menyimpan nilai suhu pada variabel suhu sensor PIN 4 float kelembapan6 = dht6.readHumidity(); //menyimpan nilai kelembapan pada variabel kelembapan sensor PIN 6 float suhu6 = dht6.readTemperature(); //menyimpan nilai suhu pada variabel suhu sensor PIN 6 //suhu2F = (suhu2*9/5)+32; //suhu2K = suhu2 + 273.15; Serial.print("P4 "); Serial.print(kelembapan4); //menampilkan nilai kelembapan PIN 4 pada Serial Monitor Serial.print("%"); //Simbol persen satuan kelembapan Serial.print(" "); //menambahkan spasi Serial.print(suhu4); //menampilkan nilai suhu pada Serial Monitor Serial.println("*C ||"); //Satuan Derajat Suhu Serial.print("P6 "); Serial.print(kelembapan6); //menampilkan nilai kelembapan PIN 6 pada Serial Monitor Serial.print("%"); //Simbol persen satuan kelembapan Serial.print(" "); //menambahkan spasi Serial.print(suhu6); //menampilkan nilai suhu pada Serial Monitor Serial.println("*C ||"); //Satuan Derajat Suhu lcd.clear(); lcd.setCursor(0,0); lcd.print("Hum:"); lcd.print((int) kelembapan4); //menampilkan nilai kelembapan PIN 4 pada LCD lcd.print("%"); lcd.setCursor(8,0); lcd.print("Tem:"); lcd.print((int) suhu4); //menampilkan nilai suhu PIN 4 pada LCD lcd.print((char)223); lcd.print("C"); lcd.setCursor(0,1); lcd.print("Hum:"); lcd.print((int) kelembapan6); //menampilkan nilai kelembapan PIN 6 pada LCD lcd.print("%"); lcd.setCursor(8,1); lcd.print("Tem:"); lcd.print((int) suhu6); //menampilkan nilai suhu PIN 6 pada LCD lcd.print((char)223); lcd.print("C"); delay(2000); //mengatur jeda waktu pembacaan sensor selama 1000 milidetik }