Stap 6: GPIO pinnen op de Raspberry Pi
GPIO
Algemene Purpose Input Output (GPIO) pinnen zijn groot voor het toevoegen van LED's, drukknoppen en meer. In deze stap, zullen we leren hoe een LED licht en leest een kortstondige drukknop van de Raspbian OS. In de afbeelding hierboven, zal de LED aan de kant van de zaak oplichten alleen terwijl het apparaat is succesvol scannen. De drukknop zal stopzetten van het scannen (als dit wordt uitgevoerd) en start de scan opnieuw.
Input: Luisteren naar de gebeurtenis van een drukknop laten we schrijven luistert een klein script dat wordt uitgevoerd wanneer de Raspberry Pi die voortdurend opgestart naar een druk op de knop op de GPIO 8. Opnieuw, zal we simpel gezegd dit script in /etc/rc.local eerst, moeten we de GPIO pin voor input als, initialiseren
echo 8 > /sys/class/gpio/export
dan we het input, als zetten
echo in > /sys/class/gpio/gpio8/direction
Nu als wij de waarde van controleren
cat /sys/class/gpio/gpio8/value
Wanneer de knop wordt gedrukt, moeten we de waarde "1" en wanneer de knop niet ingedrukt is, moeten we de waarde van "0" - simpel binair. Nu laten we schrijven een script dat iets simpels, doet zoals het opnieuw opstarten van de Pi.
#!/bin/bash while [ 1 ]; do if [ "$(cat /sys/class/gpio/gpio8/value)" -eq "1" ]; then reboot; fidone;
Dit script zal eeuwig en gaan met het controleren van de waarde van de GPIO pin 8 voor een toets drukt. Als gevonden, zal het reboot de Pi. Dit kan worden toegepast in vele situaties, en kunnen we creatief zijn in het doen!
Output: Verlichting een LED laten we schrijven een script dat schakelt in en uit een LED met behulp van de GPIO pin 7. Dit is een stuk eenvoudiger dan het schrijven van een script om te luisteren of een druk op de knop. Kortom, we de GPIO pin initialiseren als "uit" in het bestand richting na exporteren, dan echo een 1 in het bestand van de waarde de LED inschakelen, of 0 tot het uitschakelen van de LED.
echo 7 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio7/direction
Om te schakelen ON the LED, doen we nu,
echo 1 > /sys/class/gpio/gpio8/value
te schakelen terug de LED die we doen,
echo 0 > /sys/class/gpio/gpio8/value
Dit kan zeer nuttig zijn voor de statuslampjes. Bijvoorbeeld, blijft het blauwe LED lampje aan de zijkant van de 802.11 Ninja in de bovenstaande foto's branden terwijl Airodump-NG draait. Dit wordt gedaan door het schrijven van de dezelfde terwijl [] Bash lus als hierboven voor de drukknop, maar de controles het proces lijst opdracht "ps aux" voor de tekenreeks "airodump-ng" Ik heb het getest door het loskoppelen van de WiFi-adapter van de Pi tijdens de scan en de LED ging zoals verwacht.