Arduino dan Sensor Ultrasonik Untuk Simulasi Ketersediaan Parkir - Balai Info|Candra Information Blog

Media Berbagi Ilmu dan Info|"Explore Your Curiosity"

Ads Here

Sabtu, 18 April 2020

Arduino dan Sensor Ultrasonik Untuk Simulasi Ketersediaan Parkir


SIMULASI SISTEM INFORMASI KETERSEDIAAN PARKIR DENGAN ARDUINO DAN SENSOR ULTRASONIC
Candra Puji Pangastuti1,
Fakultas Teknologi Industri Jurusan Teknik Elektro Universitas Gunadarma
jln KH. Noer Ali Kalimalang, Bekasi Jawa Barat, Indonesia

A.    Latar Belakang
Kebutuhan masyarakat terhadap lahan parkir membuat mall harus membangun lahan parkir yang sanggup menampung banyak kendaraan, tidak hanya luas, tempat parkir yang baik harus mampu membantu para pengguna lahan parkir agar lebih mudah untuk memarkirkan kendaraannya. Pusat Perbelanjaan seperti mall dengan lahan parkir cukup luas yang mampu menampung ratusan mobil, dimana setiap lantai nya terdapat kurang lebih 80 slot lahan parkir untuk mobil dan setiap slot memiliki kode slot yang berbeda. Contohnya “P1-A1-01”, P1 menandakan lantai 1, A1 menandakan unit A yang pertama dan 01 menandakan nomor dari unit. Pada kenyataannya banyak pengunjung sering mendapatkan kesulitan ketika mencari lahanbparkir yang masih kosong jika di dalam mall sudah terdapat banyak kendaraan yang parkir, akan sangat menghabiskan waktu dan tidak efisien jika pengunjung harus mengelilingi lahan demi lahan dan lantai demi lantai untuk mencari slot parkir yang masih kosong, hal ini dapat membuat para pengunjung kesulitan, kesal dan kecewa. Dengan memanfaatkan kemajuan ilmu pengetahuan dan teknologi, dan untuk menyelesaikan permasalahan yang telah dijabarkan diatas, maka dengan membuat aplikasi monitoring lahan parkir dengan memanfaatkan sensor ultrasonic, dan arduino uno merupakan salah satu solusi yang tepat untuk menanggulangi permasalahan yang ada. Sensor ultrasonic digunakan untuk mendeteksi ada atau tidaknya benda di lahan parkir. Dari situlah ide untuk membuat proyek ini datang, dimana penulis ingin mencoba dan mengetahui basic dari teknologi seperti tadi dengan membuat proyek sederhana dan mudah untuk dilakukan. Namun dikarenakan keterebatasan alat dan keadaan maka kali ini penulis hanya membuat simulasinya saja dengan menggunakan software Arduino Uno dan Proteus, tetapi bukan berarti simulasi ini tidak bisa diterapkan atau dibuat perancangan alat sesungguhnya. Adapun proyek dibuat untuk memenuhi tugas softskill Algoritma dan Pemrograman tentang penerapan dari sensor UltraSonic dengan Mikrokontroler  yang diberikan oleh dosen. Seluruh materi yang ada dalam proyek simulasi ini semuanya merupakan  hasil pencarian yang didapat dari beberapa sumber baik blog maupun paper yang ada di internet. Kemudian penulis mencobanya secara langsung. Proyek simulasi kali ini yaitu Sistem Informasi Ketersediaan Parkir yang ditampilkan melalui LCD 16x4 dengan Arduino Uno dan Sensor Ultrasonic HC SR04.



B.     Perumusan Masalah
Berdasarkan latar belakang diatas maka dapat dirumuskan permasalahan sebagai berikut :
  1. Bagaimana proses dari sensor ultrasonik bisa memberikan informasi berupa jarak ke benda atau objek tertentu ?
  2. Bagaimana membuat program untuk tiga sensor ultrasonik sekaligus pada arduino?

  1. Seberapa akurat informasi yang bisa dihasilkan dari sensor Ultrasonik ?
