// MCC (Master Control Center) untuk lift
// Kirim data ke slave ESP32 via Serial1 (TX = pin 18)
String lantai[] = {"GF", "1F", "2F", "3F"};
int totalLantai = 4;
// Simulasi posisi & arah
int currentIndex = 0;
int previousIndex = -1;
String arah = "STOP";
unsigned long lastChange = 0;
const unsigned long interval = 5000; // Ubah posisi tiap 5 detik
void setup() {
Serial.begin(9600); // Monitor serial
Serial1.begin(9600); // UART ke ESP32 COP
// Serial2.begin(9600); // Jika mau broadcast ke slave lain
// Serial3.begin(9600); // Untuk slave ketiga
Serial.println("MCC aktif");
kirimData(currentIndex, arah);
}
void loop() {
if (millis() - lastChange > interval) {
lastChange = millis();
previousIndex = currentIndex;
currentIndex++;
if (currentIndex >= totalLantai) {
currentIndex = 0;
}
// Tentukan arah
if (currentIndex > previousIndex) arah = "UP";
else if (currentIndex < previousIndex) arah = "DOWN";
else arah = "STOP";
kirimData(currentIndex, arah);
}
}
void kirimData(int index, String arah) {
String msg = "FL:" + lantai[index] + ";DIR:" + arah + "\n";
Serial.print("Kirim: ");
Serial.print(msg);
Serial1.print(msg); // Ke slave 1 (ESP32 COP)
// Serial2.print(msg); // Ke slave 2 jika diperlukan
// Serial3.print(msg); // Ke slave 3 jika ada
}