Celso De souza barbosa neto
Published

Simulação de estacionamento inteligente

2 vagas de estacionamentos sendo monitoradas em tempo real, utilizando ESP32, sensores ultrassônicos, LEDs, Firebase e Web page.

IntermediateShowcase (no instructions)5 hours61
Simulação de estacionamento inteligente

Things used in this project

Hardware components

ESP32
Espressif ESP32
×1
Ultrasonic Sensor - HC-SR04
SparkFun Ultrasonic Sensor - HC-SR04
×2
myProto Protoboard for NI myDAQ & myRIO
Digilent myProto Protoboard for NI myDAQ & myRIO
×2
USB-A to Mini-USB Cable
USB-A to Mini-USB Cable
×1
LED (generic)
LED (generic)
×4
Resistor 220 ohm
Resistor 220 ohm
×4

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Box, General Purpose
Box, General Purpose

Story

Read more

Code

Estacionamento Inteligente

C/C++
Simulação de vagas de estacionamento com uma caixa de papel, no total de 2 vagas com 1 sensor ultrassônico em cada vaga, configurados para detectar a presença de objetos a 10cm de distância, Os LED's vermelhos e verdes indicam se as vagas estão ocupadas e disponíveis respectivamente, A situação das vagas podem ser vistas, com o auxílio da Plataforma do Firebase Realtime Database, pelo link https://regulusinfo.wixsite.com/regulusinformatica/projeto-estacionamento.
/*IFPE Recife - Técnico em Eletrônica
Equipe: Celso Barbosa, Jemesson Moreira, Valdemir José
Projeto: Estacionamento inteligente*/
//sensor0
#define pinoTrig 18
#define pinoEcho 5
#define pinoLedRed 19
#define pinoLedGreen 4
//sensor1
#define pinoTrig1 12
#define pinoEcho1 14
#define pinoLedRed1 27
#define pinoLedGreen1 26
//define as credenciais do wifi
#include <WiFi.h>
#define WIFI_SSID "iPhone de Celso"
#define WIFI_PASSWORD "12345678"
//define RTDB do firebase
#include <FirebaseESP32.h>
#define DATABASE_URL "https://sm-estacionamento-inteligente-default-rtdb.firebaseio.com/";
#define DATABASE_SECRET "DzSMxA1YRxKowcgbTF54MBGnWrV5Nt0SaJefpEjY"
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
unsigned long dataMillis = 0;
void setup() {
Serial.begin(115200);
pinMode(pinoTrig, OUTPUT);    //sensor0
pinMode(pinoEcho, INPUT);
pinMode(pinoLedRed, OUTPUT);
pinMode(pinoLedGreen, OUTPUT);
pinMode(pinoTrig1, OUTPUT);    //sensor1
pinMode(pinoEcho1, INPUT);
pinMode(pinoLedRed1, OUTPUT);
pinMode(pinoLedGreen1, OUTPUT);
//configurações do wifi
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
/* Assign the certificate file (optional) */
// config.cert.file = "/cert.cer";
// config.cert.file_storage = StorageType::FLASH;
/* Assign the database URL and database secret(required) */
config.database_url = DATABASE_URL;
config.signer.tokens.legacy_token = DATABASE_SECRET;
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
// Comment or pass false value when WiFi reconnection will control by your code or third party library e.g. WiFiManager
Firebase.reconnectNetwork(true);
// Since v4.4.x, BearSSL engine was used, the SSL buffer need to be set.
// Large data transmission may require larger RX buffer, otherwise connection issue or data read time out can be occurred.
fbdo.setBSSLBufferSize(4096 /* Rx buffer size in bytes from 512 - 16384 */, 1024 /* Tx buffer size in bytes from 512 - 16384 */);
/* Initialize the library with the Firebase authen and config */
Firebase.begin(&config, &auth);
// Or use legacy authenticate method
// Firebase.begin(DATABASE_URL, DATABASE_SECRET);
}
void loop() {
digitalWrite(pinoTrig, HIGH);   //sensor0
delayMicroseconds(10);
digitalWrite(pinoTrig, LOW);
int duracao = pulseIn(pinoEcho, HIGH);
int distancia = duracao/58.80475;
bool disponivel;
if (distancia<10){
digitalWrite(pinoLedRed, HIGH);
digitalWrite(pinoLedGreen, LOW);
disponivel = false;
}else{
digitalWrite(pinoLedRed, LOW);
digitalWrite(pinoLedGreen, HIGH);
disponivel = true;
}
digitalWrite(pinoTrig1, HIGH);   //sensor1
delayMicroseconds(10);
digitalWrite(pinoTrig1, LOW);
int duracao1 = pulseIn(pinoEcho1, HIGH);
int distancia1 = duracao1/58.80475;
bool disponivel1;
if (distancia1<10){
digitalWrite(pinoLedRed1, HIGH);
digitalWrite(pinoLedGreen1, LOW);
disponivel1 = false;
}else{
digitalWrite(pinoLedRed1, LOW);
digitalWrite(pinoLedGreen1, HIGH);
disponivel1 = true;
}
if (millis() - dataMillis > 5000)
{
dataMillis = millis();
Firebase.setBool(fbdo, "/sensor0/disponivel", disponivel);
Firebase.setBool(fbdo, "/sensor1/disponivel1", disponivel1);
}
/*Serial.print("\nDistância do sensor0 (cm): ");
Serial.println(distancia);
Serial.println(ocupado);
Serial.print("Distancia do sensor1 (cm): ");
Serial.println(distancia1);
Serial.println(ocupado1);*/
delay(1000);
}

Credits

Celso De souza barbosa neto
1 project • 0 followers

Comments