Raspberry Pi Cảm Biến Cảm Ứng Relay

Hướng dẫn này chỉ bạn cách sử dụng Raspberry Pi và cảm biến cảm ứng để điều khiển relay. Bằng cách kết nối relay với khóa điện từ, bóng đèn, LED strip, động cơ, hoặc các thiết bị chấp hành khác..., chúng ta có thể sử dụng cảm biến cảm ứng để điều khiển chúng. Chúng ta sẽ học hai ứng dụng khác nhau:

Ứng dụng 1 - Trạng thái relay được đồng bộ với trạng thái cảm biến cảm ứng. Chi tiết:

Ứng dụng 2 - Trạng thái relay được chuyển đổi mỗi khi cảm biến cảm ứng được chạm vào. Cụ thể:

Phần Cứng Cần Thiết

1×Raspberry Pi 5
1×Cảm Biến Cảm Ứng
1×Relay
1×breadboard (bo mạch thí nghiệm)
1×Dây Jumper
1×(Tùy chọn) Khóa Điện Từ
1×(Tùy chọn) Adapter Nguồn 12V
1×(Tùy chọn) Jack Nguồn DC
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 Cảm Ứng

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

Sơ Đồ Kết Nối

sơ đồ kết nối Raspberry Pi cảm biến cảm ứng rơ le

This image is created using Fritzing. Click to enlarge image

Ứng dụng 1 - Trạng thái relay đồng bộ với trạng thái cảm biến cảm ứng

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích khác cho Raspberry Pi.
  • Đả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.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu cần cài đặt thư viện.
  • Nếu đây là lần đầu bạn sử dụng Raspberry Pi, 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 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 Python script touch_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-touch-sensor-relay import RPi.GPIO as GPIO # Set the GPIO mode (BCM or BOARD) GPIO.setmode(GPIO.BCM) # Define the GPIO pin number to which the relay is connected RELAY_PIN = 20 # Define the GPIO pin number to which the touch sensor is connected TOUCH_SENSOR_PIN = 18 # Set up the GPIO pins GPIO.setup(TOUCH_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Input with pull-up resistor GPIO.setup(RELAY_PIN, GPIO.OUT) # Output try: while True: touch_state = GPIO.input(TOUCH_SENSOR_PIN) if touch_state == GPIO.HIGH: print("The sensor is touched") GPIO.output(RELAY_PIN, GPIO.HIGH) # Turn the relay on else: print("The sensor is not touched") GPIO.output(RELAY_PIN, GPIO.LOW) # Turn the relay off except KeyboardInterrupt: GPIO.output(RELAY_PIN, GPIO.LOW) # Turn off the relay GPIO.cleanup()
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 touch_sensor_relay.py
  • Chạm ngón tay vào cảm biến cảm ứng và giữ trong vài giây, sau đó thả ra.
  • Kiểm tra sự thay đổi trong tình trạng của relay. Bạn sẽ thấy rằng trạng thái relay được đồng bộ với trạng thái cảm biến cảm ứng.

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ó trong các comment của source code!

Ứng dụng 2 - Cảm Biến Cảm Ứng chuyển đổi Relay

Các Bước Nhanh

  • Tạo file Python script touch_sensor_toggle_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-touch-sensor-relay import RPi.GPIO as GPIO import time # Constants won't change TOUCH_SENSOR_PIN = 16 # The number of the touch sensor pin RELAY_PIN = 18 # The number of the relay pin # Variables will change relay_state = GPIO.LOW # The current state of the relay prev_touch_state = GPIO.LOW # The previous state of the touch sensor touch_state = GPIO.LOW # The current state of the touch sensor # Set up GPIO GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbering GPIO.setup(RELAY_PIN, GPIO.OUT) # Initialize the relay pin as an output GPIO.setup(TOUCH_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the touch sensor pin as a pull-up input try: while True: # Read the state of the touch sensor value prev_touch_state = touch_state # Save the last state touch_state = GPIO.input(TOUCH_SENSOR_PIN) # Read new state if prev_touch_state == GPIO.LOW and touch_state == GPIO.HIGH: time.sleep(0.1) # 100 milliseconds debounce time print("The sensor is touched") # Toggle the state of the relay if relay_state == GPIO.LOW: relay_state = GPIO.HIGH else: relay_state = GPIO.LOW # Control relay according to the toggled state GPIO.output(RELAY_PIN, relay_state) except KeyboardInterrupt: # Clean up GPIO on program exit GPIO.cleanup()
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 touch_sensor_toggle_relay.py
  • Chạm và thả cảm biến cảm ứng nhiều lần.
  • Kiểm tra sự thay đổi trong trạng thái relay. Bạn sẽ nhận thấy rằng relay sẽ bật hoặc tắt một lần mỗi khi bạn đặt ngón tay lên cảm biến cảm ứng.

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.

Bình Luận