membuat visitor detector dengan arduino + ultrasonic sensor

aduh, driver motor buat mobil RC kemaren lupa saya lepas :p

Karena pesanan sensor ultrasonicnya sudah datang tapi platform robot 2WD-nya belum jadinya pengen bikin experiment kecil-kecilan dengan alat ini. Sensor ultrasonic yang di pakai kali ini adalah US-100 (awalnya saya mengira ini yang namanya HC-SR04). US-100 ini sedikit beda dengan HC-SR04, dia punya fitur khusus yang tidak ada di HC-SR04 (pakai serial mode, di arduino harus pakai pin rx dan tx). Entah kenapa, saya malah enggan pakai fitur khususnya, saya pengennya untuk kali ini di jadikan seperti sensor ultrasonic biasa. Untuk TIDAK menggunakan fitur spesial dari US-100 ini kita perlu melepas shunt di US-100 (sejujurnya saya tidak tahu bahasa indonesia dari shunt ini, jadi kita pakai istilah inggrisnya saja untuk benda di bawah ini).

lepas benda yang seperti penutup yang di lingkar merah
Fitur spesial dari ini US-100 ini adalah, kita tahu bahwa cepat rambatnya gelombang pada udara itu di pengaruhi oleh rapat massa udara (saya lupa berbanding terbalik atau berbanding lurus) dan rapat massa udara di pengaruhi suhu, itu artinya akan terjadi pembiasan pengukuran jarak oleh sensor ini di karenakan suhu, tapi di US-100 ini di lengkapi dengan sensor suhu sehingga dari sensornya sendiri sudah di perhitungkan faktor suhu itu dan dari sensor ke arduino, yang di transfer adalah hasil perhitungan jaraknya, berbeda dengan HC-SR04 yang di berikan adalah lama waktunya dari gelombang di kirim dari sensor sampai di tangkap lagi oleh sensor karena gelombang tadi terpantulkan oleh benda yang di tabraknya.

Ok, cukup dengan pengenalan sensornya. Kali ini saya akan membuat visitor detector (pendeteksi orang keluar/masuk) dengan arduino sebagai otaknya. Untuk source code arduinonya bisa di akses di sini, di akun github saya.

untuk wiring US-100 dan arduinonya sebagai berikut :
US-100 | arduino
-------------------------
vcc    - pin 5v
trig    - pin 8
echo  - pin 9
2 gnd - gnd

Dan yang akan di jadikan "alarm" adalah lampu led biasa karena keterbatasan alat yang tersedia, led ini kita hubungkan dengan pin 7 arduino.

Mari kita bahas cara kerja alat ini, pertama-tama saat arduino di nyalakan dia akan menghitung rata-rata lama waktu kembalinya gelombang yang terpantulkan.
if (!(init_counter)) {
    initiate(TRIGGER);
    container = pulseIn(ECHO, HIGH);
    total_signal = total_signal + container;
    i++;
    if (i == TRY)
      init_counter = ON;
  } else {
    if (!(calc_counter)) {
      average_signal = total_signal / TRY;
      calc_counter = ON;
    }

Kemudian setelah mengetahui rata-ratanya, alarm akan terpicu kapan saja ketika lama waktunya gelombang kembali lebih cepat daripada nilai rata-rata yang telah di ukur oleh alat ini sebelumnya DIKURANGI toleransi penyimpangan rata-rata yang wajar (serius, sulit sekali saya membahasakan yang benar dan simple untuk bagian ini...intinya seperti standar deviasi dari lama waktu yang di rata-ratakan).
    initiate(TRIGGER);
    container = pulseIn(ECHO, HIGH);
    if (container < average_signal - TOLERANCE) {
      Serial.println("yo masuk");
      alarm(ALARM);
      delay(500); //remember to delay, to give a chance for ultrasonic wave
    }
Di situ ada delay sebelum kembali ke awal mula loop abadi arduino untuk mensinkronkan antara procesor arduino dan pembacaan sensor ultrasonicnya (kalo tidak ada delay itu, secara acak arduino akan membaca sensor ultrasonicnya NULL atau kosong).
lampu lednya redup jadi tidak keliatan kalo lagi nyala


 
di taruh seadanya aja




Kalau alatnya lebih lengkap, mungkin lampu led bisa di gantikan dengan alarm yang asli dan sensor ultrasonicnya bisa di tempel atau di tempatkan di tempat yang seharusnya (dekat pintu atau semacamnya). Cukup sekian, maaf kalau masih banyak sekali kekurangan dan saya sendiri juga menyadari itu, anyway happy new year.

Komentar