İçindekiler:

Raspberry Pi için Kapatma Düğmesi: 3 Adım
Raspberry Pi için Kapatma Düğmesi: 3 Adım

Video: Raspberry Pi için Kapatma Düğmesi: 3 Adım

Video: Raspberry Pi için Kapatma Düğmesi: 3 Adım
Video: Raspberry Pi Boot Olmuyorsa Yapabilecekleriniz 2024, Kasım
Anonim
Raspberry Pi için Kapatma Düğmesi
Raspberry Pi için Kapatma Düğmesi

Raspberry Pi, çeşitli IoT/robot/akıllı ev/… proje uygulamaları oluşturmaya izin veren çok kullanışlı bir bilgi işlem platformudur. Normal bir bilgisayarla karşılaştırıldığında sahip olmadığı tek şey, kapatma kapatma düğmesidir. Peki kendimiz nasıl yaratabiliriz? Tamam, birlikte yapalım!

Bu eğitim için aşağıdakilere ihtiyacınız olacak:

  • 1 Raspberry Pi yapılandırılmış ve kullanıma hazır
  • 1 adet breadboard veya elektronik devreyi oluşturmanıza izin verecek bir şey
  • 1 basma düğmesi
  • 2 atlama teli

Ahududu Pi'yi hiç kullanmadıysanız, onu nasıl ve ne şekilde yapılandırmanız gerektiğine dair eğiticime göz atabilirsiniz:

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

Adım 1: Elektronik Devre

Elektronik devre
Elektronik devre
Elektronik devre
Elektronik devre
Elektronik devre
Elektronik devre

Burada süper karmaşık bir şey yok, oldukça basit bir devre. Yukarıdaki 2 resim devre yapısını açıklamaktadır. Düğme girişi için istediğiniz GPIO pinini kullanabilirsiniz, sadece kodu bunu yansıtacak şekilde güncellemeniz gerekir.

Bunun nasıl olacağını hızlıca açıklayalım:

  • KIRMIZI kablo, 3.3V'yi basmalı düğmenin bir ucuna alıyor.
  • SİYAH kablo, basmalı düğmenin diğer ucunu giriş olarak kullanılacak bir Pi GPIO'ya bağlar.
  • varsayılan olarak düğme açıktır, bu nedenle içinden voltaj geçmez. Yani düğmeye basılmadığında SİYAH kablo 0V'dadır. Bu, Pi GPIO girişinin mantıksal durumunun 0 olduğu anlamına gelir.
  • butona basıldığında üzerinden voltaj geçecek ve SİYAH kablo 3.3V'a bağlanacaktır. Raspberry Pi daha sonra girişinde mantıksal 1 durumuna karşılık gelen 3.3V'luk bir voltaj görecektir.

2. Adım: Python Kodu

Python Kodu
Python Kodu

Artık devre kullanıma hazır olduğuna göre onu çalıştıracak kodu yazmamız gerekiyor ve burada Python'u bir PyCharm ortamında kullanıyorum. Düğmeyi, yalnızca sonuç olarak 3 saniyeden fazla basıldığında Raspberry Pi'yi kapatacak şekilde yapılandırdım. Bunu yapmamın nedeni, yanlışlıkla basılmasının çok kolay olması ve Pi'nizi yanlışlıkla kapatmak istememenizdir.

Yukarıdaki baskı ekranı PyCharm ortamımdan alınmıştır ve kod aşağıdaki gibidir (26. satırda başka bir projeye bağlı ancak burada gerekli olmayan küçük bir farkla):

# Bu, tanımlanmış bir düğmeyi basılı tutarken Raspberry Pi'yi kapatmak için kullanılan bir koddur# Harici modül importsimport RPi. GPIO as GPIOimport timeimport os# Raspberry Pi pini ve değişken tanımları &hold_time = 3 # Kapatmak için saniye cinsinden bekleme süresibutton_poweroff = 1 # Basma düğmesi Raspberry PiGPIO.setwarnings(False)GPIO.setmode(GPIO. BCM) # Broadcom pin-numaralandırma şemasıGPIO.setup(button_poweroff, GPIO. IN, pull_up_down=GPIO. PUD_DOWN) # Buton giriş olarak ayarlanırken True: GPIO.wait_for_edge(button_poweroff, GPIO. RISING) start = time.time() time.sleep(0.2) # Debounce while GPIO.input(button_poweroff) == 1: time.sleep(0.01) uzunluk = time.time() - uzunluk ise başla > hold_time: os.system("sudo poweroff")

Basmalı düğmeyi farklı bir GPIO'ya bağladıysanız, yapılacak ilk şey, yukarıdaki baskı ekranındaki 11. satırı ilgili GPIO girişi ile güncellemektir:

button_poweroff = GPIO_X # Devrenizde kullanılan doğru GPIO ile güncelleyin

Ayrıca hold_time değişkeni, Pi'nin kapanmasını tetikleyen bekleme süresini değiştirmenize olanak tanır.

Adım 3: Önyükleme Prosedüründen Sonra Komut Dosyasını Otomatik Olarak Başlatma

Önyükleme Prosedüründen Sonra Komut Dosyasını Otomatik Olarak Başlatma
Önyükleme Prosedüründen Sonra Komut Dosyasını Otomatik Olarak Başlatma
Önyükleme Prosedüründen Sonra Komut Dosyasını Otomatik Olarak Başlatma
Önyükleme Prosedüründen Sonra Komut Dosyasını Otomatik Olarak Başlatma

Şimdi kodumuz hazır olduğuna göre, sadece çalıştırmamız gerekiyor. Ancak, bu komut dosyasını Pi her başlatıldığında otomatik olarak çalıştırabilirsek uygun olur, böylece düğme her seferinde komut dosyasını çalıştırmak için biz olmadan çalışır. Bunu yapmanın birçok yolu var. Pi'nizin /etc/ klasöründe bulunan rc.local dosyasına buraya bir satır ekledim. Önyükleme sırasının bir parçası olarak yürütülür.

Bir komut satırı açmanız ve aşağıdaki komutları yazmanız gerekir (yukarıdaki 1. baskı ekranı):

cd /

cd vb sudo nano rc.local

İlk komut sizi /home/pi dizininden kök dizine, yani / dizinine götürecektir.

İkinci komut sizi /etc/ dizinine götürecektir.

Son olarak, üçüncüsü, rc.local dosyasını, dosyayı değiştirmeniz gereken tam düzenleme haklarına sahip bir süper kullanıcı olarak açacaktır.

Dosyaya girdikten sonra, sonuna bir satır eklemeniz yeterlidir, ancak çıkış 0 ifadesinden önce (yukarıdaki 2. baskı ekranı):

# Komut dosyasını başlatmak için bu satırı rc.local dosyasına ekleyin

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

Burada dikkat etmeniz gereken birkaç şey var:

  1. dosyanızın adı: yukarıdaki satırda, dosyanın shutdown_with_hold.py olduğunu varsayıyorum. Ama ne istersen olabilir, sadece adını kendinle güncelle.
  2. dosyanızı kaydettiğiniz yer: yukarıdaki satırda, /home/pi/Documents dizininize kaydedildiğini varsayıyorum. Ama yine, her yerde olabilir. Dosyanızın mutlak yolunu buraya koyduğunuzdan emin olmanız yeterlidir.
  3. sonundaki "&" karakteri: bu önemlidir ve bu komutun arka planda çalışmasına izin verir

Ve bu kadar! Şimdi, komut dosyası Pi'niz her AÇIK olduğunda yürütülecek ve kapatmak için düğmeye 3 saniyeden fazla basmanız yeterli olacak.

Önerilen: