// 來客報知機
#define PIR_Pin 15
#define buzzerPin 25

void setup() {
  Serial.begin(115200);
  pinMode(PIR_Pin, INPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  int value = digitalRead(PIR_Pin);   // 讀取PIR數位訊號
  if(value == HIGH){                  // 偵測到人體體溫紅外線的變化輸出高電位
    Serial.println();
    Serial.println("來客了");
    ring();                           // 播放音樂
    delay(5000);                      // 會依所設延遲時間保持高電位      
  }else{
    Serial.print("沒人");
  }
  delay(1000);                        // 每隔1秒感測1次        
}

// 全家鈴聲
void ring(){
  // E6 C6 G5 C6 D6 G6 D6 E6 D6 G5 C6
  // 1  1  1  1  1  2  1  1  1  1  2
  int t = 300;
  tone(buzzerPin, 1319, t);   // E6
  tone(buzzerPin, 1047, t);   // C6
  tone(buzzerPin, 784 , t);   // G5
  tone(buzzerPin, 1047, t);   // C6
  tone(buzzerPin, 1175, t);   // D6
  tone(buzzerPin, 1568, 2*t); // G6
  tone(buzzerPin, 1175, t);   // D6
  tone(buzzerPin, 1319, t);   // E6
  tone(buzzerPin, 1175, t);   // D6
  tone(buzzerPin, 784 , t);   // G5
  tone(buzzerPin, 1047, 2*t); // C6  
}