https://www.projectguideline.com/using-arduino-ide-for-doing-esp8266-wemos-d1-mini-wifi-projects/
//Pilih Board:
//Arduino IDE → Tools → Board → Boards Manager…
//Install “ESP8266 by ESP8266 Community” (kalau belum).
//Tools → Board → pilih “LOLIN (WEMOS) D1 R2 & mini”.
const int outputPin1 = D5; // GPIO14
const int outputPin2 = D6; // GPIO12
const int outputPin3 = D7; // GPIO13
int statusFlag = 1;
void setup() {
Serial.begin(115200);
pinMode(outputPin1, OUTPUT);
pinMode(outputPin2, OUTPUT);
pinMode(outputPin3, OUTPUT);
digitalWrite(outputPin1, LOW);
digitalWrite(outputPin2, LOW);
digitalWrite(outputPin3, LOW);
Serial.println("Ready. Ketik A/B/C/D/E/F.");
}
void loop() {
if (Serial.available() > 0) {
char cmd = Serial.read();
handleCommand(cmd);
}
}
void pulsePin(int pin, unsigned long ms) {
digitalWrite(pin, HIGH);
delay(ms);
digitalWrite(pin, LOW);
}
void handleCommand(char cmd) {
if ((cmd == 'A') && statusFlag == 1) {//RECORD outputPin1
statusFlag = 1;
digitalWrite(outputPin1, HIGH);
pulsePin(outputPin1, 2000);
Serial.println("sukses menerima A");
}
else if ((cmd == 'B') && statusFlag == 1) {//NYANYI outputPin2
statusFlag = 1;
digitalWrite(outputPin2, HIGH);
pulsePin(outputPin2, 2000);
Serial.println("sukses menerima B");
}
else if ((cmd == 'C') && statusFlag == 1) {//SPEAKER Standby: outputPin3
statusFlag = 1;
digitalWrite(outputPin3, HIGH);
Serial.println("sukses menerima C");
delay(100);
}
else if (cmd == 'D') { // speaker Tidak Aktif (power ke speaker off):outputPin3
statusFlag = 0;
digitalWrite(outputPin3, LOW);
Serial.println("sukses menerima D");
delay(100);
}
else if (cmd == 'E') { // kembali ke default, speaker standby ON(power ke speaker on)
statusFlag = 1;
digitalWrite(outputPin3, HIGH);
Serial.println("sukses menerima E");
delay(100);
}
else if (cmd == 'F') {
statusFlag = 0; // Speaker Off/Tidak Aktif(power ke speaker off)
digitalWrite(outputPin3, LOW);
Serial.println("sukses menerima F");
delay(100);
}
else {
// abaikan selain A..F (kecuali newline)
if (cmd != '\r' && cmd != '\n') {
Serial.print("Perintah tidak dikenal: ");
Serial.println(cmd);
}
}
}