Taula de continguts:

Botó d'apagada per a Raspberry Pi: 3 passos
Botó d'apagada per a Raspberry Pi: 3 passos

Vídeo: Botó d'apagada per a Raspberry Pi: 3 passos

Vídeo: Botó d'apagada per a Raspberry Pi: 3 passos
Vídeo: Raspberry Pi 3 Tutorial - How to Set Up for Gaming & Entertainment Projects 2024, Juliol
Anonim
Botó d’apagada per a Raspberry Pi
Botó d’apagada per a Raspberry Pi

El Raspberry Pi és una plataforma informàtica molt útil que permet crear diverses aplicacions de projectes IoT / robòtica / smart-home / … Tot i que l’única cosa que no té, en comparació amb un ordinador normal, és un botó d’apagat d’aturada. Com podem crear-ne un? Molt bé, ho fem junts!

Per a aquest tutorial, necessitareu el següent:

  • 1 Raspberry Pi ja configurat i llest per utilitzar
  • 1 tauleta de suport o alguna cosa que us permetrà crear el circuit electrònic
  • 1 polsador
  • 2 cables de pont

Si mai no heu utilitzat un Raspberry Pi, podeu consultar el meu tutorial sobre com i què heu de fer per configurar-lo:

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

Pas 1: Circuit electrònic

Circuit electrònic
Circuit electrònic
Circuit electrònic
Circuit electrònic
Circuit electrònic
Circuit electrònic

Res súper complicat aquí, és un circuit força senzill. Les 2 imatges anteriors expliquen la construcció del circuit. Podeu utilitzar el PIN GPIO que vulgueu per a l'entrada del botó, només haureu d'assegurar-vos que actualitzeu el codi per reflectir-ho.

Expliquem ràpidament com funcionarà això:

  • el cable VERMELL porta 3,3 V a un extrem del polsador.
  • el cable NEGRE connecta l’altre extrem del polsador a un Pi GPIO que s’utilitzarà com a entrada.
  • per defecte, el botó està obert, de manera que no hi passa cap voltatge. Per tant, el cable NEGRE es troba a 0V quan no es prem el botó. Això significa que l'estat lògic de l'entrada GPIO Pi és 0.
  • quan es prem el botó, el voltatge passarà per ell i el cable NEGRE estarà enllaçat amb el 3.3V. El Raspberry Pi veurà llavors un voltatge de 3,3 V a la seva entrada, que correspon a un estat lògic d’1.

Pas 2: codi Python

Codi Python
Codi Python

Ara que el circuit està llest per utilitzar-lo, hem d’escriure el codi que l’executarà i aquí estic fent servir Python en un entorn PyCharm. He configurat el botó per apagar el Raspberry Pi només quan es prem més de 3 segons en conseqüència. La raó per la qual ho faig és que és molt fàcil tenir-lo premut accidentalment i no voleu apagar el Pi per accident.

La pantalla d'impressió anterior prové del meu entorn PyCharm i el codi és el següent (amb una diferència menor a la línia 26 que està enllaçada a un altre projecte però no és obligatòria aquí):

# Aquest és un codi per apagar el Raspberry Pi quan es manté premut un botó definit. # Mòdul extern importsimport RPi. GPIO com a GPIOimport time import # Raspberry Pi pin & variables definons & hold_time = 3 # Hold time in sec to poweroffbutton_poweroff = 1 # Pulsador per desactivar Raspberry PiGPIO.setwarnings (fals) GPIO.setmode (GPIO. BCM) # Broadcom pin-numering schemeGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Botó definit com a entrada mentre que True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Canvia el rebounce mentre GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - comença si és length > hold_time: os.system ("sudo poweroff")

El primer, si heu connectat el polsador a un GPIO diferent, és actualitzar la línia 11 a la pantalla d’impressió anterior amb l’entrada GPIO corresponent:

button_poweroff = GPIO_X # Actualització amb el GPIO correcte utilitzat al vostre circuit

A més, la variable hold_time us permet modificar el temps d'espera que provoca que el Pi es tanqui.

Pas 3: Com iniciar l’script automàticament després del procediment d’arrencada

Com iniciar l’script automàticament després del procediment d’arrencada
Com iniciar l’script automàticament després del procediment d’arrencada
Com iniciar l’script automàticament després del procediment d’arrencada
Com iniciar l’script automàticament després del procediment d’arrencada

Ara que ja tenim el codi a punt, només hem d’executar-lo. Però, seria convenient que poguéssim executar aquest script cada cop que s’inicia el Pi, de manera automàtica, de manera que el botó funcionaria sense que executéssim el script cada vegada. Hi ha moltes maneres de fer-ho. He afegit aquí una línia al fitxer rc.local que es troba a la carpeta / etc / del vostre Pi. S'executa com a part de la seqüència d'arrencada.

Heu d'obrir una línia d'ordres i escriure les ordres següents (1a pantalla d'impressió anterior):

cd /

cd etc sudo nano rc.local

La primera ordre us portarà des del directori / home / pi fins a l’arrel, que és /.

La segona ordre us portarà al directori / etc /.

Finalment, el tercer obrirà el fitxer rc.local com a superusuari, amb drets d’edició complets, que heu de modificar.

Un cop al fitxer, només cal afegir una línia al final, però abans de la declaració exit 0 (segona pantalla d'impressió superior):

# Afegiu aquesta línia al fitxer rc.local per iniciar el script

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

Aquí hi ha algunes coses que heu de prestar atenció:

  1. el nom del vostre fitxer: a la línia superior, suposo que el fitxer és shutdown_with_hold.py. Però pot ser el que vulgueu, només cal que actualitzeu el nom amb el vostre.
  2. on heu desat el fitxer: a la línia superior, suposo que es desa al directori / home / pi / Documents. Però, de nou, pot ser a qualsevol lloc. Només us heu d’assegurar de posar aquí la ruta absoluta al fitxer.
  3. el caràcter "&" al final: és important i permet que aquesta ordre s'executi en segon pla

I ja està! Ara, l’escriptura s’executarà cada vegada que el vostre Pi estarà engegat i només haureu de prémer més de 3 segons sobre el botó per apagar-lo.

Recomanat: