Cara Menggunakan Sensor Suhu Di ESP32

Cara Menggunakan Sensor Suhu Di ESP32

Sensor suhu yang biasa digunakan dengan ESP32 adalah sensor suhu digital atau analog yang dapat dengan mudah dikoneksikan ke mikrokontroler ini.

Berikut ini adalah cara memprogram Sensor Suhu di ESP32 :

#include <Arduino.h>

#include <DHT.h>

int port_dht11 = 16;
DHT dht11(port_dht11, DHT11);


float baca_suhu_dht11() {
float temperature = dht11.readTemperature();
if (isnan(temperature)) {
return 0.0;
}
return temperature;
}
 
float baca_kelembaban_dht11() {
float humidity = dht11.readHumidity();
if (isnan(humidity)) {
return 0.0;
}
return humidity;
}


void setup()
{
Serial.begin(9600);
dht11.begin();

}
void loop(){
float suhu_dht11 = baca_suhu_dht11();
Serial.println("dht11 suhu: " + (String)suhu_dht11);
float kelembaban_dht11 = baca_kelembaban_dht11();
Serial.println("dht11  Kelembaban : " + (String)kelembaban_dht11);


}



🔧 1. Library & Inisialisasi

#include <Arduino.h>
#include <DHT.h>
  • #include <Arduino.h>: Header standar untuk proyek Arduino (biasanya otomatis disertakan).
  • #include <DHT.h>: Mengimpor library untuk menggunakan sensor DHT (DHT11/DHT22).

⚙️ 2. Inisialisasi Pin dan Objek Sensor

int port_dht11 = 16;
DHT dht11(port_dht11, DHT11);
  • port_dht11 = 16: Pin GPIO 16 digunakan untuk menghubungkan sensor DHT11.
  • DHT dht11(port_dht11, DHT11): Membuat objek sensor dht11 dengan tipe DHT11 dan pin yang digunakan.

🌡️ 3. Fungsi Baca Suhu

float baca_suhu_dht11() {
  float temperature = dht11.readTemperature();
  if (isnan(temperature)) {
    return 0.0;
  }
  return temperature;
}
  • Fungsi untuk membaca suhu.
  • dht11.readTemperature(): Fungsi bawaan library DHT untuk membaca suhu dalam °C.
  • isnan(): Mengecek apakah pembacaan tidak valid (Not a Number). Jika error, kembalikan 0.0.

💧 4. Fungsi Baca Kelembaban

float baca_kelembaban_dht11() {
  float humidity = dht11.readHumidity();
  if (isnan(humidity)) {
    return 0.0;
  }
  return humidity;
}
  • Sama seperti fungsi suhu, tapi membaca kelembaban (% RH).
  • Menghindari error saat pembacaan tidak valid.

🚀 5. Fungsi setup()

void setup() {
  Serial.begin(9600);
  dht11.begin();
}
  • Serial.begin(9600);: Mengaktifkan komunikasi serial dengan kecepatan 9600 baud.
  • dht11.begin();: Menginisialisasi sensor DHT11.

🔁 6. Fungsi loop()

void loop() {
  float suhu_dht11 = baca_suhu_dht11();
  Serial.println("dht11 suhu: " + (String)suhu_dht11);

  float kelembaban_dht11 = baca_kelembaban_dht11();
  Serial.println("dht11  Kelembaban : " + (String)kelembaban_dht11);
}
  • Fungsi ini akan terus berjalan berulang kali.
  • Membaca suhu dan kelembaban menggunakan fungsi yang sudah dibuat.
  • Menampilkan hasil ke Serial Monitor.

🧠 Penjelasan Tambahan

  • Tipe Data float: Digunakan karena data suhu dan kelembaban bisa berupa angka desimal (misal 25.3°C).
  • (String)suhu_dht11: Mengubah nilai float menjadi string supaya bisa digabung dalam Serial.println.
  • Sensor DHT11: Membutuhkan waktu antar pembacaan sekitar 1 detik. Sebaiknya tambahkan delay(2000); di akhir loop untuk mencegah pembacaan terlalu cepat.

✅ Tips Tambahan

Jika kamu mau membuat kodenya lebih baik:

void loop() {
  float suhu = baca_suhu_dht11();
  float kelembaban = baca_kelembaban_dht11();

  Serial.print("Suhu: ");
  Serial.print(suhu);
  Serial.println(" °C");

  Serial.print("Kelembaban: ");
  Serial.print(kelembaban);
  Serial.println(" %");

  delay(2000); // Delay 2 detik antar pembacaan
}

untuk diskusi bisa kontak dibawah ini :

Sosial media :

Apa itu ESP32?