FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

Gamit ang HC-SR04 kasama ang Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

Ang HC-SR04 ultrasonic sensor ay isang sikat at matipid na tool para sa pagsukat ng distansya sa iba't ibang DIY at propesyonal na proyekto. Kapag ipinares sa isang Raspberry Pi, nagbubukas ito ng mundo ng mga posibilidad para sa paglikha ng mga application tulad ng obstacle detection, pagsukat ng level, at maging ang mga interactive na installation. Ang blog post na ito ay gagabay sa iyo sa proseso ng pag-set up at paggamit ng HC-SR04 sensor sa iyong Raspberry Pi.

Ano ang HC-SR04 Ultrasonic Sensor?

Ang HC-SR04 ay isang ultrasonic sensor module na sumusukat ng distansya sa pamamagitan ng paglalabas ng mga ultrasonic wave at pag-calculate ng oras na kinakailangan para bumalik ang echo. Gumagana ito sa 5V at kilala sa katumpakan at pagiging maaasahan nito sa maikli hanggang katamtamang distansya, karaniwang nasa pagitan ng 2 cm at 400 cm.

Mga Component na Kakailanganin Mo

  • Raspberry Pi (anumang model na may GPIO pins, gaya ng Raspberry Pi 4)
  • HC-SR04 Ultrasonic Sensor
  • Jumper Wires
  • Breadboard
  • 10kΩ, 20kΩ Resistor (para sa voltage division)
  • Opsyonal: LED at resistor para sa visual feedback

Pag-wire ng HC-SR04 sa Raspberry Pi

Ang pagkonekta ng HC-SR04 sa Raspberry Pi ay nangangailangan ng maingat na paghawak, lalo na't ang mga GPIO pin ng Raspberry Pi ay gumagana sa 3.3V habang ang HC-SR04 naman ay gumagana sa 5V. Upang maiwasan ang pagkasira ng iyong Pi, mahalagang gumamit ng voltage divider sa Echo pin.

Mga Koneksyon ng Pin

  • VCC ng HC-SR04 sa 5V pin sa Raspberry Pi
  • GND ng HC-SR04 sa GND sa Raspberry Pi
  • Trig pin ng HC-SR04 sa isang GPIO pin sa Raspberry Pi (halimbawa, GPIO23)
  • Echo pin ng HC-SR04 sa Raspberry Pi sa pamamagitan ng voltage divider

Pag-set Up ng Voltage Divider

Para ligtas na maikonekta ang Echo pin sa Raspberry Pi, gumamit ng voltage divider na may 10kΩ resistor at 20kΩ resistor. Ibababa nito ang 5V signal sa humigit-kumulang 3.3V.


# Halimbawang schematic para sa voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

Pag-install ng mga Kinakailangang Library

Bago isulat ang code, tiyaking updated ang iyong Raspberry Pi at mayroon itong mga kinakailangang library.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

Pagsulat ng Python Script

Nasa ibaba ang isang simpleng Python script para makipag-ugnayan sa HC-SR04 sensor. Ang script na ito ay nagpapadala ng trigger pulse, naghihintay para sa echo, at kinakalkula ang distansya batay sa oras na kinailangan para bumalik ang echo.


import RPi.GPIO as GPIO
import time

# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# Itakda ang mga GPIO Pin
TRIG = 23
ECHO = 24

print("Kasalukuyang Sinusukat ang Distansya")

# Itakda ang direksyon ng GPIO (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Itakda ang TRIG sa LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Magpadala ng 10us pulse sa TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # I-save ang StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # I-save ang Oras ng Pagdating
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Pagkakaiba ng oras sa pagitan ng simula at pagdating
    time_elapsed = stop_time - start_time
    # I-multiply sa bilis ng tunog (34300 cm/s)
    # at i-divide sa 2, dahil pabalik-balik ito
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Nasukat na Distansya = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Itinigil ng User ang pagsukat")
        GPIO.cleanup()

Pagpapatakbo ng Script

Siguraduhing tama ang iyong wiring at pagkatapos ay patakbuhin ang script gamit ang Python 3:


python3 hc-sr04.py

Dapat mong makita ang nasukat na distansya sa sentimetro na naka-print sa console. Kung gumagamit ka ng LED para sa visual feedback, maaari mong baguhin ang script para umilaw ang LED kapag ang isang bagay ay nasa loob ng isang partikular na range.

Pagpapahusay sa Iyong Proyekto

Kapag gumagana na ang pangunahing pagsukat ng distansya, isaalang-alang ang pagdaragdag ng mga karagdagang feature:

  • LED Indicators: Gumamit ng mga LED para ipakita ang iba't ibang range ng distansya.
  • LCD Display: Ipakita ang distansya sa isang LCD screen.
  • Data Logging: I-record ang mga sukat ng distansya sa paglipas ng panahon para sa pagsusuri.
  • Alert Systems: Mag-trigger ng mga alarm o notification kapag masyadong malapit ang mga bagay.

Pag-troubleshoot ng mga Karaniwang Isyu

Ang pagtatrabaho sa mga sensor at GPIO ay minsan mapanghamon. Narito ang ilang karaniwang isyu at kung paano ang mga ito tutugunan:

  • Maling Wiring: I-double check ang lahat ng koneksyon, lalo na ang voltage divider sa Echo pin.
  • Maingay na Sukat (Noisy Measurements): Siguraduhing stable ang iyong setup at isaalang-alang ang pagdaragdag ng mga capacitor para ma-filter ang ingay.
  • GPIO Conflicts: Siguraduhing walang ibang script o serbisyo ang gumagamit ng parehong mga GPIO pin.
  • Permissions: Patakbuhin ang iyong mga script nang may tamang pahintulot, gamit ang sudo kung kinakailangan.

Konklusyon

Ang HC-SR04 ultrasonic sensor ay isang versatile at maaasahang component na, kapag pinagsama sa Raspberry Pi, ay maaaring magsilbi sa maraming application mula sa simpleng pagsukat ng distansya hanggang sa mga kumplikadong automation system. Sa pagsunod sa mga hakbang na nakabalangkas sa gabay na ito, dapat ay kaya mo nang i-set up at magsimulang mag-eksperimento sa HC-SR04 sa iyong Raspberry Pi. Maligayang pag-aayos!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

Mag -iwan ng komento