Smart Parting IoT Menggunakan ESP8266 NodeMCU

Project  Smart Parting IoT Menggunakan ESP8266 NodeMCU

        Dengan semakin populernya Kota Cerdas, selalu ada permintaan akan solusi cerdas untuk setiap hari. IoT telah memungkinkan kemungkinan Kota Cerdas dengan fitur kontrol melalui internet. Seseorang dapat mengontrol perangkat yang dipasang di rumah atau kantornya dari mana saja di dunia hanya dengan menggunakan smartphone atau perangkat apa pun yang terhubung ke internet. 


            Industri Smart Parking telah melihat sejumlah inovasi seperti Smart Parking Management System, Smart Gate Control, Smart Camera yang dapat mendeteksi jenis kendaraan, ANPR (Automatic Number Plate Recognition), Smart Payment System, Smart Entry System dan masih banyak lagi. dan kali ini kita akan buat project Smart Parking bebasis IoT.


Dalam Sistem Parkir Cerdas IoT ini , kita akan mengirimkan data ke server web untuk mencari ketersediaan ruang untuk parkir kendaraan. Disini kami menggunakan firebase sebagai database Iot untuk mendapatkan data ketersediaan parkir. Untuk ini kita perlu menemukan alamat host Firebase dan kunci rahasia untuk otorisasi.

Okeee Mari Kita Buat...!

Komponen yang Diperlukan

  • ESP8266 NodeMCU 
  • Sensor ultrasonik
  • Motor Servo DC
  • Sensor Inframerah
  • Layar LCD 16x2 i2c
  • jumper

Diagram Sirkuit

        Di sini ESP8266 akan mengontrol proses lengkap dan juga mengirimkan informasi ketersediaan parkir ke Google Firebase sehingga dapat dipantau dari mana saja di dunia melalui internet. 2 sensort IR digunakan di gerbang masuk dan keluar untuk mendeteksi keberadaan mobil dan secara otomatis membuka atau menutup gerbang. 

        Dua servo akan bertindak sebagai gerbang masuk dan keluar dan mereka berputar untuk membuka atau menutup gerbang. Akhirnya Senor Ulttasenic digunakan untuk mendeteksi apakah slot parkir tersedia atau terisi dan mengirim data ke ESP8266. 


ProtoType dari Smart Home



Pemrograman ESP8266 NodeMCU untuk Solusi Parkir Cerdas


Untuk memprogram NodeMCU, cukup tancapkan NodeMCU ke Komputer dengan Kabel Micro USB dan buka Arduino IDE. dan Pastiknat bahwa Board ESP8266 NodeMcu sudah terinstal di Arduni IDE, Kalok belum instal Dulu.

Kemudian kita butuh bebrapa Libray sebelum upload kede ke projec kita

#include <ESP8266WiFi.h> 
#include <Servo.h> 
#include <LiquidCrystal_I2C.h> 
#include <Wire.h> 
#include <FirebaseArduino.h>

Kemudian sertakan kredensial firebase yang didapat dari Google Firebase. Ini akan mencakup nama Host yang berisi nama proyek Anda dan kunci rahasia. 

#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com"                           
#define FIREBASE_AUTH "suAkUQ4wXRPW7nA0zJQVsx3H2LmeBDPGmfTMBHCT"  

Sertakan Kredensial Wi-Fi seperti SSID WiFi dan Kata Sandi.

#menentukan WIFI_SSID "teknologi"             
#menentukan WIFI_PASSWORD "teknologi"

Inisialisasi LCD I2C dengan alamat perangkat (Ini dia 0x27) dan jenis LCD. Juga termasuk Motor Servo untuk pintu masuk dan keluar.

LiquidCrystal_I2C lcd (0x27, 16, 2); 
Servo myservo; 
Servo myservo1;

Mulai komunikasi I2C untuk LCD I2C.

Wire.begin(D2, D1);

Hubungkan Motor Servo Masuk dan Keluar ke Pin D5, D6 dari NodeMCU.

  myservo.attach(D6); 
  myservos.attach(D5);

Pilih Pin Pemicu sensor Ultrasonik sebagai Output dan Pin Gema sebagai Input. Sensor ultrasonik akan digunakan untuk mendeteksi ketersediaan tempat parkir. Jika Mobil telah menempati ruang maka itu akan bersinar selain itu tidak akan bersinar.

  pinMode(TRIG, OUTPUT); 
  pinMode(ECHO, INPUT);

Dua pin D0 dan D4 dari NodeMCU digunakan untuk mengambil pembacaan sensor IR. Sensor IR akan bertindak sebagai sensor gerbang Masuk dan Keluar. Ini akan mendeteksi keberadaan mobil.

pinMode(CarExited, INPUT); 
pinMode(carEnter, INPUT);

Hubungkan ke WiFi dan tunggu beberapa saat hingga terhubung.

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);                                     
  Serial.print("Connecting to ");
  Serial.print(WIFI_SSID);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

Mulai koneksi dengan Firebase dengan Host dan Kunci Rahasia sebagai kredensial.

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

Mulai LCD i2c 16x2 dan atur posisi kursor pada baris ke-0 kolom ke - 0.


lcd.begin();
lcd.setCursor(0, 0);

Ambil Jarak dari sensor Ultrasonik. Ini akan digunakan untuk mendeteksi keberadaan kendaraan di tempat tertentu. Pertama kirim pulsa 2 mikrodetik dan kemudian baca pulsa yang diterima. Kemudian ubah menjadi 'cm'. 

  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance = (duration / 2) / 29.1; 
  int carEntry = digitalRead(carEnter);
  if (carEntry == HIGH) {
    countYes++;
    Serial.print("Car Entered = " ); Serial.println(countYes );
    lcd.setCursor(0, 1);
    lcd.print("Car Entered");

Juga pindahkan sudut motor servo untuk membuka gerbang masuk . Ubah sudut sesuai dengan kasus penggunaan Anda.

    for (pos = 140; pos >= 45; pos -= 1) {
      myservos.write(pos);
      delay(5);
    }
    delay(2000);
    for (pos = 45; pos <= 140; pos += 1) {
      // in steps of 1 degree
      myservos.write(pos);
      delay(5);
    }


Dan kirim bacaan ke firebase dengan menggunakan fungsi pushString dari pustaka Firebase.\

Firebase.pushString("/Parking Status/", fireAvailable );

Lakukan langkah serupa seperti di atas untuk Exit IR sensor dan Exit servo motor.

int carExit = digitalRead(carExited);
  if (carExit == HIGH) {
    countYes--;
    Serial.print("Car Exited = " ); Serial.println(countYes);
    lcd.setCursor(0, 1);
    lcd.print("Car Exited");
    for (pos1 = 140; pos1 >= 45; pos1 -= 1) {
      myservo.write(pos1);
      delay(5);
    }
    delay(2000);

    for (pos1 = 45; pos1 <= 140; pos1 += 1) {
      // in steps of 1 degree
      myservo.write(pos1);
      delay(5);
    }
    Firebase.pushString("/Parking Status/", fireAvailable );
    lcd.clear();
  }

Periksa apakah mobil sudah sampai tempat parkir dan jika sudah sampai maka led glow memberi sinyal bahwa tempat sudah penuh.

  if (distance < 6) {
        Serial.println("Occupied ");
    digitalWrite(led, HIGH);
  }

Lain menunjukkan bahwa tempat tersedia.

  if (distance > 6) {
        Serial.println("Available ");
    digitalWrite(led, LOW);
  }

Hitung total ruang kosong di dalam tempat parkir dan simpan dalam string untuk mengirim data ke firebase.

Empty = allSpace - countYes;
  Available = String("Available= ") + String(Empty) + String("/") + String(allSpace);
  fireAvailable = String("Available=") + String(Empty) + String("/") + String(allSpace);
Also print the data to the i2C LCD.
  lcd.setCursor(0, 0);
  lcd.print(Available);


Beginilah cara melacak ketersediaan parkir secara online di Firebase seperti terlihat pada snapshot di bawah ini:


Ini menyelesaikan sistem parkir pintar lengkap menggunakan Modul ESP8266 NodeMCU dan periferal yang berbeda. Anda dapat menggunakan sensor lain juga sebagai pengganti sensor Ultrasonik dan IR. Ada aplikasi yang luas dari Sistem Parkir Cerdas dan produk yang berbeda dapat ditambahkan untuk membuatnya lebih pintar. 

Kode Lengkapnya :

    }
    penundaan(2000);

    for (pos1 = 45; pos1 <= 140; pos1 += 1) { // mengubah posisi servo
      // dalam langkah 1 derajat
      myservo.write(pos1);
      penundaan (5);
    }
    Firebase.pushString("/Status Parkir/", fireAvailable ); // kirim string ke firebase
    lcd.clear();
  }
  if (jarak < 6) { //jika jarak kurang dari 6cm maka di led 
        Serial.println("Occupied ");
    digitalWrite (dipimpin, TINGGI);
  }

  if (jarak > 6) { //jika jarak lebih dari 6cm maka mati led 
        Serial.println("Tersedia ");
    digitalWrite (dipimpin, RENDAH);
  }

  Kosong = allSpace - countYa; //hitung data yang tersedia
 
  Tersedia = String("Tersedia= ") + String(Kosong) + String("/") + String(allSpace); // mengubah int menjadi string
  fireAvailable = String("Available=") + String(Empty) + String("/") + String(allSpace);

  lcd.setCursor(0, 0);
  lcd.print(Tersedia); //mencetak data yang tersedia ke lcd

}


Post a Comment

Lebih baru Lebih lama