Съдържание:
- Стъпка 1: Електронна схема
- Стъпка 2: Python код
- Стъпка 3: Как автоматично да стартирате скрипта след процедурата за зареждане
Видео: Бутон за изключване за Raspberry Pi: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
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 в 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 &
Тук има няколко неща, на които трябва да обърнете внимание:
- името на вашия файл: в горния ред приемам, че файлът е shutdown_with_hold.py. Но може да бъде каквото искате, просто актуализирайте името с вашето.
- където сте запазили файла си: в горния ред предполагам, че е записан във вашата директория/home/pi/Documents. Но отново може да бъде навсякъде. Трябва само да поставите абсолютния път към файла си тук.
- символът "&" в края му: това е важно и позволява на тази команда да работи във фонов режим
И това е! Така че сега скриптът ще се изпълнява всеки път, когато вашият Pi ще бъде ВКЛЮЧЕН и просто ще трябва да натиснете бутона за повече от 3 секунди, за да го изключите.
Препоръчано:
Бутон за изключване на Microsoft Teams: 4 стъпки
Бутон за изключване на Microsoft Teams: Изградете лесен за достъп бутон, за да изключите/включите звука си, докато сте на разговор в Microsoft Teams! Тъй като 2020. Този проект използва Adafruit Circuit Playground Express (CPX) и голям бутон за създаване на бутон за заглушаване на Microsoft Teams чрез горещия клавиш
Бутон за отброяване на Arduino с бутон за почивка: 4 стъпки
Бутон за обратно отброяване на Arduino с бутон за почивка: Тази инструкция ще ви научи как да създадете таймер за обратно броене с помощта на 4-цифрен 7-сегментен дисплей, който може да се нулира с бутон. Получих идеята да направя това, защото докато създавах едноцифрен 7-сегментен дисплей в клас, исках да създам нещо
Схема на бутон за алармен бутон за паника, използваща 555 IC таймер (част-1): 4 стъпки
Схема на бутон за алармен бутон с помощта на таймер 555 (част-1): Алармена верига за паника се използва за незабавно изпращане на авариен сигнал до хората на близко място, за да се обадят за помощ или да ги предупредят. Възможната паническа ситуация може да бъде всяка, тя не се ограничава до няколко ситуации. Човек би могъл да запази
Включена верига за изключване с UC. Бутон с едно натискане. Един щифт. Дискретен компонент .: 5 стъпки
Включена верига за изключване с UC. Бутон с едно натискане. Един щифт. Дискретен компонент.: Здравейте на всички, търсех верига за включване/изключване в мрежата. Всичко, което намерих, не беше това, което търсех. Говорих си сам, задължително има начин за това. Това ми беше необходимо. -Само един бутон за включване и изключване.-Трябва да използвам само
ИЗКЛЮЧВАНЕ КРАТКО ИЗКЛЮЧВАНЕ: 3 стъпки
SHUTDOWN SHORTCUT: Това е първата ми инструкция. Ще ви покажа как да създавате изтривания, за да изключите компютъра си. Можете също така да правите преки пътища за рестартиране, излизане, хибернация и заключване на компютъра