INHOUDSOPGAWE:

Uitskakelknoppie vir Framboos Pi: 3 stappe
Uitskakelknoppie vir Framboos Pi: 3 stappe

Video: Uitskakelknoppie vir Framboos Pi: 3 stappe

Video: Uitskakelknoppie vir Framboos Pi: 3 stappe
Video: Equipment Corner- OctoPrint configuration 2024, November
Anonim
Uitskakelknoppie vir Raspberry Pi
Uitskakelknoppie vir Raspberry Pi

Die Raspberry Pi is 'n baie nuttige rekenaarplatform waarmee u verskillende IoT/robotika/smart-home/… projek-toepassings kan skep. Die enigste ding wat dit nie het nie, in vergelyking met 'n gewone rekenaar, is 'n afskakelknoppie. So, hoe kan ons self een skep? Goed, kom ons doen dit saam!

Vir hierdie tutoriaal benodig u die volgende:

  • 1 Raspberry Pi is reeds gekonfigureer en gereed om te gebruik
  • 1 broodbord of iets waarmee u die elektroniese stroombaan kan skep
  • 1 drukknop
  • 2 springdrade

As u nog nooit 'n Raspberry Pi gebruik het nie, kan u my handleiding raadpleeg oor hoe en wat u moet doen om dit op te stel:

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

Stap 1: Elektroniese stroombaan

Elektroniese stroombaan
Elektroniese stroombaan
Elektroniese stroombaan
Elektroniese stroombaan
Elektroniese stroombaan
Elektroniese stroombaan

Niks super ingewikkeld hier nie, dit is 'n redelike eenvoudige kring. Die 2 foto's hierbo verduidelik die kringopbou. U kan die GPIO -pen wat u wil gebruik vir die invoer van die knoppie gebruik; u moet net die kode opdateer om dit weer te gee.

Kom ons verduidelik vinnig hoe dit gaan werk:

  • die ROOI draad dra die 3.3V na die een kant van die drukknop.
  • die SWART kabel verbind die ander kant van die drukknop met 'n Pi GPIO wat as invoer gebruik sal word.
  • die knoppie is standaard oop, so daar is geen spanning nie. Die SWART kabel is dus op 0V as die knoppie nie ingedruk word nie. Dit beteken dat die logiese toestand van die Pi GPIO -invoer 0 is.
  • as die knoppie ingedruk word, gaan die spanning daardeur en die SWART kabel word aan die 3.3V gekoppel. Die Raspberry Pi sal dan 'n spanning van 3.3V by sy ingang sien, wat ooreenstem met 'n logiese toestand van 1.

Stap 2: Python -kode

Python -kode
Python -kode

Noudat die kring gereed is vir gebruik, moet ons die kode skryf wat dit sal laat loop, en ek gebruik Python in 'n PyCharm -omgewing hier. Ek het die knoppie gekonfigureer om die Raspberry Pi slegs uit te skakel as dit gevolglik meer as 3 sekondes ingedruk word. Die rede waarom ek dit doen, is dat dit baie maklik is om dit per ongeluk te druk, en u wil nie u Pi per ongeluk afsluit nie.

Die drukskerm hierbo kom uit my PyCharm -omgewing, en die kode is die volgende (met 'n geringe verskil op reël 26 wat aan 'n ander projek gekoppel is, maar nie hier vereis word nie):

# Dit is 'n kode om die Raspberry Pi uit te skakel as u 'n gedefinieerde knoppie ingedruk hou om Raspberry PiGPIO.setwarnings (Onwaar) GPIO.setmode (GPIO. BCM) uit te skakel # Broadcom pin-numbering schemeGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Knoppie as invoer ingestel terwyl True: GPIO.wait_for_edge (button_poweroff, GPIO. RISING) start = time.time () time.sleep (0.2) # Switch debounce while GPIO.input (button_poweroff) == 1: time.sleep (0.01) length = time.time () - start if length > hold_time: os.system ("sudo poweroff")

Die eerste ding, as u die drukknoppie aan 'n ander GPIO gekoppel het, is om reël 11 op die bogenoemde drukskerm op te dateer met die relevante GPIO -invoer:

button_poweroff = GPIO_X # Werk op met die korrekte GPIO wat op u kring gebruik is

Met die veranderlike hold_time kan u ook die wagtyd wat die Pi veroorsaak, verander.

Stap 3: Hoe om die script outomaties na die opstartprosedure te begin

Hoe om die script outomaties na die opstartprosedure te begin
Hoe om die script outomaties na die opstartprosedure te begin
Hoe om die script outomaties na die opstartprosedure te begin
Hoe om die script outomaties na die opstartprosedure te begin

Noudat ons die kode gereed het, moet ons dit net uitvoer. Maar dit sal gerieflik wees as ons hierdie script outomaties kan laat uitvoer elke keer as die Pi opstart, sodat die knoppie sonder ons werk om die script elke keer uit te voer. Daar is baie maniere om dit te doen. Ek het hier 'n reël bygevoeg in die rc.local lêer wat in die / etc / gids van u Pi geleë is. Dit word uitgevoer as deel van die opstartvolgorde.

U moet 'n opdragreël oopmaak en die volgende opdragte tik (eerste drukskerm hierbo):

cd /

cd ens sudo nano rc.local

Die eerste opdrag neem u van u /home /pi -gids na die wortel, wat is /.

Die tweede opdrag neem u dan na die / etc / directory.

Laastens maak die derde die rc.local -lêer oop as 'n supergebruiker, met volledige wysigingsregte wat u nodig het om die lêer te verander.

Sodra u in die lêer is, moet u net 'n reël aan die einde daarvan byvoeg, maar voor die afrit 0 -verklaring (2de drukskerm hierbo):

# Voeg hierdie reël by die rc.local -lêer om die script te begin

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

Hier is 'n paar dinge waaraan u moet let:

  1. die naam van u lêer: in die lyn hierbo neem ek aan dat die lêer shutdown_with_hold.py is. Maar dit kan wees wat u wil, werk net die naam op met u naam.
  2. waar u u lêer gestoor het: in die lyn hierbo neem ek aan dat dit in u/home/pi/Documents -gids gestoor is. Maar weer, dit kan oral wees. U hoef net die absolute pad na u lêer hier te plaas.
  3. die "&" -karakter aan die einde daarvan: dit is belangrik, en dit laat hierdie opdrag op die agtergrond toe

En dit is dit! Die skrip word dus uitgevoer elke keer as u Pi aan is, en u hoef net meer as 3 sekondes op die knoppie te druk om dit uit te skakel.

Aanbeveel: