#define BLYNK_TEMPLATE_ID "TMPL4MYAfJKx"
#define BLYNK_TEMPLATE_NAME "Smart Parking System"
#define BLYNK_AUTH_TOKEN "1evGxYqGpVupphVatdCMVQxftkWmQNPO" //token blynk
#include <WiFi.h>
#include "SPI.h"
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
/**
* ILI9341 TFT libraries and resources
*/
const int TFT_CS = 15;
const int TFT_DC = 2;
const int TFT_MOSI = 23;
const int TFT_SLK = 18;
const int TFT_RST = 4;
/**
* Ultrasonic 1 and Ultrasonic 2 declaration echo and trigger pin
*/
int Trigger1 = 12;
int Echo = 13;
int Trigger2 = 26;
int Echo2 = 25;
int LED1= 21;
int LED2= 32;
/**
* Hardware tft and coding tft configuration
*/
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
#define BOXSIZE 130 // Set unit for box to be display in tft lcd
int dis1;
int dis2;
void setup() {
pinMode(Trigger1,OUTPUT); // Sets the Ultrasonic1 trigPin as an OUTPUT
pinMode(Echo,INPUT); // Sets the Ultrasonic1 Echo1 as an OUTPUT
pinMode(Trigger2,OUTPUT); // Sets the Ultrasonic2 trigPin as an OUTPUT
pinMode(Echo2,INPUT); // Sets the Ultrasonic2 Echo1 as an OUTPUT
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
Serial.begin(115200);
tft.begin();
tft.setRotation(1);
Serial.begin(115200);
tft.fillScreen(ILI9341_BLACK);
tft.setCursor(40, 10);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("IOT PARKING SYSTEM");
}
void loop() {
digitalWrite(Trigger1,LOW);
delayMicroseconds(2);
digitalWrite(Trigger1,HIGH);
delayMicroseconds(2);
digitalWrite(Trigger1,LOW);
long timedelay = pulseIn(Echo,HIGH);
int distance1 = 0.0343 * (timedelay/2);
Serial.print("Sensor 1 : ");
Serial.println(distance1);
delayMicroseconds(2);
digitalWrite(Trigger2,LOW);
delayMicroseconds(2);
digitalWrite(Trigger2,HIGH);
delayMicroseconds(2);
digitalWrite(Trigger2,LOW);
long td = pulseIn(Echo2,HIGH);
int distance2 = 0.0343 * (td/2);
Serial.print("Sensor 2 : ");
Serial.println(distance2);
if(dis1 != distance1 || dis2 != distance2){
dis1=distance1;
dis2=distance2;
if (distance1 < 100 && distance2 < 100) {
tft.fillRect(10, 60, BOXSIZE, BOXSIZE, ILI9341_RED);
tft.setCursor(30, 100);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("OCCUPIED");
tft.setCursor(50, 120);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("C001");
tft.fillRect(170, 60, BOXSIZE, BOXSIZE, ILI9341_RED);
tft.setCursor(190, 100);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("OCCUPIED");
tft.setCursor(210, 120);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("C002");
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}
else if (distance1 < 100 && distance2 > 100) {
tft.fillRect(10, 60, BOXSIZE, BOXSIZE, ILI9341_RED);
tft.setCursor(30, 100);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("OCCUPIED");
tft.setCursor(50, 120);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("C001");
tft.fillRect(170, 60, BOXSIZE, BOXSIZE, ILI9341_YELLOW);
tft.setCursor(190, 100);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("AVAILABLE");
tft.setCursor(210, 120);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("C002");
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
}
else if (distance1 > 100 && distance2 < 100) {
tft.fillRect(10, 60, BOXSIZE, BOXSIZE, ILI9341_YELLOW);
tft.setCursor(30, 100);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("AVAILABLE");
tft.setCursor(50, 120);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("C001");
tft.fillRect(170, 60, BOXSIZE, BOXSIZE, ILI9341_RED);
tft.setCursor(190, 100);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("OCCUPIED");
tft.setCursor(210, 120);
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.print("C002");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
}
else if (distance1 > 100 && distance2 > 100) {
tft.fillRect(10, 60, BOXSIZE, BOXSIZE, ILI9341_YELLOW);
tft.setCursor(20, 100);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("AVAILABLE");
tft.setCursor(50, 120);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("C001");
tft.fillRect(170, 60, BOXSIZE, BOXSIZE, ILI9341_YELLOW);
tft.setCursor(180, 100);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("AVAILABLE");
tft.setCursor(210, 120);
tft.setTextColor(ILI9341_BLACK);
tft.setTextSize(2);
tft.print("C002");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
}
}
}