Raspberry Pi Cảm Biến Siêu Âm Relay

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Raspberry Pi và cảm biến siêu âm để điều khiển relay. Cụ thể:

Bằng cách kết nối relay với bóng đèn, dải LED, động cơ, hoặc thiết bị chấp hành..., chúng ta có thể sử dụng Raspberry Pi và cảm biến siêu âm để điều khiển bóng đèn, dải LED, động cơ, hoặc thiết bị chấp hành...

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×Cảm Biến Siêu Âm
1×Relay
1×(Tùy chọn) Khóa Điện Từ
1×Adapter Nguồn 12V
1×Đầu Cắm Nguồn DC
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Relay và Cảm Biến Siêu Âm

Nếu bạn chưa quen thuộc với relay và cảm biến siêu âm (sơ đồ chân, cách hoạt động, cách lập trình...), hãy xem các hướng dẫn sau:

Sơ Đồ Đấu Nối

sơ đồ đấu nối Raspberry Pi cảm biến siêu Âm rơ le

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi

Các Bước Thực Hiện

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích Raspberry Pi khác trên Pi của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
  • Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, hãy xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC với Raspberry Pi qua SSH sử dụng SSH client tích hợp sẵn trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Tạo file script Python ultrasonic_sensor_relay.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-ultrasonic-sensor-relay import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pins for the ultrasonic sensor TRIG_PIN = 23 ECHO_PIN = 24 # Define the GPIO pin for the relay RELAY_PIN = 18 # Set up the ultrasonic sensor pins GPIO.setup(TRIG_PIN, GPIO.OUT) GPIO.setup(ECHO_PIN, GPIO.IN) # Set up the relay pin as an output GPIO.setup(RELAY_PIN, GPIO.OUT) # Define the distance threshold in cm (adjust as needed) DISTANCE_THRESHOLD = 20 # 20 cm def get_distance(): # Send a trigger signal GPIO.output(TRIG_PIN, GPIO.HIGH) time.sleep(0.00001) GPIO.output(TRIG_PIN, GPIO.LOW) # Wait for the echo response pulse_start = time.time() pulse_end = time.time() while GPIO.input(ECHO_PIN) == GPIO.LOW: pulse_start = time.time() while GPIO.input(ECHO_PIN) == GPIO.HIGH: pulse_end = time.time() # Calculate the distance in centimeters pulse_duration = pulse_end - pulse_start speed_of_sound = 34300 # Speed of sound in cm/s distance = (pulse_duration * speed_of_sound) / 2 return distance try: while True: # Get the distance from the ultrasonic sensor distance = get_distance() print("Distance:", distance, "cm") # If the distance is below the threshold, turn on the relay if distance < DISTANCE_THRESHOLD: print("Distance below threshold. Turning on the relay.") GPIO.output(RELAY_PIN, GPIO.HIGH) else: print("Distance above threshold. Turning off the relay.") GPIO.output(RELAY_PIN, GPIO.LOW) # Add a small delay to avoid excessive readings time.sleep((0.1) except KeyboardInterrupt: # Clean up the GPIO on exiting the script GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 ultrasonic_sensor_relay.py
  • Di chuyển tay hoặc một vật thể từ từ từ khoảng cách xa về phía cảm biến siêu âm.
  • Kiểm tra kết quả hiển thị trên terminal, sẽ hiển thị khoảng cách được đo bởi cảm biến siêu âm.
  • Kiểm tra trạng thái relay:
    • Khi bạn tiến gần cảm biến và khoảng cách nhỏ hơn ngưỡng đã định, relay sẽ bật.
    • Khi bạn di chuyển ra xa cảm biến và khoảng cách vượt quá ngưỡng, relay sẽ tắt.

    Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

    Giải Thích Code

    Hãy xem phần giải thích từng dòng được chứa trong các comment của source code!

    ※ Lưu ý:

    Code ở trên được thiết kế cho mục đích giáo dục. Cảm biến siêu âm rất nhạy cảm với nhiễu. Nếu bạn dự định sử dụng cảm biến siêu âm trong ứng dụng thực tế, cần thiết phải lọc nhiễu cho cảm biến siêu âm. Để biết thêm thông tin về cách lọc nhiễu từ phép đo khoảng cách của cảm biến siêu âm, vui lòng tham khảo hướng dẫn này.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.