Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Tutorial Sensor Suhu dan Kelembaban DHT11 &DHT22 menggunakan Arduino

Dalam Tutorial Arduino ini kita akan mempelajari cara menggunakan sensor DHT11 atau DHT22 untuk mengukur suhu dan kelembaban dengan papan Arduino. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini untuk lebih jelasnya.

Ringkasan

Sensor ini sangat digemari oleh para penghobi elektronik karena harganya yang sangat murah namun tetap memberikan performa yang hebat. Berikut adalah spesifikasi utama dan perbedaan antara kedua sensor ini:

DHT22 adalah versi yang lebih mahal yang jelas memiliki spesifikasi yang lebih baik. Rentang pengukuran suhunya adalah dari -40 hingga +125 derajat Celcius dengan akurasi +-0,5 derajat, sedangkan rentang suhu DHT11 adalah dari 0 hingga 50 derajat Celcius dengan akurasi +-2 derajat. Sensor DHT22 juga memiliki rentang pengukuran kelembaban yang lebih baik, dari 0 hingga 100% dengan akurasi 2-5%, sedangkan rentang kelembaban DHT11 adalah dari 20 hingga 80% dengan akurasi 5%.

Ada dua spesifikasi dimana DHT11 lebih baik dari DHT22. Itu adalah sampling rate yang untuk DHT11 adalah 1Hz atau satu pembacaan setiap detik, sedangkan sampling rate DHT22 adalah 0,5Hz atau satu pembacaan setiap dua detik dan juga DHT11 memiliki ukuran tubuh yang lebih kecil. Tegangan operasi kedua sensor adalah dari 3 hingga 5 volt, sedangkan arus maksimum yang digunakan saat mengukur adalah 2,5mA.

Anda bisa mendapatkan komponen ini dari salah satu situs di bawah:

  • Sensor DHT11……………………………..
  • Sensor DHT22……………………………….
  • Dewan Arduino ……………………………
  • Breadboard dan Kabel Lompat ……… 

Prinsip Kerja DHT11 / DHT22

Ok sekarang mari kita lihat bagaimana sebenarnya sensor ini bekerja. Mereka terdiri dari komponen penginderaan kelembaban, sensor suhu NTC (atau termistor), dan IC di sisi belakang sensor.

Untuk mengukur kelembaban mereka menggunakan komponen penginderaan kelembaban yang memiliki dua elektroda dengan substrat penahan kelembaban di antara mereka. Jadi saat kelembaban berubah, konduktivitas substrat berubah atau resistansi antara elektroda ini berubah. Perubahan resistansi ini diukur dan diproses oleh IC yang membuatnya siap untuk dibaca oleh mikrokontroler.

Di sisi lain, untuk mengukur suhu sensor ini menggunakan sensor suhu NTC atau termistor.

Termistor sebenarnya adalah resistor variabel yang mengubah resistansi dengan perubahan suhu. Sensor ini dibuat dengan sintering bahan semikonduktor seperti keramik atau polimer untuk memberikan perubahan resistansi yang lebih besar hanya dengan perubahan suhu yang kecil.

Istilah “NTC” berarti “Koefisien Temperatur Negatif”, yang berarti bahwa resistansi menurun dengan meningkatnya suhu.

Skema Sirkuit

Sensor DHTxx memiliki empat pin, VCC, GND, pin data dan pin tidak terhubung yang tidak digunakan. Sebuah resistor pull-up dari 5K ke 10K Ohm diperlukan untuk menjaga jalur data tetap tinggi dan untuk memungkinkan komunikasi antara sensor dan Papan Arduino. Ada beberapa versi dari sensor ini yang dilengkapi dengan breakout board dengan resistor pull-up built-in dan hanya memiliki 3 pin.

Sensor DHTXX memiliki protokol kabel tunggal yang digunakan untuk mentransfer data. Protokol ini membutuhkan waktu yang tepat dan diagram waktu untuk mendapatkan data dari sensor dapat ditemukan dari lembar data sensor. Namun, kita tidak perlu terlalu khawatir dengan diagram pengaturan waktu ini karena kita akan menggunakan library DHT yang menangani semuanya.

Tutorial terkait:Pelajari cara membangun Stasiun Cuaca Nirkabel berbasis Arduino

Kode Sumber

Pertama, kita perlu menyertakan pustaka DHT yang dapat ditemukan dari situs web resmi Arduino, lalu menentukan nomor pin yang terhubung dengan sensor kita dan membuat objek DHT. Di bagian setup kita perlu memulai komunikasi serial karena kita akan menggunakan monitor serial untuk mencetak hasilnya. Menggunakan fungsi read22() kita akan membaca data dari sensor dan memasukkan nilai suhu dan kelembaban ke dalam variabel t dan h. Jika Anda menggunakan sensor DHT11, Anda memerlukan fungsi read11(). Pada akhirnya kita akan mencetak nilai suhu dan kelembapan pada serial monitor.

/*  DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */
/*
 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */
 
#include <dht.h>

#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object

void setup() {
  Serial.begin(9600);
}
void loop() {
  int readData = DHT.read22(dataPin); // Reads the data from the sensor
  float t = DHT.temperature; // Gets the values of the temperature
  float h = DHT.humidity; // Gets the values of the humidity
  
  // Printing the results on the serial monitor
  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print("    Humidity = ");
  Serial.print(h);
  Serial.println(" % ");
  
  delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz
}Code language: Arduino (arduino)

Setelah kita akan mengupload kode ini ke board Arduino, hasil suhu dan kelembaban dari sensor dapat dilihat pada Serial monitor.

Saya juga membuat contoh di mana saya menampilkan hasilnya di LCD. Berikut kode sumber dari contoh tersebut:

/*  DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */
/*
 * You can find the DHT Library from Arduino official website
 * https://playground.arduino.cc/Main/DHTLib
 */

#include <LiquidCrystal.h> // includes the LiquidCrystal Library
#include <dht.h>


#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;

void setup() {
  lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}

void loop() {
  int readData = DHT.read22(dataPin);
  float t = DHT.temperature;
  float h = DHT.humidity;
  lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
  lcd.print("Temp.: "); // Prints string "Temp." on the LCD
  lcd.print(t); // Prints the temperature value from the sensor
  lcd.print(" C");
  lcd.setCursor(0,1);
  lcd.print("Humi.: ");
  lcd.print(h);
  lcd.print(" %");
  delay(2000);
}Code language: Arduino (arduino)

Jangan ragu untuk mengajukan pertanyaan apa pun di bagian komentar di bawah.


Proses manufaktur

  1. Sensor Suhu Python dan Raspberry Pi
  2. Suhu dan Kelembaban yang Mudah di Raspberry Pi
  3. Sensor Analog Pada Raspberry Pi Menggunakan MCP3008
  4. Kontrol Jarak Jauh Universal menggunakan Arduino, 1Sheeld, dan Android
  5. Voltmeter DIY Menggunakan Arduino dan Smartphone
  6. Pencatat Data Suhu dan Kelembaban
  7. Pengukuran Frekuensi dan Siklus Tugas Menggunakan Arduino
  8. Suhu, Kelembaban, dan Tekanan BME280 pada Tampilan Berikutnya
  9. Mengontrol Kecerahan LED Menggunakan Bolt dan Arduino
  10. Cara membaca suhu dan kelembaban di Blynk dengan DHT11