Dengan semakin populernya Kota Cerdas, selalu ada permintaan akan solusi cerdas untuk setiap domain. IoT telah mengaktifkan kemungkinan Kota Cerdas dengan itu melalui fitur kontrol internet. Seseorang dapat mengontrol perangkat yang dipasang di rumah atau kantornya dari mana saja di dunia hanya dengan menggunakan ponsel cerdas atau perangkat apa pun yang tersambung ke internet. Ada beberapa domain di kota pintar dan Parkir Cerdas adalah salah satu domain populer di Kota Cerdas.
Industri Smart Parking telah melihat sejumlah inovasi seperti Smart Parking Management System, Smart Gate Control, Smart Cameras yang dapat mendeteksi jenis kendaraan, ANPR (Automatic Number Plate Recognition), Smart Payment System, Smart Entry System dan masih banyak lagi. Hari ini pendekatan serupa akan diikuti dan solusi parkir pintar akan dibangun yang akan menggunakan sensor ultrasonik untuk mendeteksi keberadaan kendaraan dan memicu gerbang untuk membuka atau menutup secara otomatis. ESP8266 NodeMCU akan digunakan di sini sebagai pengontrol utama untuk mengontrol semua periferal yang terpasang padanya.
ESP8266 adalah pengontrol paling populer untuk membangun aplikasi berbasis IoT karena memiliki dukungan bawaan untuk Wi-Fi agar dapat terhubung ke internet. Kami sebelumnya menggunakannya untuk membangun banyak proyek IoT seperti:
- Sistem Keamanan berbasis IOT
- Kotak Persimpangan Cerdas untuk Otomatisasi Rumah
- Sistem Pemantauan Polusi Udara berbasis IOT
- Kirim data ke ThingSpeak
Periksa semua Proyek berbasis ESP8266 di sini.
Pada Sistem Parkir Cerdas IoT ini, kami akan mengirimkan data ke webserver untuk mencari ketersediaan ruang untuk parkir kendaraan. Di sini kami menggunakan firebase sebagai database Iot untuk mendapatkan data ketersediaan parkir. Untuk ini kita perlu menemukan alamat host Firebase dan kunci rahasia untuk otorisasi. Jika Anda sudah mengetahui cara menggunakan firebase dengan NodeMCU maka Anda dapat melanjutkan lagi, Anda harus terlebih dahulu belajar menggunakan Google Firebase Console dengan ESP8266 NodeMCU untuk mendapatkan alamat host dan kunci rahasia.
Komponen Diperlukan
- ESP8266 NodeMCU
- Sensor ultrasonik
- Motor Servo DC
- Sensor IR
- Layar LCD 16x2 i2c
- Pelompat
Diagram Sirkuit
Diagram sirkuit untuk sistem parkir kendaraan berbasis IoT ini diberikan di bawah ini. Ini melibatkan dua sensor IR, dua motor servo, satu sensor ultrasonik dan satu LCD 16x2.
Di sini ESP8266 akan mengontrol proses lengkap dan juga mengirimkan informasi ketersediaan parkir ke Google Firebase agar dapat dipantau dari mana saja di dunia melalui internet. Dua sensor IR digunakan di pintu masuk dan keluar untuk mendeteksi keberadaan mobil dan secara otomatis membuka atau menutup pintu. Sensor IR digunakan untuk mendeteksi objek apapun dengan mengirim dan menerima sinar IR, pelajari lebih lanjut tentang sensor IR di sini.
Dua servo akan bertindak sebagai gerbang masuk dan keluar dan mereka berputar untuk membuka atau menutup gerbang. Akhirnya sensor Ultrasonik digunakan untuk mendeteksi jika slot parkir tersedia atau ditempati dan mengirim data ke ESP8266 yang sesuai. Periksa video yang diberikan di akhir tutorial ini untuk memahami pekerjaan lengkap proyek ini.
Beginilah tampilan Prototipe sistem parkir Cerdas lengkap ini:
Pemrograman ESP8266 NodeMCU untuk Solusi Parkir Cerdas
Kode lengkap dengan video kerja diberikan di akhir tutorial ini, di sini kami menjelaskan program lengkap untuk memahami kerja proyek.
Untuk memprogram NodeMCU, cukup colokkan NodeMCU ke Komputer dengan Kabel Micro USB dan buka Arduino IDE. Perpustakaan diperlukan untuk Tampilan I2C dan Motor Servo. LCD akan menampilkan ketersediaan Ruang Parkir dan motor Servo akan digunakan untuk membuka dan menutup gerbang Masuk dan Keluar. The Wire.h perpustakaan akan digunakan untuk antarmuka LCD dalam protokol i2c. Pin untuk I2C di ESP8266 NodeMCU adalah D1 (SCL) dan D2 (SDA). Database di sini yang digunakan adalah Firebase jadi di sini kami juga menyertakan pustaka (FirebaseArduino.h) untuk hal yang sama.
#include
Kemudian sertakan kredensial firebase yang didapat dari Google Firebase. Ini akan mencakup nama Host yang berisi nama proyek Anda dan kunci rahasia. Untuk menemukan nilai-nilai ini, ikuti tutorial sebelumnya di Firebase.
#define FIREBASE_HOST "smart-parking-7f5b6.firebaseio.com" #define FIREBASE_AUTH "suAkUQ4wXRPW7nA0zJQVsx3H2LmeBDPGmfTMBHCT"
Sertakan Kredensial Wi-Fi seperti WiFi SSID dan Kata Sandi.
#define WIFI_SSID "CircuitDigest" #define WIFI_PASSWORD "circuitdigest101"
Inisialisasi LCD I2C dengan alamat perangkat (Ini dia 0x27) dan jenis LCD. Juga termasuk Motor Servo untuk gerbang masuk dan keluar.
LCD LiquidCrystal_I2C (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 tersebut maka itu akan bersinar jika tidak maka tidak akan bersinar.
pinMode (TRIG, OUTPUT); pinMode (ECHO, INPUT);
Dua pin D0 dan D4 dari NodeMCU digunakan untuk melakukan 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 sampai terhubung.
WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.print ("Menghubungkan ke"); Serial.print (WIFI_SSID); sementara (WiFi.status ()! = WL_CONNECTED) { Serial.print ("."); penundaan (500); }
Mulailah koneksi dengan Firebase dengan Host dan Kunci Rahasia sebagai kredensial.
Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH);
Mulailah i2c LCD 16x2 dan posisi kursor set pada 0 th baris 0 th kolom.
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 lalu baca pulsa yang diterima. Kemudian ubah menjadi 'cm'. Pelajari lebih lanjut tentang mengukur jarak menggunakan sensor ultrasonik di sini.
digitalWrite (TRIG, LOW); delayMicroseconds (2); digitalWrite (TRIG, HIGH); delayMicroseconds (10); digitalWrite (TRIG, LOW); durasi = pulseIn (ECHO, HIGH); jarak = (durasi / 2) / 29.1;
Baca pin sensor IR secara digital sebagai sensor entri dan periksa apakah tinggi. Jika sudah tinggi maka tambah jumlah entri dan cetak ke layar LCD 16x2 dan juga ke monitor serial.
int carEntry = digitalRead (carEnter); if (carEntry == HIGH) { countYes ++; Serial.print ("Mobil Masuk ="); Serial.println (countYa); lcd.setCursor (0, 1); lcd.print ("Mobil Masuk");
Pindahkan juga sudut motor servo untuk membuka pintu masuk. Ubah sudut sesuai kasus penggunaan Anda.
untuk (pos = 140; pos> = 45; pos - = 1) { myservos.write (pos); penundaan (5); } penundaan (2000); for (pos = 45; pos <= 140; pos + = 1) { // dalam langkah 1 derajat myservos.write (pos); penundaan (5); }
Dan kirimkan bacaan tersebut ke firebase dengan menggunakan fungsi pushString dari pustaka Firebase.
Firebase.pushString ("/ Status Parkir /", 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 ("Mobil Keluar ="); Serial.println (countYa); lcd.setCursor (0, 1); lcd.print ("Mobil Keluar"); untuk (pos1 = 140; pos1> = 45; pos1 - = 1) { myservo.write (pos1); penundaan (5); } penundaan (2000); untuk (pos1 = 45; pos1 <= 140; pos1 + = 1) { // dalam langkah 1 derajat myservo.write (pos1); penundaan (5); } Firebase.pushString ("/ Status Parkir /", fireAvailable); lcd.clear (); }
Periksa apakah mobil telah datang ke tempat parkir dan jika sudah tiba maka led glow yang memberi sinyal bahwa tempat itu sudah penuh.
if (jarak <6) { Serial.println ("Occupied"); digitalWrite (led, HIGH); }
Jika tidak, tunjukkan bahwa tempat itu tersedia.
if (jarak> 6) { Serial.println ("Tersedia"); digitalWrite (led, LOW); }
Hitung total ruang kosong di dalam tempat parkir dan simpan dalam string untuk mengirim data ke firebase.
Kosong = allSpace - countYes; Tersedia = String ("Tersedia =") + String (Kosong) + String ("/") + String (allSpace); fireAvailable = String ("Tersedia =") + String (Kosong) + String ("/") + String (allSpace); Cetak juga data ke LCD i2C. lcd.setCursor (0, 0); lcd.print (Tersedia);
Ini adalah bagaimana ketersediaan tempat parkir dapat dilacak secara online di Firebase seperti yang ditunjukkan pada cuplikan di bawah ini:
Ini menyelesaikan sistem parkir pintar lengkap menggunakan ESP8266 NodeMCU Module dan periferal yang berbeda. Anda juga dapat menggunakan sensor lain sebagai pengganti sensor Ultrasonik dan IR. Ada banyak aplikasi Sistem Parkir Cerdas dan berbagai produk dapat ditambahkan untuk membuatnya lebih pintar. Beri komentar di bawah jika Anda ragu atau kunjungi forum kami untuk mendapatkan dukungan lebih lanjut.