#include <ToneESP32.h>
#define BUZZER_PIN 23
#define BUZZER_CHANNELN 0
ToneESP32 buzzer(BUZZER_PIN, BUZZER_CHANNELN);
int Trig =22;
int Echo =21;
void setup() {
Serial.begin(115200);
Serial.println("機器啟動");
pinMode(12, OUTPUT);
pinMode(14, OUTPUT);
pinMode(27, OUTPUT);
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
}
void loop() {
//超音波設定
digitalWrite(Trig, LOW);
delayMicroseconds(5);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
float EchoTime = pulseIn(Echo, HIGH);
float MValue = EchoTime / 29.4 / 2;
Serial.println(MValue);
delay(50);
//超音波
//距離小於150=紅燈+C5(一級警戒)
if (MValue<=150)
{
Serial.println("一級警戒,派出相關人員協助處理");
digitalWrite(12, LOW);
digitalWrite(14, LOW);
digitalWrite(27, HIGH);
buzzer.tone(NOTE_B5,250);
//距離小於300=黃燈+B2(二級警戒)
} else if (MValue<300){
Serial.println("二級警戒,派出無人機");
digitalWrite(12, LOW);
digitalWrite(14, HIGH);
digitalWrite(27, LOW);
buzzer.tone(NOTE_B5,500);
//距離大於300=綠燈+無聲音(安全)
} else {
digitalWrite(12, HIGH);
digitalWrite(14, LOW);
digitalWrite(27, LOW);
}
}