Để điều khiển bật tắt thiết bị bằng relay thì sử dụng RPI Relay board là tiện lợi nhất. Đây là shield lắp thêm vào Raspberry Pi với 4 relay điều khiển được bằng code. Phiên bản này phù hợp với Raspberry Pi 2/3/4, version A lẫn B/B+ (hầu như không kén).
Bài viết này giới thiệu cách đơn giản nhất để đóng/ngắt relay trên hệ điều hành Raspbian.
Giới thiệu
RPI relay board là sản phẩm của hãng Kumantech có bán tại các shop online với tầm giá 200-300k.
Relay kích mức thấp, tức là kích ở 0V (LOW). Đây là loại relay có 3 chân NO và NC (Normal Open và Normal Close)
Chân kết nối
Nhìn vào board các bạn sẽ thấy 4 jump với chữ P24, P25, P28 và P29 tương ứng với 4 relay.
Các relay tương ứng với các chân
Các chân điều khiển có vị trí tương ứng với chân GPIO như sau:
P24 – GPIO19
P25 – GPIO26
P28 – GPIO20
P29 – GPIO21
Tham khảo các chân GPIO trên Raspberry PI
Điều khiển
Để đơn giản chúng ta sử dụng lệnh xuất tín hiệu ra chân trên board có sẵn trên hệ điều hành Raspbian. Ví dụ bên dưới dùng để đóng/ngắt relay ở P24 (các bạn có thể làm tương tự với chân 25, 28 và 29):
#!/bin/sh -e
/usr/bin/gpio mode 24 out
/usr/bin/gpio mode 24 0
/usr/bin/gpio mode 24 1
Giải thích 4 dòng code ở trên:
– #!/bin/sh -e: khởi động GPIO
– /usr/bin/gpio mode 24 out: set chân 24 là output
– /usr/bin/gpio mode 24 0: kích relay
– /usr/bin/gpio mode 24 1: ngừng kích relay
Câu lệnh cực kỳ đơn giản nên mình nghĩ các bạn đã từng làm quen với Arduino sẽ dễ dàng thành công.
Bonus code Python
Code Python bên dưới dùng để đóng ngắt relay thứ 3 (P28 – GPIO20) mỗi giây 1 lần. Để sử dụng các bạn save thành file relay.py, copy vào Raspberry sau đó gọi lệnh python relay.py là được
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import RPi.GPIO as GPIO import time pinOut1 = 20 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(pinOut1,GPIO.OUT) while True: print("LED on") GPIO.output(pinOut1,GPIO.HIGH) time.sleep(1) print("LED off") GPIO.output(pinOut1,GPIO.LOW) time.sleep(1) |