/*
  MuTech Robotics - MW1 mmWave Human Presence Sensor
  Board : ESP32 development board (30-pin)
  Sensor: 24 GHz mmWave radar sensor (presence output on IO pin)

  Wiring
    Radar V  -> ESP32 3V3     (most 24 GHz presence radars run on 3.3 V - check yours)
    Radar G  -> ESP32 GND
    Radar IO -> D23           (HIGH = person present, even when sitting still)
    D26 -> 220 ohm resistor -> LED +,  LED - -> GND
    Power: USB cable

  The radar keeps IO HIGH while it senses a person - including breathing.
  We add a short hold time so the lamp never flickers.
*/

const int RADAR_PIN = 23;
const int LAMP_PIN  = 26;
const unsigned long HOLD_MS = 5000;   // keep lamp on 5 s after the last detection

unsigned long lastSeen = 0;
bool lampOn = false;

void setup() {
  Serial.begin(115200);
  pinMode(RADAR_PIN, INPUT);
  pinMode(LAMP_PIN, OUTPUT);
  digitalWrite(LAMP_PIN, LOW);
  Serial.println("MW1 mmWave presence - warming up (about 5 s)");
  delay(5000);
}

void loop() {
  bool present = digitalRead(RADAR_PIN) == HIGH;
  if (present) lastSeen = millis();

  bool wantOn = present || (millis() - lastSeen < HOLD_MS);
  if (wantOn != lampOn) {
    lampOn = wantOn;
    digitalWrite(LAMP_PIN, lampOn ? HIGH : LOW);
    Serial.println(lampOn ? "Person present -> lamp ON" : "Room empty -> lamp OFF");
  }
  delay(50);
}
