### Switch LED via GPIO

Example of Remote Raspberry Pi Remote Control GPIO using wiringPi GPIO Utility.
The example shows the modes in and out. For others modes, see wiringPi documentation.
An LED is connected to pin 22 (GPIO 3).
Requires
• Library: jkSSH2 (see https://www.b4x.com/android/forum/threads/libary-jkssh2-ssh2-communication-in-b4a.20048/#post-307308) for the remote connection.
• Raspberry Pi: host ip address, port, username and password. Example: 192.168.0.79, 22, pi, raspberry
• Raspberry Pi: GPIO Interface library for the Raspberry Pi (see http://wiringpi.com , http://wiringpi.com/the-gpio-utility/ )
Steps turning LED connected to GPIO3 (Pin 22) on off
The commands executed via a terminal are:
gpio mode 3 out
gpio write 3 1
gpio write 3 0
B4J Code Snippet
' Connect to the Raspberry Pi
SSH.Initialize("SSH", "remoteipaddress", "remoteport")
SSH.authenticateWithPassword("username", "password")
'Set debugoutput to false as debugging not supported by B4J. Debugging is by default using android/utils.
SSH.DebugOutput = False
' Subs to execute remote command
' Run a SHH command remotely
`Sub SHH_CmdRun(cmd As String)
Try
SSH.execCommand(cmd, 22)
Catch
Log($"Error running: ${cmd}, ${LastException.Message}"$)
End Try
End Sub`
' Handle the result of the SSH command.
`Sub SSH_CmdExecuted (Success As Boolean, Result As List, TaskId As Int)
Dim sb As StringBuilder
sb.Initialize
' Handle errors
If Not(Success) Then
Log($"Error running: ${cmd}, ${LastException.Message}"$)
Else
For Each s As String In Result
sb.Append(s).Append(CRLF)
Next
Log(sb.toString)
End If
End Sub`
' Execute the remote commands
' Set pin mode to output
SHH_CmdRun("gpio mode 3 out")
' Turn the pin on by setting to high
SHH_CmdRun("gpio write 3 1")
' Turn the pin off by setting to low
SHH_CmdRun("gpio write 3 0")
' Read the pin state
SHH_CmdRun("gpio read 3")
To get the version of the wiringPi:
SHH_CmdRun("gpio -v")
GPIO Pin Mapping
If instead wPi pin number, the physical pin number should be use, add the -g option to the GPIO command.
For the previous example where a LED is connected to pin 22 (GPIO 3).
gpio -g mode 22 out
gpio -g write 22 1
gpio -g write 22 0
GPIO ReadAll Output Raspberry Pi 2B
pi@33:~ $ gpio readall
+-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+

# | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |

+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+

# | | | 3.3v | | | 1 || 2 | | | 5v | | |

# | 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | |

# | 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | |

# | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 |

# | | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 |

# | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |

# | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |

# | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |

# | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |

# | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |

# | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |

# | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |

# | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |

# | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |

# | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |

# | 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |

# | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |

# | 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |

# | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |

# | | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |

+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+

# | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |

+-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+

Changed: 2018-06-07 09:19, Category: Raspberry Pi Remote Control, File: T6C237M1732.htm, ID: 1732