top of page

Kontrol Buzzer dengan Serial Monitor + Output LED dan LCD I2C

Updated: May 23


Selamat datang di website Cosmo!

Dalam artikel ini, kita akan belajar mengontrol buzzer menggunakan Serial Monitor, dengan tambahan feedback visual berupa LED merah dan biru, serta tampilan status di LCD I2C 16x2.


Rangkaian

Untuk menyusun rangkaian, kita membutuhkan beberapa komponen berikut:

- Wemos D1 Mini (ESP8266)

- LCD I2C 16x2

- Buzzer

- LED merah dan biru

- Kabel jumper

- Breadboard


Skema Rangkaian



wiring


Penjelasan Rangkaian

5V  VCC LCD, VCC DHT11

GND  GND LCD, anoda LED merah & biru, Buzzer, DHT11.

D7   katoda Buzzer

D6  resistor 470 Ohm à katoda LED merah

D5  resistor 470 Ohm à katoda LED biru

D3  pin data DHT11

D2  SDA LCD

D1  SCL LCD


Kode Program

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>

#define DHTPIN D3        // Sensor DHT11 di Pin D7
#define DHTTYPE DHT11    // Tipe sensor
DHT dht(DHTPIN, DHTTYPE);

#define buzzer D7
#define merah D6
#define biru D5

// Menginisialisasi LCD I2C dengan alamat 0x27 dan ukuran 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  pinMode(buzzer, OUTPUT);
  pinMode(merah, OUTPUT);
  pinMode(biru, OUTPUT);

  lcd.begin();
  lcd.backlight();
  lcd.clear();

  lcd.setCursor(4, 0);
  lcd.print("Cosmo IoT");
  lcd.setCursor(0, 1);
  lcd.print("DHT11 Monitoring");

  dht.begin();  // Mulai DHT11
  delay(2000);
  lcd.clear();
}

void loop() {
  // Membaca suhu dan kelembaban dari DHT11
  float suhu = dht.readTemperature();
  float humid = dht.readHumidity();

  // Menentukan status berdasarkan suhu
  String status;
  if (suhu < 20) {
    status = "Dingin";
    digitalWrite(biru, HIGH);
    digitalWrite(merah, LOW);
    digitalWrite(buzzer, LOW);
  } else if (suhu >= 20 && suhu <= 30) {
    status = "Normal";
    digitalWrite(biru, LOW);
    digitalWrite(merah, LOW);
    digitalWrite(buzzer, LOW);
  } else {
    status = "Panas";
    digitalWrite(biru, LOW);
    digitalWrite(merah, HIGH);
    digitalWrite(buzzer, HIGH);
  }

  // Menampilkan data di LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("S:");
  lcd.print(suhu, 1);
  lcd.print("C");

  lcd.setCursor(8, 0);
  lcd.print("K:");
  lcd.print(humid, 1);
  lcd.print("%");

  lcd.setCursor(0, 1);
  lcd.print("Status:");
  lcd.print(status);

  // Menampilkan data di Serial Monitor
  Serial.print("Suhu: ");
  Serial.print(suhu, 1);
  Serial.print("C, Humid: ");
  Serial.print(humid, 1);
  Serial.print("%, Status: ");
  Serial.println(status);

  delay(2000);
}

Hasil

Jika rangkaian dan kode program berjalan dengan benar:

- Buzzer berbunyi saat ketik "1" di Serial Monitor.

- Buzzer mati saat ketik "2".

- LED merah dan biru memberikan indikasi visual.

- LCD menampilkan status buzzer (ON/OFF).


Jika terjadi error, periksa:

  • instalasi library LCD I2C

  • Koneksi SDA/SCL LCD ke Wemos D1 Mini.

  • Alamat I2C LCD, gunakan scanner I2C jika teks tidak muncul.

  • Catu daya sesuai, agar komponen bisa bekerja dengan stabil.


Video Tutorial

Untuk penjelasan lebih mendalam, tonton tutorial video berikut.




Kesimpulan

Dengan menggunakan Serial Monitor, kita dapat dengan mudah mengontrol buzzer dan mendapatkan feedback visual melalui LED dan LCD I2C.


Kalau ingin belajar lebih banyak tentang IoT, langsung kunjungi YouTube IQ+ dan temukan berbagai tutorial menarik.


Semoga sesuai dengan yang kamu harapkan. Kalau ada revisi atau tambahan, tinggal beritahu aku.

Comments


Bantu tingkatkan
kualitas website ini!

Dengan memberi masukan dan/atau pertanyaan

Jika berkenan, silakan masukan e-mail Anda untuk kontak lebih lanjut

Pilihan
Masukan
Pertanyaan
Lainnya
bottom of page