|

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:

  1. Sensor DHT11 membaca suhu dan kelembapan lingkungan sekitar.
  2. Data dikirim ke ESP32 melalui pin digital.
  3. ESP32 memproses data dan mengirimkan hasilnya melalui Bluetooth Serial.
  4. Pengguna dapat menerima data tersebut menggunakan aplikasi seperti Serial Bluetooth Terminal (Android) dan Tera Term / PuTTY (PC dengan Bluetooth)
  5. 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 PinFungsiKoneksi ke ESP32
1VCC (+)3.3V
2DataGPIO 4
3NC (tidak digunakan)
4GND (-)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
}

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *