Tạo nút shutdown cho Raspberry Pi

Theo mặc định thì gắn nguồn vào Raspberry Pi là nó tự khởi động, gõ lệnh sudo shutdown -h now để shutdown Raspberry Pi. Việc shutdown bằng lệnh sẽ làm cho Raspberry Pi tắt lần lượt các chương trình rồi shutdown an toàn. Còn rút nóng/tắt nguồn Raspberry Pi thì sẽ ảnh hưởng ít nhiều đến tuổi thọ của thiết bị.

Trong trường hợp bạn bỏ Raspberry vào 1 hộp kín và bán cho khách hàng thì không thể bắt khách hàng remote vào để shutdown được. Cho nên bài viết này sẽ hướng dẫn cách tạo nút shutdown để Raspberry Pi được shutdown đúng cách.

Nguyên lý

Bạn cần viết 1 script Python lắng nghe sự kiện input từ các pin GPIO của Raspberry Pi. Khi có tín hiệu trigger thì gọi lệnh sudo shutdown -h now để tắt máy. Đồng thời script này cũng khởi động theo máy để luôn luôn lắng nghe tín hiệu shutdown.

Làm nút bấm

Đầu tiên bạn cần làm nút bấm rồi kết nối vào 2 chân: 1 chân GND và 1 chân GPIO. Nút bấm và dây điện bạn có thể mua ở các cửa hàng điện tử ở Nhật Tảo hoặc đặt online.
6c65209f1d51e70fbe40

Bài này sử dụng GPIO3 để làm ví dụ vì nó gần sát góc và phù hợp với hộp mica. 2 chân GPIO3 và GND (ground/mass) nằm cạnh nhau và được tô màu xanh như hình dưới

Viết script Python

Các bạn save đoạn script bên dưới thành file shutdown.py rồi copy vào Raspberry Pi. Để dễ nhớ thì nên copy vào /var/gpio

Sau đó chạy script để bắt đầu lắng nghe sự kiện bấm nút: sudo python shutdown.py &

Lưu ý: ký tự & ở cuối dòng để bạn có thể tiếp tục gõ những lệnh khác. Nếu không có nó thì bạn sẽ không gõ được gì thêm cho đến khi stop script.

Chạy script khi khởi động

Để chạy script khi khởi động các bạn edit file /etc/rc.local

sudo vi /etc/rc.local

Sau đó thêm dòng gọi script vào cuối file:
python /var/gpio/shutdown.py &

Save lại (Ấn ESC rồi ấn :wq -> Enter) là được.

Leave a Reply