Raspberry Pi Solenoid Lock (Khóa Điện Từ)

Solenoid Lock, còn được gọi là Electric Strike Lock (Khóa Điện Tử), có thể được sử dụng để khóa/mở tủ, ngăn kéo và cửa. Hướng dẫn này sẽ chỉ bạn cách điều khiển solenoid lock bằng Raspberry Pi.

Một lựa chọn thay thế cho Solenoid Lock là Electromagnetic Lock. Để biết thêm thông tin, vui lòng tham khảo Raspberry Pi - Khóa Điện Từ (Electromagnetic Lock).

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×Solenoid Lock
1×Relay (Rơ-le)
1×Bộ Nguồn 12V
1×DC Power Jack
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ề Solenoid Lock

Sơ Đồ Chân Solenoid Lock

Solenoid Lock có hai dây:

  • Dây dương (+) (màu đỏ) nên được kết nối với 12V của nguồn DC
  • Dây âm (-) (màu đen) nên được kết nối với GND của nguồn DC
khóa điện từ solenoid sơ đồ chân

Cách Hoạt Động

  • Khi Solenoid Lock được cấp điện, lưỡi khóa sẽ được đẩy ra, do đó khóa cửa.
  • Khi Solenoid Lock KHÔNG được cấp điện, lưỡi khóa sẽ được rút vào, do đó mở khóa cửa.

※ Lưu ý:

Solenoid lock thường yêu cầu 12V, 24V hoặc 48V để hoạt động. Do đó, nó KHÔNG THỂ được kết nối trực tiếp với chân Raspberry Pi. Phải sử dụng relay để kết nối solenoid lock với chân Raspberry Pi.

Nếu chúng ta kết nối solenoid lock với nguồn điện thông qua relay (ở chế độ thường mở):

  • Khi relay ở trạng thái mở, cửa sẽ được mở khóa.
  • Khi relay ở trạng thái đóng, cửa sẽ được khóa.

Chúng ta có thể kết nối relay với Raspberry Pi và lập trình Raspberry Pi để điều khiển solenoid lock thông qua relay. Để tìm hiểu thêm về relay, vui lòng tham khảo Raspberry Pi - Relay.

Sơ Đồ Đấu Nối

Raspberry Pi khóa điện từ solenoid sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi

Code dưới đây sẽ làm cho cửa bị khóa và mở khóa cứ mỗi 2 giây.

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 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ộ như 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, cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Tạo file Python script solenoid_lock.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-solenoid-lock import RPi.GPIO as GPIO import time # Set the GPIO mode (BCM or BOARD) GPIO.setmode(GPIO.BCM) # Define the GPIO pin controlled the solenoid lock via the relay module RELAY_PIN = 12 # Set the relay pin as an output pin GPIO.setup(RELAY_PIN, GPIO.OUT) try: # Run the loop function indefinitely while True: # Turn the relay ON (HIGH) to lock the door GPIO.output(RELAY_PIN, GPIO.HIGH) time.sleep(2) # Wait for 2 seconds # Turn the relay OFF (LOW) to unlock the door GPIO.output(RELAY_PIN, GPIO.LOW) time.sleep(2) # Wait for 2 seconds except KeyboardInterrupt: # If the user presses Ctrl+C, clean up the GPIO configuration GPIO.cleanup()
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 solenoid_lock.py
  • Kiểm tra trạng thái của lưỡi khóa.

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.

Raspberry Pi - Nút Nhấn Điều Khiển Solenoid Lock

Python script dưới đây cho Raspberry Pi điều khiển khóa cửa bằng nút nhấn. Khi bạn nhấn nút, cửa sẽ được mở khóa trong 5 giây và sau đó cửa sẽ được khóa lại. Bạn có thể lặp lại quy trình này bằng cách nhấn nút một lần nữa.

Các Bước Nhanh

  • Kết nối nút nhấn và solenoid lock với Raspberry Pi như sơ đồ đấu nối dưới đây
Raspberry Pi nút nhấn khóa điện từ solenoid sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

  • Tạo file Python script button_solenoid_lock.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-solenoid-lock import RPi.GPIO as GPIO import time BUTTON_PIN = 18 # GPIO pin connected to the button RELAY_PIN = 16 # GPIO pin controlled the solenoid lock via the relay module # Set up the GPIO pins GPIO.setmode(GPIO.BCM) GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(RELAY_PIN, GPIO.OUT) prev_button_state = GPIO.HIGH # HIGH means the button is not pressed initially try: # Lock the door initially GPIO.output(RELAY_PIN, GPIO.HIGH) while True: button_state = GPIO.input(BUTTON_PIN) if button_state == GPIO.LOW and prev_button_state == GPIO.HIGH: # Button is pressed (LOW means pressed due to pull-up resistor) print("The button is pressed") GPIO.output(RELAY_PIN, GPIO.LOW) # Unlock the door print("The door is unlocked") time.sleep(5) # Wait for 5 seconds GPIO.output(RELAY_PIN, GPIO.HIGH) # Lock the door again print("The door is locked again") # Update the previous button state prev_button_state = button_state except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 button_solenoid_lock.py
  • Nhấn nút một lần.
  • Kiểm tra trạng thái lưỡi khóa trong 5 giâ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.