Kontrol Kipas dan LED dengan Sensor Suara LM393 + Display LCD I2C di Wemos D1 Mini
- Adam Kusumah
- Jun 5
- 2 min read
Updated: Jun 13
Selamat datang di website Cosmo!
di artikel ini, kita akan belajar mengontrol Kipas dan LED dengan sensor Suara (LM393) + display LCD I2C.
Skema Rangkaian

Penjelasan Rangkaian
5V → VCC LM393, LCD & Relay (+)
D6 → Out LM393
GND → LM393(-), LCD(-), LED (-) & Relay (-)
D1 → SCL LCD
D2 → SDA LCD
D7 → Resistor 470 Ohm à LED
D3 → Data Relay
Adaptor (+) → COM Relay
Adaptor (-) → Fan (+)
NO Relay → Fan (+)
#include <Wire.h> // Library I2C
#include <LiquidCrystal_I2C.h> // Library LCD 16x2
const int soundSensorPin = D6; // LM393 Digital Output (DO)
const int relayPin = D3; // Kontrol relay
const int ledPin = D7; // Indikator LED
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat LCD I2C (bisa 0x27 atau 0x3F)
bool fanState = false; // Status awal kipas (mati)
unsigned long lastDetectTime = 0;
const int debounceTime = 300; // Waktu debounce untuk menghindari trigger ganda
void setup() {
Serial.begin(115200);
pinMode(soundSensorPin, INPUT);
pinMode(relayPin, OUTPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(relayPin, LOW); // Pastikan relay mati di awal
digitalWrite(ledPin, LOW); // LED mati di awal
lcd.begin(); // Inisialisasi LCD
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("Project IoT");
lcd.setCursor(2, 1);
lcd.print("Fan Control");
delay(2000);
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Make Your");
lcd.setCursor(3, 1);
lcd.print("First Sound");
}
void loop() {
int soundDetected = digitalRead(soundSensorPin);
if (soundDetected == HIGH && millis() - lastDetectTime > debounceTime) {
fanState = !fanState; // Toggle status kipas
digitalWrite(relayPin, fanState ? HIGH : LOW); // Aktifkan/matikan relay
digitalWrite(ledPin, fanState ? HIGH : LOW); // Nyalakan/matikan indikator LED
lastDetectTime = millis();
Serial.println(fanState ? "Kipas Menyala - LED ON" : "Kipas Mati - LED OFF");
// Update tampilan LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(fanState ? "Kipas: Menyala" : "Kipas: Mati");
lcd.setCursor(0, 1);
lcd.print(fanState ? "LED: ON" : "LED: OFF");
}
}Hasil
Kode ini mengontrol kipas angin dengan sensor suara LM393 yang terhubung ke pin D6 pada Wemos D1 Mini. Saat sensor mendeteksi suara, sistem memeriksa apakah waktu debounce telah berlalu untuk menghindari pemicuan ganda. Jika kondisi terpenuhi, status kipas diubah dari menyala ke mati atau sebaliknya dengan mengaktifkan atau menonaktifkan relay pada pin D3, yang berfungsi sebagai sakelar elektronik yang mengontrol aliran listrik ke kipas. LED indikator di pin D7 juga dinyalakan atau dimatikan sesuai dengan status kipas. Sistem diinisialisasi dengan baud rate 115200 dan memastikan relay serta LED dalam keadaan mati saat startup. Modul LCD I2C digunakan untuk menampilkan informasi status kipas dan LED secara real-time, dengan pesan awal yang mendorong pengguna untuk memberikan suara agar sistem mulai bekerja. Waktu deteksi terakhir disimpan menggunakan fungsi millis() untuk menentukan apakah perubahan status dapat dilakukan.
Video Tutorial
Untuk penjelasan lebih mendalam, tonton tutorial video berikut.
Kesimpulan
Kalau ingin belajar lebih banyak tentang IoT, langsung kunjungi YouTube IQ+ dan temukan berbagai tutorial menarik lainnya.



Comments