#include "WiFi.h"
#include <ESP32Servo.h>
const int trigPin = 14;
const int echoPin = 27;
const int ledPin = 2;
const int buzzerPin = 15;
Servo myservo;
void setup() {
Serial.begin(9600);
WiFi.mode(WIFI_STA);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
myservo.attach(12); // Mengganti 6 dengan pin yang sesuai untuk servo
Serial.println("Scan Wifi...");
int networks = WiFi.scanNetworks();
if(networks == 0){
Serial.println("No WiFi Networks!");
}else{
Serial.print(networks);
Serial.println(" Networks Found!");
for(int i= 0; i < networks; i++){
Serial.print("WiFi ke-");
Serial.println(i+1);
Serial.println(WiFi.SSID(i));
Serial.println(WiFi.RSSI(i));
delay(10);
}
}
}
void loop() {
// Mengirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menerima sinyal pantul
long duration = pulseIn(echoPin, HIGH);
// Menghitung jarak
int distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.println(distance);
// Jika jarak setengah meter, aktifkan LED, buzzer, dan gerakan servo
if (distance <= 50) {
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000, 500);
myservo.write(90); // Putar servo ke posisi 90 derajat
delay(1000);
} else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
myservo.write(0); // Putar servo ke posisi 0 derajat
}
delay(1000); // Tunggu 1 detik sebelum mengukur jarak lagi
}