Essa é uma dica simples, mas não quis deixar de escrever porque apesar de simples, é útil. Com esse programinha você pode fazer acesso por ssh e manipular um pino do GPIO do Raspberry. Está bem básico:
- Seleciona o pino
- Seleciona a direção
- Seleciona o estado do pino
Tudo através de um menu em curses, feito com o programa dialog. Tudo o que você precisa fazer é instalar o programa dialog:
Tópicos
Instalar o dialog
1 |
sudo apt-get install dialog |
Script de manipulação do GPIO do Raspberry
Depois, salve o código em um arquivo. Por exemplo, gpioControl.sh.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#!/bin/sh INPUT=1 OUTPUT=2 LOW=0 HIGH=1 setState(){ [ -L /sys/class/gpio/gpio$PIN ] || { dialog --infobox "O pino nao esta disponivel no sistema. Saindo..." 5 55 return } echo $1 >/sys/class/gpio/gpio$PIN/value } PINS=`for i in 4 6 12 13 16 17 18 19 21 22 23 24 26 27; do echo $i "Pino_$i"; done` PIN=`dialog --title "Do bit Ao Byte - GPIO" --menu "Selecione um pino do header" 15 55 5 $PINS --stdout` [ $? -eq 1 ] && clear && return DIRECTION=`dialog --title "Do bit Ao Byte - Direction" --menu "Selecione direcao" 15 55 5 1 "INPUT" 2 "OUTPUT" --stdout` [ $? -eq 1 ] && clear && return if [ $DIRECTION -eq $OUTPUT ]; then echo "out" >/sys/class/gpio/gpio$PIN/direction STATE=`dialog --title "Do bit Ao Byte - State" --menu "Selecione estado do pino" 15 55 5 0 "LOW" 1 "HIGH" --stdout` [ $? -eq 1 ] && clear && return if [ $STATE -lt $HIGH ]; then setState $LOW else setState $HIGH fi else echo "in" >/sys/class/gpio/gpio$PIN/direction fi |
Então, dê um bit de execução para o script e execute-o como root:
1 2 3 |
chmod 700 gpioControl.sh sudo su ./gpioControl.sh |
Módulo relé
Muita atenção ao conectar o módulo relé. Ele deve ser conectado ao 3V3 devido ao nível lógico dos pinos do Raspberry, que não são tolerantes a 5V. Meu módulo funcionou em 3V3 sem problemas.
Conectei um dos pinos de sinal no GPIO4. Meu módulo relé tem lógica invertida, então ele liga em LOW.
Quando executar o script, você deve ver as seguintes janelas:

Depois, deve selecionar INPUT ou OUTPUT. Se selecionar INPUT, o script termina em seguinda.

E por fim, selecionar o estado. Como meu módulo é lógica invertida, ele aterra no pino de GPIO. Não sei se é mais arriscado drenar corrente ou receber uma tensão de 5V no pino, mas de qualquer modo, lembre-se: Conecte o módulo no pino 3V3.

Dá pra implementar borda para INPUT, dá pra implementar interrupção e mais algumas coisinhas. Só fiz o básico pra, que sabe, servir de motivação para você fazer uma implementação melhor.
Shield expansor de GPIO para Raspberry
E claro, esse shield dá uma bela força pra não errar o wiring. Não precisa de imagem do pinout, nem contar pinos no Raspberry, é só olhar o silk em cima do shield.
Dê uma olhada, acho que você também vai gostar desse shield da UsinaInfo, nesse link.
Siga-nos no Do bit Ao Byte no Facebook.
Prefere twitter? @DobitAoByte.
Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.
Nossos grupos:
Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/
Próximo post a caminho!