Raspberry GPIO's Setup: Difference between revisions

From WLPS Wiki
Jump to navigation Jump to search
mNo edit summary
Line 126: Line 126:
Then at the end of the file add the following stanza:
Then at the end of the file add the following stanza:


[events12345]
<pre>
sudo /usr/local/sbin/PTT-GPIO-high.sh = S|T|RPT_TXKEYED;
[events12345]
sudo /usr/local/sbin/PTT-GPIO-low.sh = S|F|RPT_TXKEYED;
gpio -g write 20 1 = S|T|RPT_TXKEYED;
gpio -g write 20 0 = S|F|RPT_TXKEYED;
</pre>


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>'''.
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>'''.

Revision as of 22:09, 10 March 2022

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 27 (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 27 out # makes gpio 27 pin 13 as output
gpio -g write 27 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 27 1
      echo SQL GPIO low/closed
    else
      gpio -g write 27 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>.

Create Event files

now create the following file using nano:

sudo nano /usr/local/sbin/PTT-GPIO-high.sh

Add the following lines to the file, in this example I am using GPIO 27 which is assigned to pin 13 on a Raspberry Pi Model 2/3.

#!/bin/bash
gpio -g write 27 1

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>.

Next create the following file using nano:

sudo nano /usr/local/sbin/PTT-GPIO-low.sh

Add the following lines to the file, in this example I am using GPIO 27 which is assigned to pin 13 on a Raspberry Pi Model 2/3.

#!/bin/bash
gpio -g write 27 0

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
sudo chmod +x PTT-GPIO-high.sh
sudo chmod +x PTT-GPIO-low.sh

Test GPIO pins

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

High:

sudo /usr/local/sbin/PTT-GPIO-high.sh

Low:

sudo /usr/local/sbin/PTT-GPIO-low.sh

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>.