#include <UltrasonicSensor.h>
#include <Servo.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Adafruit_MPU6050.h>
UltrasonicSensor ultrasonic(2,3);
float distance = 0;
Servo myservo;
const int servopin = 9;
int angel = 90;
int led = 5;
int buzzer = 4;
int x = 128;
int y = 64;
int reset = 1;
Adafruit_SSD1306 oled(x, y, &Wire, reset);
if(!oled.begin(SSD1306_SWITCHCAPVCC),0x3c)
{
Serial.print("Connection Failed!");
while(true);
}
oled.clearDisplay();
Adafruit_MPU6050 mpu;
while(!mpu.connection()) {
Serial.println("MPU6050 not connected!");
delay(1000);
}
void setup() {
Serial.begin(9600);
int temp = 22;
ultrasonic.setTemperature(temp);
pinMode(led,OUTPUT);
pinMode(buzzer,OUTPUT);
myservo.attach(servopin);
Wire.begin();
mpu.initialize();
}
void loop() {
distance = ultrasonic.distanceInCentimeters;
Serial.print("distance :");
Serial.println(distance);
myservo.write(0);
if(distance < 15)
{
myservo.write(angel);
Serial.print("Door open");
}
else
{
myservo.write(0);
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(20,20);
oled.print("Distance :");
oled.setCursor(30,30)
oled.println(distance);
oled.display();
Serial.print("Door close");
}
myservo.write(90);
int ax,ay,az;
int gx,gy,gz;
Serial.print("a/g:\t");
Serial.print(&ax); Serial.print('\t');
Serial.print(&ay); Serial.print('\t');
Serial.print(&az); Serial.print('\t');
Serial.print(&gx); Serial.print('\t');
Serial.print(&gy); Serial.print('\t');
Serial.print(&gz); Serial.print('\t');
if(&gx > 0 || &gx < 0)
{
digitalWrite(led,HIGH);
digitalWrite(buzzer,HIGH);
}
else{
digitalWrite(led,LOW);
digitalWrite(buzzer,LOW);
}
if(&gy > 0 || &gy < 0)
{
digitalWrite(led,HIGH);
digitalWrite(buzzer,HIGH);
}
else{
digitalWrite(led,LOW);
digitalWrite(buzzer,LOW);
}
if(&gz > 0 || &gz < 0)
{
digitalWrite(led,HIGH);
digitalWrite(buzzer,HIGH);
}
else{
digitalWrite(led,LOW);
digitalWrite(buzzer,LOW);
}
}