Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 25

POWER SUPPLY

BLOCK DIAGRAM:

16X2 LCD
MAIN IR SENSOR

IR ALARM

SEN SLOT1
ARDUINO UNO
IR CONTROLLER

SEN SLOT2 ESP

8266
IR

SEN SLOT3

IR

SEN SLOT4
COMPONENTS USED:

 Arduino Uno

 IR SENSORS

 ALARM

 12v ADAPTOR

 ESP8266

 Resistors

 Capacitors

 Transistors

 Cables and Connectors

 Diodes
 LED

 Push Buttons

 Switch

 IC

 IC Sockets

Software Specifications

 Arduino Compiler

 Programming Language: EMBEDDED C

CIRCUIT:
VC C
VC C

10uf/63v
M AX232 IOREF 13

16
BU ZZER
2 14 RESET 7
V+ T1 O U T

VC C
1 13
C 1+ R 1IN 6 VC C
3.3V
10uf/63v

12
R 1O U T 11 5 1
T1 I N VC C 5V GND

16 X 2 LCD DISPLAY
3 2
4 C 1- 10 4 3 VC C
C 2+ T2 I N TXD GND VEE
9 4
10uf/63v

R 2O U T R XD RS
GND GND 11 5
8 1 6 RW
R 2IN ARDUINO UNO R3 EN
5 7 2 Vin 10 7
C 2- T2 O U T D0
GND
6 3 8
V- 12 9 D1
. A6 . D2
ESP8266 10
10uf/63v

9 11 D3
A0
15

WIFI
. D4
GND 12
MODULE 8 13 D5
GND . SEN 4 A1 . D6
GND 14
33pf 10 D7
SEN 3 A2 .
XTA L -1
VC C A4 2
SEN 2 MAIN SEN
16MH Z
A5 1 TXD
C R Y S TA L SEN 1 TXD
33pf 10K VC C
SW 1 0 RXD

10uf
R XD

8
GND R ST
10K VC C 3 +
1
8.2K 2 - A3A
10K VC C
SEN 3

8
3 + LM358

4
GND 1

8
2 - 2N D PIN A
3
MAIN SEN +
1
LM358 2 - A 5 A1 0 K VC C

4
SEN 1
ALARM ALAR M
LM358

8
GND 3 +
1

B R I D G E R E C TI F I E R 1
VC C 2 - A2A
VC C 10K VC C
J2 7 8 0 5 R E G U L A TO R SEN 4
2 2 - + 4 1 3
VIN VOU T LM358
GND

4
1

8
220 ohm s 3
t o t ra n s f o rm e r +
1000uf

1
2

2 A4A
104pf -
3

33pf SEN 2
LM358

4
LED

GND

Code:

#include <LiquidCrystal.h>

LiquidCrystal lcd(10,11,4,5,6,7);

const char* ssid = "smartparking";

const char* password = "smartparking123";

char res[130];

#define in 2

#define out 8
#define ALARM 13

int m11 = 8;

int m22 = 9;

int sen1 = 2;

int sen2 = 19;

int sen3 = 18;

int sen4 = 17;

int sen5 = 16;

int r11,r22,r33,r44;

int count=0,slot1,slot2,slot3,slot4;

int val;

float TEMP;

void IN()

count++;

// lcd.clear();

lcd.print("Person In Room:");
lcd.setCursor(15,1);

lcd.print(count);

delay(1000);

void OUT()

count--;

//lcd.clear();

lcd.print("Person In Room:");

lcd.setCursor(15,1);

lcd.print(count);

delay(1000);

void serialFlush(){

while(Serial.available() > 0) {

char t = Serial.read();

}
}

char check(char* ex,int timeout)

int i=0;

int j = 0,k=0;

while (1)

sl:

if(Serial.available() > 0)

res[i] = Serial.read();

if(res[i] == 0x0a || res[i]=='>' || i == 100)

i++;
res[i] = 0;break;

i++;

j++;

if(j == 30000)

k++;

//Serial.println("kk");

j = 0;

if(k > timeout)

// Serial.println("timeout");

return 1;

}//while 1
if(!strncmp(ex,res,strlen(ex)))

//Serial.println("ok..");

return 0;

else

// Serial.print("Wrong ");

// Serial.println(res);

i=0;

goto sl;

char buff[200];

void upload1();

