#include <Wire.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include<WiFi.h>
#include<BlynkSimpleEsp32.h>
char auth[]=""
char ssid[]=""
char pass[]=""
#define TRIG_PIN 5
#define ECHO_PIN 18
#define VIBRATION_MOTOR_PIN 4
Adafruit_MPU6050 mpu;
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(VIBRATION_MOTOR_PIN, OUTPUT);
// Initialize MPU6050
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
mpu.setAccelerometerRange(MPU6050_RANGE_2_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}
void loop() {
// Ultrasonic sensor pulse
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Read the echo pulse
long duration = pulseIn(ECHO_PIN, HIGH);
long distance = duration * 0.034 / 2;
// Output distance to serial monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Activate vibration motor if object is close
if (distance < 50) {
digitalWrite(VIBRATION_MOTOR_PIN, HIGH);
} else {
digitalWrite(VIBRATION_MOTOR_PIN, LOW);
}
// Read accelerometer and gyroscope data
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
// Output accelerometer data to serial monitor
Serial.print("Accel X: "); Serial.print(a.acceleration.x); Serial.print(" ");
Serial.print("Accel Y: "); Serial.print(a.acceleration.y); Serial.print(" ");
Serial.print("Accel Z: "); Serial.println(a.acceleration.z);
// Output gyroscope data to serial monitor
Serial.print("Gyro X: "); Serial.print(g.gyro.x); Serial.print(" ");
Serial.print("Gyro Y: "); Serial.print(g.gyro.y); Serial.print(" ");
Serial.print("Gyro Z: "); Serial.println(g.gyro.z);Serial.print(" ");
delay(100);
}