Raspberry GPIO's Setup: Difference between revisions

From WLPS Wiki
Jump to navigation Jump to search
m (Wodie moved page ASL Raspberry GPIO's Setup to PTTLink Raspberry GPIO's Setup without leaving a redirect)
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
= At this moment only PTT is working, COR is a work in progress =
= At this moment only PTT is working, SQL is a work in progress =


Lets consider we are going to use
Lets consider we are going to use


GPIO 17 (Pin 11) for COR input  
GPIO 17 (Pin 11) for SQL input  


GPIO 27 (Pin 13) for PTT Output
GPIO 20 (Pin 13) for PTT Output


= Install wiringpi =
= Install wiringpi =
Line 24: Line 24:
  #!/bin/bash
  #!/bin/bash
  #script name - Init_GPIO
  #script name - Init_GPIO
  # COR Input
  # SQL Input
  gpio -g mode 17 in # makes gpio 17 pin 11 on Raspberry pi 2/3 as 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
  gpio -g mode 17 up # activates pull-up
  # PTT pin (Output)
  # PTT pin (Output)
  gpio -g mode 27 out # makes gpio 27 pin 13 as output
  gpio -g mode 20 out # makes gpio 20 pin 13 as output
  gpio -g write 27 0 # Default to 0/Off
  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>'''.
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 COR monitoring script =
= Create the SQL monitoring script =


Create the following file using nano:
Create the following file using nano:


  sudo nano /usr/local/sbin/COR-wfi.sh
  sudo nano /usr/local/sbin/SQL-wfi.sh


#!/bin/bash
<pre>
gpio -g mode 17 in
#!/bin/bash
gpio -g mode 17 up
gpio -g mode 17 in
while [ 1=1 ]
gpio -g mode 17 up
do
while [ 1=1 ]
  # wait int pin to go low
do
  gpio -g wfi 17 both
  # wait int pin to go low
    COR=$(gpio -g read 17)
  gpio -g wfi 17 both
    if [ "$COR" = "0" ]; then
    SQL=$(gpio -g read 17)
      gpio -g write 27 1
    if [ "$SQL" = "0" ]; then
      echo COR GPIO low/closed
#      gpio -g write 20 1
    else
      echo SQL GPIO low/closed
      gpio -g write 27 0
    else
      echo COR GPIO high/open
#      gpio -g write 20 0
    fi
      echo SQL GPIO high/open
done
    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>'''.
</pre>
 
= 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>'''.
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 COR-wfi.sh scripts run at startup =
= Make the Init-GPIO and SQL-wfi.sh scripts run at startup =


you have to add a line to the rc.local file.
you have to add a line to the rc.local file.
Line 90: Line 68:
Before the '''exit 0''' line you have to add:
Before the '''exit 0''' line you have to add:


  # For AllStarLink
  # For PTTLink
  /usr/local/sbin/Init-GPIO.sh
  /usr/local/sbin/Init-GPIO.sh
  /usr/local/sbin/COR-wfi.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>'''.
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>'''.
Line 98: Line 76:
= Set permissions to execute scripts =
= Set permissions to execute scripts =


cd /usr/local/sbin
<pre>
sudo chmod +x Init-GPIO.sh
cd /usr/local/sbin
sudo chmod +x COR-wfi.sh
sudo chmod +x Init-GPIO.sh
sudo chmod +x PTT-GPIO-high.sh
sudo chmod +x SQL-wfi.sh
sudo chmod +x PTT-GPIO-low.sh
</pre>


= Test GPIO pins =
= Test GPIO pins =
Line 109: Line 87:


High:
High:
sudo /usr/local/sbin/PTT-GPIO-high.sh
<pre>
gpio -g write 20 1
</pre>


Low:
Low:
sudo /usr/local/sbin/PTT-GPIO-low.sh
<pre>
gpio -g write 20 0
</pre>


= Edit rpt.conf file =
= Edit rpt.conf file =
Line 126: Line 108:
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>'''.

Latest revision as of 22:15, 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 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>.