Anda di halaman 1dari 5

Sensor HC- SRF05 adalah sebuah sensor ultrasonik yang digunakan untuk

SRF05 mengukur jarak dengan tingkat akurasi yang tinggi. Sensor ini bekerja
dengan mengirimkan gelombang ultrasonik dan kemudian mendeteksi
pantulannya untuk menghitung jarak dari objek terdekat. Dalam konteks
Internet of Things (IoT) dan data science, SRF05 dapat digunakan
sebagai salah satu komponen untuk mengumpulkan data yang relevan,
seperti jarak antara objek atau penghalang dengan sensor. Berikut adalah
beberapa cara bagaimana SRF05 dapat digunakan dalam IoT dan data
science:
1. Pemantauan Jarak: SRF05 dapat digunakan untuk memantau jarak
antara dua objek atau pergerakan suatu objek. Misalnya, dalam
aplikasi pengukuran kepadatan lalu lintas, sensor SRF05 dapat
dipasang di berbagai titik untuk memantau jarak antara kendaraan.
2. Deteksi Objek: Dengan menggunakan sensor SRF05, Anda dapat
mendeteksi keberadaan objek dalam suatu area. Hal ini dapat
digunakan dalam sistem keamanan untuk mendeteksi intrusi atau
dalam aplikasi industri untuk mendeteksi keberadaan objek di sekitar
mesin atau peralatan.
3. Pengukuran Tinggi: Selain pengukuran jarak horizontal, SRF05 juga
dapat digunakan untuk mengukur tinggi suatu objek atau permukaan
dari tanah. Misalnya, dalam aplikasi pertanian pintar, sensor ini dapat
digunakan untuk memantau tinggi tanaman atau tingkat air di suatu
lahan.
4. Pemetaan: Dengan menggunakan beberapa sensor SRF05 yang
dipasang pada platform yang bergerak, seperti robot atau kendaraan
otonom, Anda dapat membuat peta 3D dari lingkungan sekitar. Data
jarak yang dikumpulkan dari setiap sensor dapat digunakan untuk
membangun pemetaan yang akurat.
5. Prediksi dan Analisis: Data yang dikumpulkan dari sensor SRF05
dapat dianalisis menggunakan teknik data science untuk
mendapatkan wawasan yang berharga. Misalnya, dapat melakukan
analisis tren untuk memprediksi pergerakan atau perilaku objek
berdasarkan data jarak yang terus-menerus diukur oleh sensor.
6. Optimisasi Proses: Dengan memahami pola dari data yang
dikumpulkan oleh sensor SRF05, kita dapat mengoptimalkan proses
atau sistem yang sedang diamati. Misalnya, dalam aplikasi
manufaktur, Anda dapat menggunakan data jarak untuk mengatur
alur produksi atau pemeliharaan mesin.
Dalam rangkaian IoT, data yang dikumpulkan oleh sensor SRF05
biasanya akan dikirimkan ke suatu pusat pengolahan data
menggunakan protokol komunikasi seperti MQTT atau HTTP. Data ini
kemudian dapat disimpan, diolah, dan dianalisis menggunakan berbagai
algoritma dan teknik data science untuk mendapatkan wawasan yang
berguna bagi pengguna atau sistem yang terkait. Dengan demikian,
SRF05 berperan sebagai komponen penting dalam ekosistem IoT untuk
pengumpulan data yang akurat dan relevan.
Gambar 1. Diagram Pin Sensor Ultrasonik HC-SR05

Sensor HC-SRF05 memiliki 4 pin, antara lain VCC (Voltage Common


Collector), GND (GROUND), Trig , dan Echo. pin VCC (Voltage
Common Collector) dan GND (Ground) pada sensor harus dihubungkan
ke pin 5V dan GND pada papan Arduino. Hal ini diperlukan untuk
menyediakan daya (VCC) dan membuat koneksi ground yang
diperlukan (GND) untuk sensor. Pin Trig dan Echo terhubung ke pin
digital manapun pada raspberry Pi yang akan digunakan untuk
mengontrol sensor.

Pin Trig, Raspberry Pi mengirimkan sinyal untuk memicu pemancaran


gelombang ultrasonik dari pemancar sensor. Proses pengukuran jarak
dengan mengirimkan gelombang ultrasonik ke objek yang akan diukur
jaraknya. Kemudian Raspberry Pi mendengarkan atau menangkap
sinyal yang dipantulkan kembali oleh objek setelah gelombang
ultrasonik dipancarkan. Sinyal yang dipantulkan ini digunakan untuk
mengukur waktu yang diperlukan gelombang ultrasonik untuk pergi
dan kembali dari objek, yang kemudian digunakan untuk menghitung
jarak ke objek tersebut.

Gambar 2. Rangkaian Sensor HC-SRF05 dengan pin Rapsberry pi


Alat dan  1 Buah push button (tactile switch)
Bahan  1 Buah LED 5mm atau LED 3mm
 2 Buah Resistor 330Ω - 470 Ω
 2 Buah Kabel Jumper
 1 Buah Project board
 1 Buah Sensor HC-SRF04
 1 Buah Raspberry Pi 4

Rangkaian
Kerja

Keterangan :
 PIN 7 (GPIO4) sebagai TRIGGER
 PIN 11 (GPIO17) sebagai ECHO
Kode Program File SRF05.py
import RPi.GPIO as GPIO
import time

# A very simple Python interface to SFR05 module (probably will work with
SFR04 too but I have no tried).
# Just call measure() method and it will return you distance in centimeters or
None.
#
# IMPORTANT NOTE: in order to read data from the sensor we need to
measure width of an echo pulse
# and we need to be accurate enough. This obviously is not going to work well
if your CPU is heavily loaded.
# Plus, Python with its GIL is just not the best environment for these things if
you have other threads running.
# But make no mistake - doing that in C is not a silver bullet either even if done
properly with interrupts etc.
# Sure, C version would have better accuracy but if you really want to avoid
interference with other threads/processes,
# you should use a sensor that times echo iself and then gives you result via
digital interface (like I2C or SPI).
#
# The document I am referring throught the code is https://www.robot-
electronics.co.uk/htm/srf05tech.htm
#
class SRF05:
def __init__(self, trigger_pin, echo_pin):
self.trigger_pin = trigger_pin
self.echo_pin = echo_pin

self.trigger_time = 0
GPIO.setup(self.echo_pin, GPIO.IN)
GPIO.setup(self.trigger_pin, GPIO.OUT)

def measure(self):
now = self.time_us()

# "The SRF05 can be triggered as fast as every 50mS, or 20 times each


second.
# You should wait 50ms before the next trigger, even if the SRF05 detects
a close object and the echo pulse is shorter.
# This is to ensure the ultrasonic "beep" has faded away and will not
cause a false echo on the next ranging."
pause = 50000 - (now - self.trigger_time)
if pause > 0:
self.sleep_us(pause)

self.trigger()

self.trigger_time = self.time_us()

# "The SRF05 will send out an 8 cycle burst of ultrasound at 40khz and
raise its echo line high (or trigger line in mode 2)"
# Wait no longer than 30ms
if GPIO.wait_for_edge(self.echo_pin, GPIO.RISING, timeout=30) is None:
return None

start = self.time_us()

# Measure pulse duration, again do not wait more than 30ms


# "If nothing is detected then the SRF05 will lower its echo line anyway
after about 30mS."
if GPIO.wait_for_edge(self.echo_pin, GPIO.FALLING, timeout=30) is None:
return None

end = self.time_us()

width = end - start

# ...and by that logic we should not have real measurement with pulse
longer than 30ms anyway
if width > 30000:
return None

# "If the width of the pulse is measured in uS, then dividing by 58 will give
you the distance in cm,
# or dividing by 148 will give the distance in inches. uS/58=cm or
uS/148=inches."
return int(width / 58)

def trigger(self):
# "You only need to supply a short 10uS pulse to the trigger input to start
the ranging."
GPIO.output(self.trigger_pin, 1)
self.sleep_us(10)
GPIO.output(self.trigger_pin, 0)
# Return time in microseconds
def time_us(self):
return int(time.time() * 1000000)

def sleep_us(self, us):


time.sleep(us / 1000000.0)

File jarak.py

import RPi.GPIO as GPIO


import SRF05
import time

GPIO.setmode(GPIO.BCM)

sensor = SRF05.SRF05(trigger_pin = 15, echo_pin = 14)


while True:
print(sensor.measure())
time.sleep(1)

Kesimpulan

Anda mungkin juga menyukai