Raspberry GPIO's Setup

From WLPS Wiki
Jump to navigation Jump to search

At this moment only PTT is working, SQL is a work in progress

Lets consider we are going to use

GPIO 17 (Pin 11) for SQL input

GPIO 20 (Pin 13) for PTT Output

Install wiringpi

sudo apt-get install git-core
sudo git clone https://github.com/WiringPi/WiringPi.git /opt/wiringpi
cd /opt/wiringpi
sudo ./build

Create an initialization file

Create the following file using nano:

sudo nano /usr/local/sbin/Init-GPIO.sh

Add the following code to the file

#!/bin/bash
#script name - Init_GPIO
# SQL Input
gpio -g mode 17 in # makes gpio 17 pin 11 on Raspberry pi 2/3 as input
gpio -g mode 17 up # activates pull-up
# PTT pin (Output)
gpio -g mode 20 out # makes gpio 20 pin 13 as output
gpio -g write 20 0 # Default to 0/Off

After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.

Create the SQL monitoring script

Create the following file using nano:

sudo nano /usr/local/sbin/SQL-wfi.sh
#!/bin/bash
gpio -g mode 17 in
gpio -g mode 17 up
while [ 1=1 ]
do
  # wait int pin to go low
  gpio -g wfi 17 both
    SQL=$(gpio -g read 17)
    if [ "$SQL" = "0" ]; then
#      gpio -g write 20 1
      echo SQL GPIO low/closed
    else
#      gpio -g write 20 0
      echo SQL GPIO high/open
    fi
done

After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.

Make the Init-GPIO and SQL-wfi.sh scripts run at startup

you have to add a line to the rc.local file.

sudo nano /etc/rc.local

Before the exit 0 line you have to add:

# For PTTLink
/usr/local/sbin/Init-GPIO.sh
/usr/local/sbin/SQL-wfi.sh

After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.

Set permissions to execute scripts

cd /usr/local/sbin
sudo chmod +x Init-GPIO.sh
sudo chmod +x SQL-wfi.sh

Test GPIO pins

You can test PTT output by manually setting High or Low the PTT pin.

High:

gpio -g write 20 1

Low:

gpio -g write 20 0

Edit rpt.conf file

Now use nano to edit your rpt.conf file:

sudo nano /etc/asterisk/rpt.conf

On your node number stanza, i.e. [12345] add the following line:

events=events12345;

Then at the end of the file add the following stanza:

[events12345]
gpio -g write 20 1 = S|T|RPT_TXKEYED;
gpio -g write 20 0 = S|F|RPT_TXKEYED;

After making your changes type <CTRL> + <X> and then type <Y> followed by <Enter>. You will be back to the previous menu and choose <Back>.