void setup() {
int i=0;

char ret;

Serial.begin(9600);

lcd.begin(16,2);

lcd.clear();lcd.setCursor(0, 0);lcd.print("WELCOME");

delay(3000);

serialFlush();

st:

Serial.println("ATE0");

ret = check((char*)"OK",50);

ret = check((char*)"OK",50);

if(ret != 0)

delay(100);
delay(100);

goto st;

delay(1000);

Serial.println("AT+CWMODE = 1");

ret = check((char*)"OK",50);

lcd.clear();lcd.setCursor(0, 0);lcd.print("CONNECTING");

cagain:

delay(1000);

serialFlush();

Serial.print("AT+CWJAP=\"");

Serial.print(ssid);

Serial.print("\",\"");

Serial.print(password);

Serial.println("\"");
if(check((char*)"OK",300))

lcd.clear();lcd.setCursor(0, 0);lcd.print("CONNECTING");

goto cagain;

delay(1000);

lcd.clear();lcd.setCursor(0, 0);lcd.print("CONNECTED");

Serial.println("AT+CIPMUX=1");

delay(1000);delay(1000);

lcd.clear();

lcd.begin(16,2);

pinMode(in, INPUT);

pinMode(out, INPUT);

pinMode(sen1, INPUT);
pinMode(sen2, INPUT);

pinMode(sen3, INPUT);

pinMode(sen4, INPUT);

pinMode(sen5, INPUT);

pinMode(ALARM, OUTPUT);

lcd.print("CAR PARKING");

r11=r22=r33=r44=0;

//lcd.setCursor(4,1);

delay(2000);

lcd.clear();

lcd.setCursor(0,1);

lcd.print("CARS IN PARKING:");

lcd.setCursor(15,1);

lcd.print(count);

unsigned long int duration = 0;


int upload=0,count1=0;

void loop() {

lcd.setCursor(0,0);

lcd.print("IOT CAR PARKING");

//if(digitalRead(in)==0)

//IN();

//if(digitalRead(out)==0)

// OUT();

if ((digitalRead(sen1)==0) && (r11==0&&(r22==0||r22==1)&&(r33==0||

r33==1)&&(r44==0||r44==1)))

count++;

lcd.setCursor(0,1);

lcd.print("SLOT NO 1 ");
delay(2000);

slot1=100;

r11=1;

else if ((digitalRead(sen1)==0) && (r11==1&&r22==0&&(r33==0||

r33==1)&&(r44==0||r44==1)))

count++;

lcd.setCursor(0,1);

lcd.print("SLOT NO 2 ");

delay(2000);

slot2=100;

r22=1;
}

else if ((digitalRead(sen1)==0) && (r11==1&&r22==1&&r33==0)&&(r44==0||

r44==1))

count++;

lcd.setCursor(0,1);

lcd.print("SLOT NO 3 ");

delay(2000);

slot3=100;

/*digitalWrite(m11, HIGH);

digitalWrite(m22, LOW);

delay(2000);

digitalWrite(m11, HIGH);

digitalWrite(m22, HIGH);

delay(2000);

digitalWrite(m11, LOW);
digitalWrite(m22, HIGH);

delay(2000);

digitalWrite(m11, HIGH);

digitalWrite(m22, HIGH); */

r33=1;

else if ((digitalRead(sen1)==0) && (r11==1&&r22==1&&r33==1&&r44==0))

count++;

lcd.setCursor(0,1);

lcd.print("SLOT NO 4 ");

delay(2000);

slot4=100;

/*digitalWrite(m11, HIGH);

digitalWrite(m22, LOW);
delay(2000);

digitalWrite(m11, HIGH);

digitalWrite(m22, HIGH);

delay(2000);

digitalWrite(m11, LOW);

digitalWrite(m22, HIGH);

delay(2000);

digitalWrite(m11, HIGH);

digitalWrite(m22, HIGH); */

r44=1;

else if ((digitalRead(sen1)==0) && (r11==1&&r22==1&&r33==1&&r44==1))

lcd.setCursor(0,1);

lcd.print("PARKING FULL ");


digitalWrite(ALARM,HIGH);

delay(800);

digitalWrite(ALARM,LOW);

delay(400);

else if ((digitalRead(sen2)==0))

count--;

r11=0;

lcd.setCursor(0,1);

lcd.print("SLOT 1 EMPTY ");

delay(2000);

slot1=000;

lcd.setCursor(0,1);

lcd.print(" ");

//delay(500);
}

else if ((digitalRead(sen3)==0))

{count--;

r22=0;

lcd.setCursor(0,1);

lcd.print("SLOT 2 EMPTY ");

delay(2000);

slot2=000;

lcd.setCursor(0,1);

lcd.print(" ");

else if ((digitalRead(sen4)==0))

{count--;

r33=0;

lcd.setCursor(0,1);

lcd.print("SLOT 3 EMPTY ");

delay(2000);
slot3=000;

lcd.setCursor(0,1);

lcd.print(" ");

else if ((digitalRead(sen5)==0))

{count--;

r44=0;

lcd.setCursor(0,1);

lcd.print("SLOT 4 EMPTY ");

delay(2000);

slot4=000;

lcd.setCursor(0,1);

lcd.print(" ");

if(count<=0)

lcd.clear();
delay(200);

count1++;

if(upload == 1||count1 == 2)

count1 =0;

upload = 0;

upload1();

void upload1()
{

delay(100);

serialFlush();

Serial.println("AT+CIPSTART=4,\"TCP\",\"184.106.153.149\",80");

delay(1000);

serialFlush();

delay(500);

serialFlush();

Serial.print("GET /update?api_key=N5T9QUJSAUN35EVY&");

sprintf(buff,"&field1=%04u",slot1);

Serial.print(buff);

sprintf(buff,"&field2=%04u",slot2);

Serial.print(buff);
sprintf(buff,"&field3=%04u",slot3);

Serial.print(buff);

sprintf(buff,"&field4=%04u",slot4);

Serial.print(buff);

Serial.println("");

delay(500);

Serial.println("AT+CIPCLOSE");

}//>
}//Linked

You might also like