Raspberry Pi Switch

Toggle switch, thường được gọi là switch ON/OFF, có hai trạng thái: ON (đóng) và OFF (mở). Khi nhấn, switch sẽ chuyển đổi giữa hai trạng thái và sẽ duy trì trạng thái đó ngay cả khi được thả ra.

Hướng dẫn này chỉ cho bạn cách sử dụng Raspberry Pi với switch ON/OFF. Cụ thể, chúng ta sẽ học:

Raspberry Pi on/off switch

Đừng nhầm lẫn với:

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

1×Raspberry Pi 5
1×Dây nối
1×Switch ON/OFF Vuông
1×(Thay thế) Switch ON/OFF Tròn
1×Alternatively, On/Off Switch Module
1×(Tùy chọn) Ống Gia Nhiệt
1×(Tùy chọn) Mỏ Hàn
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ề Switch ON/OFF

Switch thay đổi trạng thái từ ON sang OFF, hoặc OFF sang ON, khi được nhấn và duy trì trạng thái đó ngay cả sau khi được thả ra được gọi là Switch ON/OFF. Để thay đổi trạng thái, bạn phải nhấn lại một lần nữa.

Sơ Đồ Chân Switch

Có hai loại Switch ON/OFF: hai chân và ba chân.

Trong hướng dẫn này, chúng ta sẽ sử dụng switch hai chân. Với loại này, không cần phân biệt giữa hai chân.

on/off switch sơ đồ chân

Cách Hoạt Động

Có hai phương pháp để sử dụng switch ON/OFF. Sau đây là bảng đấu nối cho switch ON/OFF cũng như trạng thái đọc trên Raspberry Pi cho cả hai phương pháp:

chân 1 chân 2 Trạng Thái Chân Input Raspberry Pi
1 GND Chân Input Raspberry Pi (với pull-up) HIGH OFF, LOW ON
2 VCC Chân Input Raspberry Pi (với pull-down) HIGH ON, LOW OFF

Chúng ta phải chọn một trong hai tùy chọn. Phần còn lại của hướng dẫn sẽ sử dụng tùy chọn đầu tiên.

Sơ Đồ Đấu Nối

Raspberry Pi on/off switch sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Để có kết nối đấu dây an toàn và đáng tin cậy, chúng tôi khuyến nghị sử dụng Mỏ Hàn để hàn dây và chân của switch ON/OFF. Sau đó, sử dụng Ống Gia Nhiệt để tăng thêm độ an toàn.

Code Raspberry Pi - Switch ON/OFF

Tương tự như button, switch ON/OFF cũng cần debouncing (để biết thêm thông tin, vui lòng tham khảo Tại sao cần debounce cho button, switch ON/OFF?).

※ Lưu ý:

Có hai ứng dụng phổ biến:

  • Thứ nhất: Nếu switch được đặt ở ON, thực hiện một hành động. Nếu switch được đặt ở OFF, làm ngược lại.
  • Thứ hai: Nếu switch được chuyển từ ON sang OFF (hoặc OFF sang ON), thực hiện hành động.

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành nào khác tương thích với Raspberry Pi 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 cách 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 script Python switch.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-switch import RPi.GPIO as GPIO # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin for your switch SWITCH_PIN = 16 # Define debounce time in milliseconds DEBOUNCE_TIME_MS = 200 # 200 milliseconds # Set the initial state and pull-up resistor for the switch GPIO.setup(SWITCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the switch state and previous state switch_state = GPIO.input(SWITCH_PIN) prev_switch_state = switch_state # Define a function to handle switch presses def switch_callback(channel): global switch_state switch_state = GPIO.input(SWITCH_PIN) # Add an event listener for the switch press GPIO.add_event_detect(SWITCH_PIN, GPIO.BOTH, callback=switch_callback, bouncetime=DEBOUNCE_TIME_MS) try: # Main loop while True: # Check if the switch state has changed if switch_state != prev_switch_state: if switch_state == GPIO.HIGH: print("The switch: ON -> OFF") else: print("The switch: OFF -> ON") prev_switch_state = switch_state if switch_state == GPIO.HIGH: print("The switch: OFF") else: print("The switch: ON") except KeyboardInterrupt: # Clean up GPIO on exit GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 switch.py
  • Chuyển switch sang vị trí ON.
  • Kiểm tra kết quả trên Terminal.
  • Sau đó chuyển switch sang vị trí OFF.
  • Kiểm tra kết quả trên terminal.
PuTTY - Raspberry Pi
The switch: OFF The switch: OFF The switch: OFF The switch: OFF -> ON The switch: ON The switch: ON The switch: ON The switch: ON The switch: ON -> OFF The switch: OFF The switch: OFF The switch: OFF

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.

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.