|

Proyek Robotik #8: Saklar Bluetooth

Proyek ini merupakan sistem kontrol LED nirkabel menggunakan ESP32 dan Bluetooth. Pengguna dapat menyalakan atau mematikan LED hanya dengan mengirimkan perintah dari aplikasi Bluetooth pada smartphone atau komputer. Proyek ini sangat cocok untuk pemula yang ingin memahami dasar komunikasi Bluetooth serial dan kontrol output digital menggunakan ESP32.

Cara Kerja:

  1. ESP32 menginisialisasi koneksi Bluetooth dengan nama “NAMA_BLUETOOTH”.
  2. Pengguna menghubungkan perangkat (smartphone/PC) ke ESP32 melalui Bluetooth.
  3. Ketika pengguna mengirim:
    • Karakter ‘1’ → LED menyala.
    • Karakter ‘0’ → LED mati.
  4. Data yang diterima juga ditampilkan di Serial Monitor untuk keperluan debugging atau observasi.

Komponen yang Digunakan:

  • 1 × ESP32
  • 1 x LED
  • 1 x Resistor 220Ω (untuk membatasi arus LED)
  • Kabel jumper
  • 1 x Breadboard
  • 1 x Kabel USB (untuk upload dan power)

Skema:

KomponenKoneksi
LED Anoda (+)GPIO 5 ESP32 (via resistor 220Ω)
LED Katoda (–)GND ESP32

Kode:

#include "BluetoothSerial.h" // Library untuk Bluetooth pada ESP32

BluetoothSerial SerialBT; // Objek untuk Bluetooth Serial
const int ledPin = 5;     // Pin untuk LED

void setup() {
  pinMode(ledPin, OUTPUT); // Atur pin LED sebagai output
  SerialBT.begin("NAMA_BLUETOOTH"); // Inisialisasi Bluetooth dengan nama perangkat
  Serial.begin(115200);       // Inisialisasi Serial Monitor
  Serial.println("Bluetooth siap, sambungkan ke 'NAMA_BLUETOOTH'");
}

void loop() {
  if (SerialBT.available()) {         // Periksa apakah ada data yang diterima
    char incomingData = SerialBT.read(); // Baca data yang diterima
    Serial.print("Data diterima: ");
    Serial.println(incomingData);

    if (incomingData == '1') {
      digitalWrite(ledPin, HIGH);  // Nyalakan LED
      Serial.println("LED menyala");
    } else if (incomingData == '0') {
      digitalWrite(ledPin, LOW);   // Matikan LED
      Serial.println("LED mati");
    }
  }
}

Similar Posts

Leave a Reply

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