ANTARMUKA DENGAN LED, BUZZER DAN RELAY
Pada modul ini akan membahas mengenai antarmuka dengan LED (Light Emitting Diode), Buzzer dan Relay dengan proyek mengontrol Device dengan aplikasi IoT KIT.
Pengenalan LED
Light Emitting Diode atau LED adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya.
Gambar Simbol dan Bentuk LED
Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P) menuju ke Katoda (K), kelebihan elektron pada N-Type material akan berpindah ke wilayah yang kelebihan hole (lubang) yaitu wilayah yang bermuatan positif (P-Type material). Saat elektron berjumpa dengan hole akan melepaskan photon dan memancarkan cahaya monokromatik (satu warna).
Spesifikasi LED :
- Tegangan kerja : 1.2 – 4.0 Volt (Berdasarkan warna)
- Arus Kerja : 20 mA
- Panjang Gelombang : 430 – 940 nm (Berdasarkan warna)
Pengenalan Buzzer
Buzzer adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Buzzer yang merupakan sebuah perangkat audio yang sering digunakan pada rangkaian alarm anti-maling, Bel Rumah dan alat peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan digunakan adalah Buzzer yang berjenis Piezoelectric. Buzzer bekerja dengan baik dalam menghasilkan frekuensi di kisaran 1 – 5 kHz hingga 100 kHz.
Buzzer bekerja dengan tegangan listrik yang diberikan ke bahan Piezoelectric menyebabkan gerakan mekanis, gerakan tersebut kemudian diubah menjadi suara atau bunyi yang dapat didengar oleh telinga manusia dengan menggunakan diafragma dan resonator.
Spesifikasi Buzzer:
- Tegangan kerja 3 – 12 Volt
- Tahanan dalam 16 Ohm
- Output suara 80-85 dB
Gambar Simbol dan bentuk buzzer
Pengenalan Relay
Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Elektromekanikal yang terdiri dari dua bagian utama yakni Elektromagnet (Coil) dan Mekanikal (Kontak Saklar/Switch). Relay menggunakan prinsip elektromagnetik untuk menggerakkan kontak saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik dengan tegangan lebih tinggi. Misalnya saklar listrik 220V AC.
Gambar Simbol dan bentuk relay
Kontak Poin (Contact Point) Relay 5 pin terdiri dari 2 bagian yaitu :
- Normally Close (NC) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi CLOSE (tertutup)
- Normally Open (NO) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi OPEN (terbuka)
Kumparan Coil jika diberikan arus listrik, maka akan timbul gaya Elektromagnet yang kemudian menarik kontak sakelar untuk berpindah dari Posisi sebelumnya (NC) ke posisi baru (NO) sehingga menjadi Saklar yang dapat menghantarkan arus listrik pada posisi barunya (NO). Pada saat tidak dialiri arus listrik, kontak sakelar akan kembali lagi ke posisi Awal (NC). Coil yang digunakan oleh relay untuk menarik kontak sakelar ke Posisi (NO) pada umumnya hanya membutuhkan arus listrik yang relatif kecil.
Relay 1 pada trainer dapat digunakan untuk tegangan dengan output DC 12V sedangkan pada relay 2 untuk sakelar tegangan DC maupun AC 220V.
Perangkat yang Dibutuhkan
| 1. | ESP32 DEVKIT V1 | 1 Buah |
| 2. | LED | 1 Buah |
| 3. | Buzzer | 1 Buah |
| 4. | Relay | 1 Buah |
| 5. | Kabel Jumper Female-Female | 3 Buah |
Wiring Diagram dan Penyesuaian Aplikasi
Gambar Wiring Diagram dan Penyesuaian Aplikasi
Rangkaian pada gambar dapat diimplementasikan pada trainer dan aplikasi IoT KIT dengan mengikuti tabel berikut:
| HEADER I/O | HEADER MCU |
|---|---|
| L1 | PIN 2 |
| BUZZ | PIN 4 |
| RL1 | PIN 5 |
Pengaturan Aplikasi:
| VISIBILITAS | LABEL | NILAI MAKS | SATUAN |
|---|---|---|---|
| Sakelar 1 | LED | - | - |
| Sakelar 2 | Buzzer | - | - |
| Sakelar 3 | Relay | - | - |
Petunjuk Praktikum:
- Hubungkan kabel jumper dari header LED, BUZZ dan RL1 ke header MCU sesuai dengan tabel rangkaian.
- Hubungkan kabel USB.
- Buka aplikasi IoT KIT, atur sesuai dengan tabel pengaturan aplikasi.
- Buat listing program dengan mengikuti contoh program di bawah.
- Pilih board DOIT ESP32 DEVKIT V1 pada Tools > Board > esp32 > DOIT ESP32 DEVKIT V1.
- Pilih port yang terhubung pada Tools > Port > COM x.
- Verify (compile) dan Upload
Contoh dan Penjelasan Program
/* Antarmuka dengan LED, Buzzer dan Relay - Basic IoT Kit ESP32
* Project : Mengontrol Device dengan Aplikasi IoT KIT
* Created By Electins.id
* https://www.electins.id | https://www.instagram.com/electins.id/
*/
// Library ESP32 WiFi dan Firebase ESP32
#include
#include
// SSID dan Password WiFi
#define WIFI_SSID "SSID_WIFI"
#define WIFI_PASSWORD "PASS_WIFI"
// URL Firebase dan Token Database
#define DATABASE_URL "project_id.firebaseio.com"
#define API_KEY "database_secret"
// Firebase objek dengan nama fbdo
FirebaseData fbdo;
// Nama pengguna pada Aplikasi IoT KIT
String user = "user_id";
// PIN LED, Buzzer dan relay
#define LED_PIN 2
#define BUZZ_PIN 4
#define RELAY_PIN 5
void setup() {
// Serial Monitor pada baudrate 115200
Serial.begin(115200);
// Mengatur PIN LED, Buzzer dan Relay sebagai OUTPUT
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZ_PIN, OUTPUT);
pinMode(RELAY_PIN,OUTPUT);
// Memulai koneksi WiFi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
// Menampilkan status koneksi dan alamat IP
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
// Menampilkan versi client firebase
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
// Memulai koneksi dengan dengan database
// Re-koneksi jika WiFi terputus
Firebase.begin(DATABASE_URL, API_KEY);
Firebase.reconnectWiFi(true);
}
void loop() {
// Membaca database pada alamat */user/switch1
// Jika bernilai true LED ON
// Jika bernilai false LED OFF
if(Firebase.getString(fbdo, "/" + user + "/switch1")) {
if(fbdo.to() == true){
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON");
}else{
Serial.println("LED OFF");
digitalWrite(LED_PIN, LOW);
}
}
// Membaca database pada alamat */user/switch2
// Jika bernilai true Buzzer ON
// Jika bernilai false Buzzer OFF
if(Firebase.getString(fbdo, "/" + user + "/switch2")) {
if(fbdo.to() == true){
digitalWrite(BUZZ_PIN, HIGH);
Serial.println("Buzzer ON");
}else{
Serial.println("Buzzer OFF");
digitalWrite(BUZZ_PIN, LOW);
}
}
// Membaca database pada alamat user/switch3
// Jika bernilai true Relay ON
// Jika bernilai false Relay OFF
if(Firebase.getString(fbdo, "/" + user + "/switch3")) {
if(fbdo.to() == true){
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Relay ON");
}else{
Serial.println("Relay OFF");
digitalWrite(RELAY_PIN, LOW);
}
}
}