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

Hướng dẫn này sẽ chỉ bạn cách đo khoảng cách bằng cảm biến siêu âm và hiển thị kết quả trên màn hình OLED.

Phần cứng cần chuẩn bị

1×Raspberry Pi 5
1×SSD1306 I2C OLED Display 128x64
1×SSD1306 I2C OLED Display 128x32
1×Cảm Biến Siêu Âm
1×breadboard (Bo Mạch Thí Nghiệm)
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ề OLED và Cảm Biến Siêu Âm

Nếu bạn chưa quen thuộc với OLED và Cảm Biến Siêu Âm (bao gồm sơ đồ chân, hoạt động, lập trình, v.v.), các hướng dẫn sau có thể giúp bạn:

Sơ Đồ Kết Nối

Raspberry Pi cảm biến siêu âm oLED sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi - Cảm Biến Siêu Âm - OLED

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

  • Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích nào khác trên Raspberry Pi của mình.
  • Đảm bảo Raspberry Pi của bạn được kết nối cùng mạng local với PC.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu 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 của bạn với Raspberry Pi qua SSH bằ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
pip install Adafruit-SSD1306
  • Tạo file script Python ultrasonic_oled.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-oled import time import RPi.GPIO as GPIO import Adafruit_SSD1306 # GPIO pin configuration for the ultrasonic sensor TRIG_PIN = 16 ECHO_PIN = 20 # OLED display configuration OLED_RESET_PIN = None # Set to GPIO pin if your display has a reset pin OLED = Adafruit_SSD1306.SSD1306_128_64(rst=OLED_RESET_PIN) # Initialize the OLED display OLED.begin() # Clear the display OLED.clear() OLED.display() def measure_distance(): # Trigger the ultrasonic sensor GPIO.output(TRIG_PIN, True) time.sleep(0.00001) GPIO.output(TRIG_PIN, False) pulse_start, pulse_end = 0, 0 # Record the time when the ultrasonic wave is transmitted while GPIO.input(ECHO_PIN) == 0: pulse_start = time.time() # Record the time when the reflected wave is received while GPIO.input(ECHO_PIN) == 1: pulse_end = time.time() # Calculate the time duration of the pulse pulse_duration = pulse_end - pulse_start # Calculate the distance using the speed of sound (343 m/s) distance = pulse_duration * 17150 return round(distance, 2) try: # Set up GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(TRIG_PIN, GPIO.OUT) GPIO.setup(ECHO_PIN, GPIO.IN) while True: # Read distance from ultrasonic sensor distance = measure_distance() # Clear the display OLED.clear() # Display distance on OLED OLED.draw.text((0, 0), "Distance:", font=None, fill=255) OLED.draw.text((0, 16), "{} cm".format(distance), font=None, fill=255) # Display on OLED OLED.display() # Print distance to console (optional) print("Distance: {} cm".format(distance)) # Delay for readability time.sleep(1) except KeyboardInterrupt: print("Program terminated by user.") finally: GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 ultrasonic_oled.py

Script sẽ chạy trong vòng lặp vô hạn cho đến khi bạn nhấn Ctrl + C trong terminal.

  • Di chuyển tay bạn trước cảm biến.
  • Kiểm tra kết quả trên màn hình OLED và Serial Monitor.

※ Lưu ý:

Code này sẽ căn chỉnh văn bản trên màn hình OLED cả theo chiều ngang và chiều dọc. Để biết thêm thông tin, vui lòng tham khảo Cách căn giữa theo chiều dọc/ngang trên OLED.

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.