Raspberry Pi Cảm Biến Cửa LED

Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi và cảm biến cửa để điều khiển LED. Chúng ta sẽ học hai ứng dụng khác nhau:

Ứng Dụng 1 - LED sáng khi cửa mở và LED tắt khi cửa đóng. Trạng thái LED đồng bộ với trạng thái của cảm biến cửa. Cụ thể:

Ứng Dụng 2 - Trạng thái LED được chuyển đổi mỗi khi cửa được mở. Cụ thể hơn:

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

1×Raspberry Pi 5
1×Cảm Biến Cửa
1×LED Kit
1×LED (red)
1×LED Module
1×Điện trở 220 ohm
1×breadboard
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ề LED và Cảm Biến Cửa

Nếu bạn chưa quen thuộc với LED và cảm biến cửa (bao gồm sơ đồ chân, 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ửa LED

This image is created using Fritzing. Click to enlarge image

Ứng Dụng 1 - Trạng thái LED đồng bộ với trạng thái cảm biến cửa

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích Raspberry Pi nào 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 của bạn với Raspberry Pi qua SSH bằ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 nó bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Tạo một file script Python door_sensor_led.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-door-sensor-led import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin numbers for the door sensor and the LED DOOR_SENSOR_PIN = 18 LED_PIN = 20 # Setup the GPIO pin for the door sensor as an input with pull-up resistor GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Setup the GPIO pin for the LED as an output GPIO.setup(LED_PIN, GPIO.OUT) try: while True: # Read the state of the door sensor (HIGH when open, LOW when closed) door_state = GPIO.input(DOOR_SENSOR_PIN) if door_state == GPIO.HIGH: print("Door is OPEN") GPIO.output(LED_PIN, GPIO.HIGH) # Turn on the LED else: print("Door is CLOSED") GPIO.output(LED_PIN, GPIO.LOW) # Turn off the LED time.sleep(0.1) # Add a small delay to avoid excessive reads except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 door_sensor_led.py
  • Mở và đóng cửa
  • Kiểm tra sự thay đổi trong trạng thái LED. Bạn sẽ thấy trạng thái LED đồng bộ với trạng thái cảm biến cửa.

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

Giải Thích Code

Hãy xem 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ửa chuyển đổi LED

Các Bước Nhanh

  • Tạo một file script Python door_sensor_toggle_led.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-door-sensor-led import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin numbers for the door sensor and the LED DOOR_SENSOR_PIN = 18 LED_PIN = 20 # Setup the GPIO pin for the door sensor as an input with pull-up resistor GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Setup the GPIO pin for the LED as an output GPIO.setup(LED_PIN, GPIO.OUT) # Variable to keep track of the previous door state prev_door_state = GPIO.input(DOOR_SENSOR_PIN) # Variable to keep track of the LED state led_state = False # False for LED off, True for LED on try: while True: # Read the state of the door sensor (HIGH when open, LOW when closed) door_state = GPIO.input(DOOR_SENSOR_PIN) if door_state != prev_door_state: if door_state == GPIO.HIGH: print("Door is OPEN") led_state = not led_state # Toggle the LED state GPIO.output(LED_PIN, led_state) # Update the LED state # Update the previous door state prev_door_state = door_state time.sleep(0.1) # Add a small delay to avoid excessive reads except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 door_sensor_toggle_led.py

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

  • Mở và đóng cửa nhiều lần.
  • Kiểm tra sự thay đổi trong trạng thái LED. Bạn sẽ thấy trạng thái LED được chuyển đổi một lần mỗi khi cửa được đó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