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 sensordht11dengan 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 dalamSerial.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 :