C.    Ruang Lingkup
Berdasarkan rumusan masalah diatas agar pembahasan dapat terfokus,  maka yang akan dibahas pada alat ini sebagai berikut :
  1. Proyek ini masih dilakukan sebatas simulasi sederhana dengan software, sehingga banyak permasalahan terjadi saat dilakukan perancangan alat sesungguhnya atau prototipe.
  2. HC-SR 04 sensor ultrasonik digunakan sebagai pendeteksi jarak benda didepan terhadapnya.
  3. Data yang ditampilkan hanyalah sebatas kondisi terisi atau kosong melalui LCD 16x4 dan hasil jarak yang ditampilkan melalui virtual terminal.

D.    Tujuan
Tujuan dari pembuatan simulasi ini adalah untuk mengetahui salah satu fungsi dari sensor ultrasonic sebagai pengukur jarak.
E.     Dasar Teori
      1.      Arduino Uno
Arduino merupakan modul atau kit mikrokontroler yang bersifat sumber terbuka baik piranti keras maupun piranti lunaknya. Pengertian awam, Arduino merupakan komputer kecil yang dapat di program untuk memproses masukan dan luaran antara modul itu sendiri dengan komponen eksternal yang dihubungkan dengannya. Arduino memiliki kompilator program tersendiri menggunakan bahasa C++ yang dilengkapi dengan program pustaka yang memudahkan para pengguna untuk merancang suatu program. Perangkat kerasnya terdiri dari pengendali yang memiliki desain sederhana dengan Atmel AVR sebagai pengolah utama dan pintu masukan serta luaran yang langsung terpasang pada papan utamanya.

Gambar 1 Arduino Uno
Beberapa macam jenis Arduino dijual dipasaran, salah satunya Arduino Uno dengan tipe terbaru yaitu Arduino Uno R3. Modul ini memiliki 14 pin masukan/luaran (yang mana 6 dapat digunakan sebagai PWM output), 6 analog input, keramik resonator 16MHz, koneksi USB, power jack, header ICSP, dan tombol reset, memuat semua yang dibutuhkan untuk mendukung mikrokontroler. Arduino R3 dapat dihubungkan langsung ke komputer dengan kabel USB atau dengan mencatu dengan catu daya.

Tabel 1 Spesifikasi Arduino Uno
         2.      HC-SR04

Gambar 2 Sensor Ultrasonik HCSR04
HC-SR04 modul ultrasonik merpakan sensor jarak non-kontak mempunyai fungsi penginderaan, yang dapat digunakan untuk mengukur jarak kisaran 2cm-400cm, dan akurasi kisaran hingga 2mm. Modul meliputi pemancar ultrasonik, penerima dan rangkaian kontrol. Prinsip kerja :
1.      Menggunakan IO trigger untuk memulai setidaknya 10us high level signal,
2.      Modul ini secara otomatis mengirimkan delapan 40 kHz dan mendeteksi apakah ada sinyal pulsa kembali.
3.      Jika ada sinyal kembali, sampai sampai tinggi, waktu output tinggi IO durasi waktu dari pengiriman ultrasonik untuk kembali. Uji distance = (high level time×velocity of sound (340M/S) /2
Kabel terhubung langsung sebagai berikut:
·         5V Supply
·         Trigger Pulse Input
·         Echo Pulse Output
·         0V Ground
      3.      LCD (Liquid Crystal Display) 16x4
LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal–alat elektronik seperti televisi, kalkulator, atau pun layar komputer. Pada postingan aplikasi LCD yang dugunakan ialah LCD dot matrik dengan jumlah karakter 4 x 16. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat. Adapun fitur yang disajikan dalam LCD ini adalah :
a)      Terdiri dari 16 karakter dan 4 baris.
b)      Mempunyai 192 karakter tersimpan.
c)      Terdapat karakter generator terprogram.
d)      Dapat dialamati dengan mode 4-bit dan 8-bit.
e)     Dilengkapi dengan back light.




Gambar 3 LCD16x4






Spesifikasi Kaki LCD 16 x 4
   Tabel 2 Spesifikasi kaki lcd 16x4






        





Pada aplikasi umumnya RW diberi logika rendah “0”. Bus data terdiri dari 4-bit atau 8-bit. Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high “1” dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus.
Saat jalur lainnya sudah siap, EN harus diset ke “0” dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high “1”. Ketika jalur RS berada dalam kondisi low “0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau “1”, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf “A” pada layar maka RS harus diset ke “1”. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high “1”, maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke “0”. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting.
Mode 8-bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data). Sedangkan mode 4 bit minimal hanya membutuhkan 7-bit (3 pin untuk kontrol, 4 pin untuk data). Bit RS digunakan untuk memilih apakah data atau instruksi yang akan ditransfer antara mikrokontroller dan LCD. Jika bit ini di set (RS = 1), maka byte pada posisi kursor LCD saat itu dapat dibaca atau ditulis. Jika bit ini di reset (RS = 0), merupakan instruksi yang dikirim ke LCD atau status eksekusi dari instruksi terakhir yang dibaca.






         4.      I2C (Inter Integrated Circuit)
Gambar 4 I2C
Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.
Pada umumnya I2C didesain untuk meminimalkan penggunaaan pin pada saat menggunakan display LCD 16x2. Normalnya sebuah LCD 16x2 akan membutuhkan sekurang-kurangnya 8 pin Arduino dan 1 buah potensiometer untuk dapat diaktifkan. Namun LCD tipe ini membuat pin yang dibutuhkan hanya 2 saja.
Spesifikasi:
·         I2C Address: 0x20
·         Backlight  (Blue with white char color)
·         Supply voltage: 5V
·         Size:82x35x18 mm
·         Weight:40 gram



Untuk mengubah address I2C, maka pindahkan jumper dengan mengacu pada tabel berikut (0 berarti jumper terhubung, 1 berarti jumper dilepas) :
Tabel 3 Spesifikasi alamat I2C



       










F.     Diagram Blok

Diagram blok sistem dirancang untuk dapat mengetahui prinsip kerja keseluruhan sistem ataupun rangkaian. Tujuan lainnya adalah memudahkan proses perancangan dan pembuatan pada masing-masing bagian, sehingga dapat dibuat sistem sesuai dengan yang diinginkan. Berikut adalah diagram blok alat yang ditunjukkan pada gambar 5.
  
1           Ketiga HC SR04 digunakan sebagai masukan untuk mengukur jarak benda didepan sensor.
2           Arduino uno sebagai kendali algoritma untuk mengolah data masukan.
3           Tegangan masukan untuk arduino sebesar 5VDC.
4           Sebelum ke kaki lcd pin – pin arduino menuju I2C terlebih dahulu.
5           Penggunaan I2C untuk menghemat penggunaan pin arduino untuk lcd.
6           LCD akan memberikan informasi “KOSONG” atau “TERISI” dari masing-masing sensor.

G. Skema Rangkaian


                                                 Gambar 6 Skema Rangkaian

H.    Prinsip Kerja Alat
Alat ini masih berbentuk prototipe untuk mengukur jarak aman kendaraan dengan sisi balakang dan sampingnya. Alat ini bekerja pada tegangan 5 VDC dari catu daya. Sensor ultrasonik yang dipadang pada belakang, kanan, kiri akan mendeteksi keberadaan benda didepannya. Kemudian data diolah arduino untuk mendapatkan jarak yang diinginkan. Data akan ditampilkan pada lcd 16x4 berupa angka dalam satuan sentimeter “cm” dan keterangan apakah kondisi parkiran dalam keadaan kosong atau terisi. Disini penulis menggunakan 3 buah sensor ultrasonic (Sensor A,B,C) yang disusun berdasarkan letak slot parkir, kemudian nanti akan ada 2 kondisi yaitu pada saat ada mobil/benda yang berada didepan sensor dengan ketentuan jarak >=100cm maka nantinya akan tampil di LCD 16x4 tulisan “Px : Kosong”, namun jika nanti hasil pembacaan jarak dengan sensor <30cm maka pada layar LCD 16x4 akan muncul tampilan “Px : Terisi”.
I.       Penjelasan Listing Program
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20, 16, 4);
/* 0x20 Merupakan default alamt i2c yang digunakan di Proteus. Jika anda menggunakan module i2c yang asli,
 ganti alamat i2c sesuai dengan alamt i2c yang anda dapatkan. */
