ใช้ HC-SR04 กับ Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

เซ็นเซอร์อัลตราโซนิก HC-SR04 เป็นเครื่องมือที่ได้รับความนิยมและคุ้มค่าสำหรับการวัดระยะทางในโครงการ DIY และมืออาชีพต่างๆ เมื่อจับคู่กับ Raspberry Pi จะเปิดโลกแห่งความเป็นไปได้ในการสร้างแอพพลิเคชั่นเช่นการตรวจจับสิ่งกีดขวางการวัดระดับและแม้แต่การติดตั้งแบบโต้ตอบ โพสต์บล็อกนี้จะแนะนำคุณเกี่ยวกับกระบวนการตั้งค่าและการใช้เซ็นเซอร์ HC-SR04 กับ Raspberry Pi ของคุณ

เซ็นเซอร์อัลตราโซนิก HC-SR04 คืออะไร?

HC-SR04 เป็นโมดูลเซ็นเซอร์อัลตราโซนิกที่วัดระยะทางโดยการเปล่งคลื่นอัลตราโซนิกและคำนวณเวลาที่เสียงสะท้อนกลับมา มันทำงานที่ 5V และเป็นที่รู้จักกันดีในเรื่องความแม่นยำและความน่าเชื่อถือในการวัดระยะทางสั้นถึงปานกลางโดยทั่วไปจะอยู่ระหว่าง 2 ซม. ถึง 400 ซม.

ส่วนประกอบที่คุณต้องการ

  • Raspberry Pi (ทุกรุ่นที่มีหมุด GPIO เช่น Raspberry Pi 4)
  • HC-SR04 เซ็นเซอร์อัลตราโซนิก
  • สายจัมเปอร์
  • กระดาน
  • ตัวต้านทาน10kΩ (สำหรับการแบ่งแรงดันไฟฟ้า)
  • ตัวเลือก: LED และตัวต้านทานสำหรับการตอบกลับด้วยภาพ

สายไฟ HC-SR04 ไปยัง Raspberry Pi

การเชื่อมต่อ HC-SR04 กับ Raspberry Pi ต้องใช้การจัดการอย่างระมัดระวังโดยเฉพาะอย่างยิ่งเนื่องจากหมุด Raspberry Pi GPIO ทำงานที่ 3.3V และ HC-SR04 ทำงานที่ 5V เพื่อป้องกันความเสียหายต่อ PI ของคุณจำเป็นต้องใช้ตัวแบ่งแรงดันไฟฟ้าบนพิน echo

การเชื่อมต่อพิน

  • VCC ของ HC-SR04 ถึง 5V พินบนราสเบอร์รี่ pi
  • gnd ของ HC-SR04 ถึง gnd บนราสเบอร์รี่ pi
  • หนุน PIN ของ HC-SR04 เป็นก พิน GPIO บน Raspberry Pi (เช่น GPIO23)
  • ก้อง PIN ของ HC-SR04 ไปยัง Raspberry Pi ผ่านตัวแบ่งแรงดันไฟฟ้า

การตั้งค่าตัวแบ่งแรงดันไฟฟ้า

ในการเชื่อมต่อพิน echo กับ Raspberry Pi อย่างปลอดภัยให้ใช้ตัวแบ่งแรงดันไฟฟ้าที่มีตัวต้านทาน10kΩและตัวต้านทาน20kΩ สิ่งนี้จะทำให้สัญญาณ 5V ลงไปที่ประมาณ 3.3V


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

การติดตั้งไลบรารีที่จำเป็น

ก่อนที่จะเขียนรหัสตรวจสอบให้แน่ใจว่า Raspberry Pi ของคุณทันสมัยและติดตั้งไลบรารีที่จำเป็น


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

การเขียนสคริปต์ Python

ด้านล่างเป็นสคริปต์ Python อย่างง่ายในการเชื่อมต่อกับเซ็นเซอร์ HC-SR04 สคริปต์นี้ส่งพัลส์ทริกเกอร์รอเสียงก้องและคำนวณระยะทางตามเวลาที่ Echo กลับมา


import RPi.GPIO as GPIO
import time

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

# Set GPIO Pins
TRIG = 23
ECHO = 24

print("Distance Measurement In Progress")

# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Set TRIG to LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Send 10us pulse to TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

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

    # Save StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Save Time of Arrival
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Time difference between start and arrival
    time_elapsed = stop_time - start_time
    # Multiply with speed of sound (34300 cm/s)
    # and divide by 2, because there and back
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

เรียกใช้สคริปต์

ตรวจสอบให้แน่ใจว่าการเดินสายของคุณถูกต้องแล้วเรียกใช้สคริปต์โดยใช้ Python 3:


python3 hc-sr04.py

คุณควรเห็นระยะทางที่วัดได้ในเซนติเมตรที่พิมพ์ไปยังคอนโซล หากคุณใช้ LED สำหรับการตอบรับด้วยภาพคุณสามารถแก้ไขสคริปต์เพื่อจุดไฟ LED เมื่อวัตถุอยู่ในช่วงที่กำหนด

เพิ่มโครงการของคุณ

เมื่อคุณมีการวัดระยะทางพื้นฐานแล้วให้พิจารณาการรวมคุณสมบัติเพิ่มเติม:

  • ตัวบ่งชี้ LED: ใช้ LED เพื่อระบุช่วงระยะทางที่แตกต่างกัน
  • จอแสดงผล LCD: แสดงระยะทางบนหน้าจอ LCD
  • การบันทึกข้อมูล: บันทึกการวัดระยะทางเมื่อเวลาผ่านไปสำหรับการวิเคราะห์
  • ระบบแจ้งเตือน: ทริกเกอร์สัญญาณเตือนหรือการแจ้งเตือนเมื่อวัตถุอยู่ใกล้เกินไป

การแก้ไขปัญหาปัญหาทั่วไป

การทำงานกับเซ็นเซอร์และ GPIO บางครั้งอาจเป็นเรื่องที่ท้าทาย นี่คือปัญหาทั่วไปและวิธีการแก้ไข:

  • การเดินสายไม่ถูกต้อง: ตรวจสอบการเชื่อมต่อทั้งหมดโดยเฉพาะตัวแบ่งแรงดันไฟฟ้าบนพิน echo
  • การวัดที่มีเสียงดัง: ตรวจสอบให้แน่ใจว่าการตั้งค่าของคุณมีความเสถียรและพิจารณาเพิ่มตัวเก็บประจุเพื่อกรองเสียงรบกวน
  • GPIO ความขัดแย้ง: ตรวจสอบให้แน่ใจว่าไม่มีสคริปต์หรือบริการอื่น ๆ ที่ใช้พิน GPIO เดียวกัน
  • การอนุญาต: เรียกใช้สคริปต์ของคุณด้วยสิทธิ์ที่เหมาะสมโดยใช้ sudo หากจำเป็น

บทสรุป

เซ็นเซอร์อัลตราโซนิก HC-SR04 เป็นส่วนประกอบที่หลากหลายและเชื่อถือได้ซึ่งเมื่อรวมกับ Raspberry Pi สามารถให้บริการแอพพลิเคชั่นมากมายตั้งแต่การวัดระยะทางที่เรียบง่ายไปจนถึงระบบอัตโนมัติที่ซับซ้อน โดยทำตามขั้นตอนที่ระบุไว้ในคู่มือนี้คุณควรตั้งค่าและเริ่มทดลองกับ HC-SR04 บน Raspberry Pi ของคุณ มีความสุขในการซ่อมแซม!

แสดงความคิดเห็น

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.