This software let you configure GPIO channels and send each new state to an API.
Installation process is really simple, the program needs the following dependencies :
To install them on raspbian :
sudo aptitude install python python-virtualenv python-pip
After that, you can install PY2GPio :
cd /opt git clone cd py2gpio virtualenv . source bin/activate pip install -r requirements.txt
To run the program you need, to activate the virtualenv and to run run.py :
source bin/activate python run.py
to exit the virtualenv just type
deactivate in your console.
For a real environnement you probably need to let the script running, I advise you to use supervisord.
You can use the following configuration file (put in : /etc/supervisord/conf.d/) :
[program:py2gpio] autorestart = true autostart = true startsecs = 0 command = /opt/py2gpio/bin/python /opt/py2gpio/run.py startretries = 1 environment=PY2GPIO_CONFIG="/opt/py2gpio/config.ini",PY2GPIO_CHANNEL="/opt/py2gpio/channels.ini"
and run supervisorctl
supervisorctl start py2gpio
Two config file, need to be present :
- config.ini (which define global settings)
- channels.ini (for the gpio to monitor)
This file contain only two sections with one key for each one.
general section contain a
debug key which can bet set to
off to enable or disable debug logging.
api section contain a
url key with the url of the API endpoint where the status will be pushed. You can specify a
$id which will be replaced by the id key of the channel when the event will be triggered and a
$value which will be replaced by the value on the gpio when triggered.
You can take a look at the
config.ini.dist to have a real working example.
Each section of this file represent a gpio pin. The pin numbering schema used is the BCM one (take a look here for more informations).
Each section can have the following keys :
- id (will replace the
$idin the api url)
- mode (default: IN)
- pull_up_down (default: off)
- event (default: RISING)
Take a look at the
channels.ini.dist for a real working example.