#define trig1 7
#define echo1 6
#define trig2 5
#define echo2 4
#define trig3 3
#define echo3 2
/* Define merupakan pendefinisian output kepada pin yang di kehendaki misal pada baris program diatas mendefinisikan trig1 untuk pin 7, mendefinisikan echo1 untuk pin 6 */
void setup() {
  Serial.begin(9600);
/* Setting Kecepatan pengiriman serial monitor */
    pinMode(trig1, OUTPUT);
    pinMode(trig2, OUTPUT);
    pinMode(trig3, OUTPUT);
    pinMode(echo1, INPUT);
    pinMode(echo2, INPUT);
    pinMode(echo3, INPUT);
/* PinMode digunakan untuk menetukan pin-pin mana saja yang akan digunakan sebagai INPUT dan juga OUTPUT */

    lcd.begin();// LCD yang digunakan 16x4 
}
void loop() {
/* Semua Program yang ada di Void loop ini akan dibaca terus menerus atau berulang oleh arduino */
  long duration1, distance1;
  digitalWrite(trig1, LOW);
/* Memberikan kondisi HIGH berarti pin tersebut diberi tegangan sebesar 5v(3,3V), sedangkan jika LOW berarti 0v atau Ground */
  delayMicroseconds(2);
/* Memberikan waktu tunggu selama 0,2 detik */
  digitalWrite(trig1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig1, LOW);
  duration1 = pulseIn(echo1, HIGH);
  distance1 = (duration1/2) / 29.1;
  long duration2, distance2;
  digitalWrite(trig2, LOW);
  delayMicroseconds(2);
  digitalWrite(trig2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig2, LOW);
  duration2 = pulseIn(echo2, HIGH);
  distance2 = (duration2/2) / 29.1;
  long duration3, distance3;
   digitalWrite(trig3, LOW);
  delayMicroseconds(2);
  digitalWrite(trig3, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig3, LOW);
  duration3 = pulseIn(echo3, HIGH);
  distance3 = (duration3/2) / 29.1;
        lcd.setCursor(0, 0);
        lcd.print("Informasi Parkir");

      if (distance1 >= 100) {
/* Suatu perintah kondisi dimana ketika kondisi yang diberikan pada if ini terpenuhi maka Arduino akan mengeksekusi program yang ada didalamnya */
        lcd.setCursor(0, 1);
        lcd.print("P A : Kosong");
    
      } else if (distance1 <30) {
/* else if merupakan perintah jika kondisi if tidak terpenuhi maka program akan mencari alternatif atau mengecek kondisi yang lainya untuk di eksekusi */
        lcd.setCursor(0, 1);
        lcd.print("P A : Terisi");
      }
      if (distance2 >= 100) {
        lcd.setCursor(0, 2);
        lcd.print("P B : Kosong");
      } else if (distance2 <30) {
        lcd.setCursor(0, 2);
        lcd.print("P B : Terisi");
      }
      if (distance3 >= 100) {
        lcd.setCursor(0, 3);
        lcd.print("P C : Kosong");
      } else if (distance3 <30) {
        lcd.setCursor(0, 3);
        lcd.print("P C : Terisi");
      }
      Serial.print("Jarak Sensor A :");
/* Digunakan untuk menampilkan hasil output ke layar LCD 16x4 */
      Serial.print(distance1);
      Serial.println("cm");
      Serial.print("Jarak Sensor B :");
      Serial.print(distance2);
      Serial.println("cm");
      Serial.print("Jarak Sensor C :");
      Serial.print(distance3);
      Serial.println("cm");
      Serial.println("");
      delay(100);
}


J.      Hasil Simulasi Rangkaian Alat
Tabel 4 Hasil Uji Simulasi
Kesimpulan :
  1. Proses untuk mengukur jarak saat sensor mengeluarkan sinyal ultrasonik hingga akhirnya mengenai benda didepannya. Sinyal akan kembali dan diterima sensor. Setelah data didapatkan akan diolah arduino dengan dimasukkan ke persamaan untuk menghasilkan jarak dalam sentimeter.
  2. Hasil simulasi yang dilakukan sesuai dengan yang diharapkan.

  
DAFTAR PUSTAKA





Tidak ada komentar:

Posting Komentar