Proyek Robotik #7: Termometer Digital Bluetooth
Proyek ini adalah Termometer Digital Bluetooth menggunakan mikrokontroler ESP32 yang dapat mengukur suhu dan kelembapan udara secara real-time menggunakan sensor DHT11. Data hasil pengukuran dikirimkan ke perangkat Android atau komputer melalui koneksi Bluetooth, sehingga pengguna bisa memantau suhu dan kelembapan tanpa kabel.
Cara Kerja:
- Sensor DHT11 membaca suhu dan kelembapan lingkungan sekitar.
- Data dikirim ke ESP32 melalui pin digital.
- ESP32 memproses data dan mengirimkan hasilnya melalui Bluetooth Serial.
- Pengguna dapat menerima data tersebut menggunakan aplikasi seperti Serial Bluetooth Terminal (Android) dan Tera Term / PuTTY (PC dengan Bluetooth)
- Pembacaan dan pengiriman data dilakukan setiap 2 detik secara otomatis.


Komponen yang Digunakan:
- 1 × ESP32
- 1 x Sensor DHT11 (bisa versi modul atau 4 pin)
- Kabel jumper
- 1 x Breadboard
- 1 x Kabel USB (untuk upload dan power)
Skema:
| DHT11 Pin | Fungsi | Koneksi ke ESP32 |
| 1 | VCC (+) | 3.3V |
| 2 | Data | GPIO 4 |
| 3 | NC (tidak digunakan) | – |
| 4 | GND (-) | GND |
Kode:
#include <BluetoothSerial.h>
#include <DHT.h>
// Pin dan tipe sensor DHT
#define DHTPIN 4 // Pin digital yang terhubung ke DHT11
#define DHTTYPE DHT11 // Tipe sensor DHT11
BluetoothSerial SerialBT; // Inisialisasi Bluetooth
DHT dht(DHTPIN, DHTTYPE); // Inisialisasi DHT
void setup() {
Serial.begin(115200); // Untuk debugging via Serial Monitor
SerialBT.begin("NAMA_BLUETOOTH"); // Nama perangkat Bluetooth
dht.begin(); // Mulai sensor DHT11
Serial.println("Termometer Digital Bluetooth Siap!");
}
void loop() {
// Membaca suhu dan kelembapan
float suhu = dht.readTemperature(); // Suhu dalam Celcius
float kelembapan = dht.readHumidity(); // Kelembapan dalam %
// Periksa apakah pembacaan valid
if (isnan(suhu) || isnan(kelembapan)) {
Serial.println("Gagal membaca dari sensor DHT11!");
SerialBT.println("Error: Sensor tidak terbaca!");
delay(2000); // Tunggu 2 detik sebelum mencoba lagi
return;
}
// Format data untuk dikirim
String data = "Suhu: " + String(suhu) + "°C | Kelembapan: " + String(kelembapan) + "%";
// Tampilkan di Serial Monitor dan kirim via Bluetooth
Serial.println(data);
SerialBT.println(data);
delay(2000); // Update data setiap 2 detik
}
