India Automation Challenge 2021
OR
In india due to high population, traffic is an issue. In many malls, hospitals, theatres and many other place there's no proper parking system and people face jams. So we decided to make this project to avoid traffic jams and give a proper parking system. This system works without any human effort total automatically and provides proper parking system without any hesitation.
Arduino Uno, IR sensor, servo motor, 10k pot, 16*2 lcd
Arduino IDE, fritzing
Arduino Uno was selected as it is readily available. Arduino IDE software is used to program the board. IR sensors were used to detect the number of car go inside into smart car parking system, it also detect number of car go outside from smart car parking system. The total space and blank space on the parking site is display on the lcd. Servo motor is use as a gate. To make the circuit I use fritzing because it's quite easy for me.
LCD - arduino Vss----gnd, Vdd----5v, Ve------10k pot( middle leg), RS-----A0, RW-----gnd, Enable --- A1, D4--A2, D5-A3, D6-A4, D7-A5, 5v-vcc, Gnd-gnd IR sensor1 --- Arduino Vcc(ir 1)--------5v, Gnd(ir 1)--------gnd, Out(ir 1)---------digital pin 2 Ir sensor 2 ---- arduino Vcc---5v, Gnd---gnd, Out ---digital pin 4 Servo motor ---- arduino Vcc-5v, Gnd-gnd, signal pin - 3
//the electronic noobs
#include <LiquidCrystal.h>// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
#include <Servo.h> //includes the servo library
Servo myservo1;
int ir_s1 = 2;
int ir_s2 = 4;
int Total = 3;
int Space;
int flag1 = 0;
int flag2 = 0;
void setup() {
pinMode(ir_s1, INPUT);
pinMode(ir_s2, INPUT);
myservo1.attach(3);
myservo1.write(100);
lcd.begin(16, 2);
lcd.setCursor (0,0);
lcd.print(" Car Parking ");
lcd.setCursor (0,1);
lcd.print(" System ");
delay (2000);
lcd.clear();
Space = Total;
}
void loop(){
if(digitalRead (ir_s1) == LOW && flag1==0){
if(Space>0){flag1=1;
if(flag2==0){myservo1.write(0); Space = Space-1;}
}else{
lcd.setCursor (0,0);
lcd.print(" Sorry no Space ");
lcd.setCursor (0,1);
lcd.print(" Available ");
delay (1000);
lcd.clear();
}
}
if(digitalRead (ir_s2) == LOW && flag2==0){flag2=1;
if(flag1==0){myservo1.write(0); Space = Space+1;}
}
if(flag1==1 && flag2==1){
delay (1000);
myservo1.write(100);
flag1=0, flag2=0;
}
lcd.setCursor (0,0);
lcd.print("Total Space: ");
lcd.print(Total);
lcd.setCursor (0,1);
lcd.print("Left Space: ");
lcd.print(Space);
}