Përmbajtje:

Butoni i fikjes për Raspberry Pi: 3 hapa
Butoni i fikjes për Raspberry Pi: 3 hapa

Video: Butoni i fikjes për Raspberry Pi: 3 hapa

Video: Butoni i fikjes për Raspberry Pi: 3 hapa
Video: Превратите свой Raspberry Pi Pico в ПЛК Mitsubishi FX1N 2024, Nëntor
Anonim
Butoni i fikjes për Raspberry Pi
Butoni i fikjes për Raspberry Pi

Raspberry Pi është një platformë kompjuterike shumë e dobishme që lejon krijimin e aplikacioneve të ndryshme të projektit IoT/robotikë/smart-home/…. Megjithatë, një gjë që nuk e ka, në krahasim me një kompjuter normal, është një buton i fikjes. Pra, si mund ta krijojmë një vetë? Mirë, le ta bëjmë së bashku!

Për këtë tutorial, do t'ju duhet sa vijon:

  • 1 Raspberry Pi tashmë e konfiguruar dhe gati për përdorim
  • 1 pjatë ose diçka që do t'ju lejojë të krijoni qark elektronik
  • 1 buton
  • 2 tela kërcyes

Nëse nuk keni përdorur kurrë një Raspberry Pi, mund të shikoni tutorialin tim se si dhe çfarë të bëni për ta konfiguruar atë:

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

Hapi 1: Qarku elektronik

Qarku Elektronik
Qarku Elektronik
Qarku Elektronik
Qarku Elektronik
Qarku Elektronik
Qarku Elektronik

Asgjë super e komplikuar këtu, është një qark mjaft i drejtpërdrejtë. 2 fotografitë e mësipërme po shpjegojnë ndërtimin e qarkut. Ju mund të përdorni cilindo pin GPIO që dëshironi për hyrjen e butonit, thjesht duhet të siguroheni që të azhurnoni kodin për ta pasqyruar atë.

Le të shpjegojmë shpejt se si do të funksionojë kjo:

  • tela KUQ po e merr 3.3V në njërin skaj të butonit të shtypjes.
  • kabllo BLACK po lidh skajin tjetër të butonit shtytës me një GPIO Pi i cili do të përdoret si hyrje.
  • si parazgjedhje butoni është i hapur, kështu që nuk ka tension që kalon përmes tij. Pra, kablloja BLACK është në 0V kur butoni nuk shtypet. Kjo do të thotë që gjendja logjike e hyrjes Pi GPIO është 0.
  • kur butoni do të shtypet, tensioni do të kalojë përmes tij dhe kablli ZI do të lidhet me 3.3V. Raspberry Pi do të shohë një tension prej 3.3V në hyrjen e tij, që korrespondon me një gjendje logjike prej 1.

Hapi 2: Kodi Python

Kodi Python
Kodi Python

Tani që qarku është gati për t'u përdorur, ne duhet të shkruajmë kodin që do ta drejtojë atë, dhe unë jam duke përdorur Python në një mjedis PyCharm këtu. Konfigurova butonin për të fikur Raspberry Pi vetëm kur shtypet për më shumë se 3 sekonda rrjedhimisht. Arsyeja pse po e bëj këtë është se është shumë e lehtë ta shtypësh atë rastësisht dhe ju nuk doni ta mbyllni Pi tuaj rastësisht.

Ekrani i printimit më sipër është nga mjedisi im PyCharm, dhe kodi është si më poshtë (me një ndryshim të vogël në rreshtin 26 i cili është i lidhur me një projekt tjetër por nuk kërkohet këtu):

# Ky është një kod aa për të fikur Raspberry Pi kur shtypni dhe mbani butonin e përcaktuar për të çaktivizuar Raspberry PiGPIO.setwarnings (False) GPIO.setmode (GPIO. BCM) # Skema e numërimit të pin-it BroadcomGPIO.setup (button_poweroff, GPIO. IN, pull_up_down = GPIO. PUD_DOWN) # Butoni i caktuar si hyrje E vërtetë: GPIO.wait_ 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 () - fillo nëse gjatësia > koha e mbajtjes: os.system ("sudo poweroff")

Gjëja e parë, nëse e keni lidhur butonin shtytës me një GPIO tjetër, është të përditësoni rreshtin 11 në ekranin e mësipërm të printimit me hyrjen përkatëse GPIO:

button_poweroff = GPIO_X # Përditësoni me GPIO -në e duhur të përdorur në qarkun tuaj

Gjithashtu, ndryshorja hold_time ju lejon të modifikoni kohën e pritjes që shkakton mbylljen e Pi.

Hapi 3: Si të nisni skriptin automatikisht pas procedurës së nisjes

Si të nisni skriptin automatikisht pas procedurës së nisjes
Si të nisni skriptin automatikisht pas procedurës së nisjes
Si të nisni skriptin automatikisht pas procedurës së nisjes
Si të nisni skriptin automatikisht pas procedurës së nisjes

Tani që kemi kodin gati, na mbetet vetëm ta ekzekutojmë. Por, do të ishte e përshtatshme nëse mund ta ekzekutonim këtë skenar sa herë që Pi fillon, në mënyrë automatike, kështu që butoni do të funksiononte pa ne për të ekzekutuar skriptin çdo herë. Ka shumë mënyra për ta bërë këtë. Unë kam shtuar këtu një rresht në skedarin rc.local i cili ndodhet në dosjen / etc / të Pi tuaj. Ekzekutohet si pjesë e sekuencës së nisjes.

Ju duhet të hapni një linjë komande dhe të shkruani komandat e mëposhtme (ekrani i parë i printimit më lart):

cd /

cd etj sudo nano rc.lokal

Komanda e parë do t'ju çojë nga drejtoria juaj /home /pi në atë rrënjë, e cila është /.

Komanda e dytë do t'ju çojë në drejtorinë / etc /.

Së fundi, i treti do të hapë skedarin rc.local si një superpërdorues, me të drejta të plota redaktimi, të cilat ju nevojiten për të modifikuar skedarin.

Pasi të jeni në skedar, ju vetëm duhet të shtoni një rresht në fund të tij, por para deklaratës dalje 0 (ekrani i dytë i printimit më lart):

# Shtoni këtë rresht në skedarin rc.local për të nisur skriptin

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

Ka disa gjëra që ju duhet t'i kushtoni vëmendje, këtu:

  1. emri i skedarit tuaj: në rreshtin e mësipërm, po supozoj se skedari është mbyllur_with_hold.py. Por mund të jetë gjithçka që dëshironi, thjesht azhurnoni emrin me tuajin.
  2. ku e keni ruajtur skedarin tuaj: në rreshtin e mësipërm, unë supozoj se është ruajtur në drejtorinë tuaj/home/pi/Documents. Por përsëri, mund të jetë kudo. Thjesht duhet të siguroheni që të vendosni rrugën absolute në skedarin tuaj këtu.
  3. karakteri "&" në fund të tij: kjo është e rëndësishme dhe lejon që kjo komandë të funksionojë në sfond

Dhe kjo eshte! Pra, tani, skenari do të ekzekutohet sa herë që Pi juaj të jetë i ndezur, dhe thjesht do të duhet të shtypni më shumë se 3 sekonda në butonin për ta fikur atë.

Recommended: