Съдържание:

Бутон за изключване за Raspberry Pi: 3 стъпки
Бутон за изключване за Raspberry Pi: 3 стъпки

Видео: Бутон за изключване за Raspberry Pi: 3 стъпки

Видео: Бутон за изключване за Raspberry Pi: 3 стъпки
Видео: BTT - Manta E3EZ - CB1 with EMMc install 2024, Юли
Anonim
Бутон за изключване за Raspberry Pi
Бутон за изключване за Raspberry Pi

Raspberry Pi е много полезна изчислителна платформа, която позволява създаването на различни IoT/роботика/интелигентен дом/… проектни приложения. Единственото нещо, което няма, в сравнение с нормален компютър, е бутонът за изключване. И така, как можем сами да създадем такъв? Добре, нека го направим заедно!

За този урок ще ви трябва следното:

  • 1 Raspberry Pi вече е конфигуриран и готов за употреба
  • 1 макет или нещо, което ще ви позволи да създадете електронна схема
  • 1 бутон
  • 2 джъмперни проводника

Ако никога не сте използвали Raspberry Pi, можете да разгледате моя урок за това как и какво да направите, за да го конфигурирате:

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

Стъпка 1: Електронна схема

Електронна схема
Електронна схема
Електронна схема
Електронна схема
Електронна схема
Електронна схема

Нищо супер сложно тук, това е доста проста схема. Двете снимки по -горе обясняват изграждането на веригата. Можете да използвате който и да е GPIO щифт, който искате за въвеждане на бутон, просто трябва да се уверите, че актуализирате кода, за да го отразите.

Нека обясним бързо как ще работи това:

  • ЧЕРВЕНИЯТ проводник отвежда 3.3V към единия край на бутона.
  • черният кабел свързва другия край на бутона с Pi GPIO, който ще се използва като вход.
  • по подразбиране бутонът е отворен, така че през него няма напрежение. Така че Черният кабел е на 0V, когато бутонът не е натиснат. Това означава, че логическото състояние на входа Pi GPIO е 0.
  • когато бутонът ще бъде натиснат, напрежението ще премине през него и ЧЕРНИЯТ кабел ще бъде свързан към 3.3V. След това Raspberry Pi ще види на входа си напрежение от 3.3V, съответстващо на логическо състояние 1.

Стъпка 2: Python код

Код на Python
Код на Python

Сега, когато веригата е готова за използване, трябва да напишем кода, който ще я изпълнява, а аз използвам Python в PyCharm среда тук. Конфигурирах бутона за изключване на Raspberry Pi само когато е натиснат повече от 3 секунди последователно. Причината, поради която го правя, е, че е много лесно да бъде натиснат случайно и не искате да изключите своя Pi случайно.

Екранът за печат по -горе е от моята среда PyCharm и кодът е следният (с малка разлика в ред 26, който е свързан с друг проект, но не е задължителен тук):

# Това е aa код за изключване на Raspberry Pi при натискане и задържане на определен бутон # Външен модул importsimport RPi. GPIO като GPIOimport timeimport os # Raspberry Pi пин и променливи definitons & hold_time = 3 # Време на задържане в секунди за poweroffbutton_poweroff = 1 # Натиснете бутона за изключване на Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Broadcom схема за номериране на пиновеGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Бутонът е зададен като вход, докато True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Превключване на debounce, докато GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - start if length > hold_time: os.system ("sudo poweroff")

Първото нещо, ако сте свързали бутона с различен GPIO, е да актуализирате реда 11 на горния екран за печат със съответния GPIO вход:

button_poweroff = GPIO_X # Актуализирайте с правилния GPIO, използван във вашата схема

Също така, променливата hold_time ви позволява да променяте времето за изчакване, което задейства изключването на Pi.

Стъпка 3: Как автоматично да стартирате скрипта след процедурата за зареждане

Как да стартирате скрипта автоматично след процедурата за зареждане
Как да стартирате скрипта автоматично след процедурата за зареждане
Как да стартирате скрипта автоматично след процедурата за зареждане
Как да стартирате скрипта автоматично след процедурата за зареждане

Сега, когато имаме готов код, просто трябва да го изпълним. Но би било удобно, ако можем да имаме този скрипт да се изпълнява всеки път, когато Pi се стартира, по автоматичен начин, така че бутонът да работи без нас да стартираме скрипта всеки път. Има много начини да направите това. Добавих тук един ред във файла rc.local, който се намира в / etc / папката на вашия Pi. Изпълнява се като част от последователността на зареждане.

Трябва да отворите команден ред и да въведете следните команди (първият екран за печат по -горе):

cd /

cd и т.н. sudo nano rc.local

Първата команда ще ви отведе от директорията /home /pi до главната, която е /.

След това втората команда ще ви отведе до директорията / etc /.

И накрая, третият ще отвори файла rc.local като суперпотребител, с пълни права за редактиране, които трябва да промените.

Веднъж във файла, просто трябва да добавите ред в края му, но преди изходния израз 0 (2 -ри отпечатващ екран по -горе):

# Добавете този ред към rc.local файл, за да стартирате скрипта

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

Тук има няколко неща, на които трябва да обърнете внимание:

  1. името на вашия файл: в горния ред приемам, че файлът е shutdown_with_hold.py. Но може да бъде каквото искате, просто актуализирайте името с вашето.
  2. където сте запазили файла си: в горния ред предполагам, че е записан във вашата директория/home/pi/Documents. Но отново може да бъде навсякъде. Трябва само да поставите абсолютния път към файла си тук.
  3. символът "&" в края му: това е важно и позволява на тази команда да работи във фонов режим

И това е! Така че сега скриптът ще се изпълнява всеки път, когато вашият Pi ще бъде ВКЛЮЧЕН и просто ще трябва да натиснете бутона за повече от 3 секунди, за да го изключите.

Препоръчано: