Isi kandungan:

Butang Matikan untuk Raspberry Pi: 3 Langkah
Butang Matikan untuk Raspberry Pi: 3 Langkah

Video: Butang Matikan untuk Raspberry Pi: 3 Langkah

Video: Butang Matikan untuk Raspberry Pi: 3 Langkah
Video: New Method to Setup Raspberry Pi Without Keyboard or Mouse (Headless) 2024, November
Anonim
Butang Matikan untuk Raspberry Pi
Butang Matikan untuk Raspberry Pi

Raspberry Pi adalah platform pengkomputeran yang sangat berguna yang membolehkan membuat pelbagai aplikasi projek IoT / robotik / rumah pintar /…. Satu perkara yang tidak dimiliki, dibandingkan dengan komputer biasa, adalah butang mematikan. Jadi bagaimana kita boleh membuatnya sendiri? Baiklah, mari kita buat bersama!

Untuk tutorial ini, anda memerlukan perkara berikut:

  • 1 Raspberry Pi sudah dikonfigurasikan dan siap digunakan
  • 1 papan roti atau sesuatu yang membolehkan anda membuat litar elektronik
  • 1 butang tekan
  • 2 wayar pelompat

Sekiranya anda tidak pernah menggunakan Raspberry Pi, anda boleh melihat tutorial saya tentang bagaimana dan apa yang harus dilakukan untuk mengkonfigurasinya:

www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/

Langkah 1: Litar Elektronik

Litar Elektronik
Litar Elektronik
Litar Elektronik
Litar Elektronik
Litar Elektronik
Litar Elektronik

Tidak ada yang rumit di sini, ini adalah litar yang mudah. 2 gambar di atas menerangkan binaan litar. Anda boleh menggunakan pin GPIO mana yang anda mahukan untuk input butang, anda hanya perlu memastikan untuk mengemas kini kod untuk menggambarkannya.

Mari terangkan dengan cepat bagaimana ini berfungsi:

  • wayar MERAH mengambil 3.3V ke satu hujung butang tekan.
  • kabel HITAM menghubungkan hujung lain butang tekan ke Pi GPIO yang akan digunakan sebagai input.
  • secara lalai butang terbuka, jadi tidak ada voltan yang melaluinya. Jadi kabel HITAM berada pada 0V apabila butang tidak ditekan. Ini bermaksud bahawa keadaan logik input Pi GPIO adalah 0.
  • apabila butang akan ditekan, voltan akan melaluinya dan kabel HITAM akan dihubungkan ke 3.3V. Raspberry Pi kemudian akan melihat voltan 3.3V pada inputnya, sepadan dengan keadaan logik 1.

Langkah 2: Kod Python

Kod Python
Kod Python

Sekarang litar siap digunakan, kita perlu menulis kod yang akan menjalankannya, dan saya menggunakan Python di persekitaran PyCharm di sini. Saya mengkonfigurasi butang untuk mematikan Raspberry Pi hanya apabila ditekan lebih dari 3 saat. Sebab mengapa saya melakukannya adalah sangat mudah untuk menekannya secara tidak sengaja, dan anda tidak mahu menutup Pi anda secara tidak sengaja.

Skrin cetak di atas adalah dari persekitaran PyCharm saya, dan kodnya adalah yang berikut (dengan perbezaan kecil pada baris 26 yang dihubungkan dengan projek lain tetapi tidak diperlukan di sini):

# Ini adalah kod untuk mematikan Raspberry Pi ketika menekan dan menahan butang yang ditentukan # Modul luaran mengimport RPi. GPIO sebagai GPIOimport waktu import os # Raspberry Pi pin & variabel definitons & hold_time = 3 # Tahan masa dalam beberapa saat ke butang poweroff_poweroff = 1 # Butang tekan untuk mematikan Raspberry PiGPIO.setwarnings (Salah) GPIO.setmode (GPIO. BCM) # Skema penomboran pin BroadcomGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Butang ditetapkan sebagai input sementara Benar: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Switch debounce sementara GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - mulakan jika panjang > hold_time: os.system ("sudo poweroff")

Perkara pertama, jika anda telah menyambungkan butang tekan ke GPIO yang berbeza, adalah mengemas kini baris 11 pada skrin cetak di atas dengan input GPIO yang berkaitan:

button_poweroff = GPIO_X # Kemas kini dengan GPIO yang betul yang digunakan pada litar anda

Juga, pemboleh ubah hold_time membolehkan anda mengubah masa menunggu yang memicu Pi ditutup.

Langkah 3: Cara Melancarkan Skrip Secara Automatik Selepas Prosedur Boot

Cara Melancarkan Skrip Secara Automatik Selepas Prosedur Boot
Cara Melancarkan Skrip Secara Automatik Selepas Prosedur Boot
Cara Melancarkan Skrip Secara Automatik Selepas Prosedur Boot
Cara Melancarkan Skrip Secara Automatik Selepas Prosedur Boot

Sekarang kita sudah mempunyai kodnya, kita hanya perlu melaksanakannya. Tetapi, akan lebih baik jika kita dapat menjalankan skrip ini setiap kali Pi melakukan boot, dengan cara automatik, jadi butang akan berfungsi tanpa kita menjalankan skrip setiap kali. Terdapat banyak cara untuk melakukannya. Saya telah menambahkan satu baris ke dalam fail rc.local yang terletak di / etc / folder Pi anda. Ia dilaksanakan sebagai sebahagian daripada urutan boot.

Anda perlu membuka baris perintah dan ketik perintah berikut (skrin cetak pertama di atas):

cd /

cd dll sudo nano rc.local

Perintah pertama akan membawa anda dari direktori / home / pi anda ke root, iaitu /.

Perintah kedua kemudian akan membawa anda ke direktori / etc /.

Akhirnya, yang ketiga akan membuka fail rc.local sebagai superuser, dengan hak edit penuh, yang anda perlukan untuk mengubah suai fail tersebut.

Setelah masuk ke fail, anda hanya perlu menambahkan baris di hujungnya, tetapi sebelum pernyataan keluar 0 (skrin cetak ke-2 di atas):

# Tambahkan baris ini ke fail rc.local untuk melancarkan skrip

sudo python /home/pi/Documents/shutdown_with_hold.py &

Terdapat beberapa perkara yang perlu anda perhatikan, di sini:

  1. nama fail anda: pada baris di atas, saya mengandaikan bahawa fail tersebut shutdown_with_hold.py. Tetapi itu boleh menjadi apa sahaja yang anda mahukan, cukup kemas kini namanya dengan nama anda.
  2. di mana anda telah menyimpan fail anda: pada baris di atas, saya menganggapnya disimpan di direktori / home / pi / Documents anda. Tetapi sekali lagi, ia boleh berada di mana sahaja. Anda hanya perlu memastikan meletakkan jalan mutlak ke fail anda di sini.
  3. watak "&" di hujungnya: ini penting, dan ia membenarkan arahan ini berjalan di latar belakang

Dan itu sahaja! Jadi sekarang, skrip akan dijalankan setiap kali Pi anda AKTIF, dan anda hanya perlu menekan lebih dari 3 saat pada butang untuk mematikannya.

Disyorkan: