1) Crear un servidor Apache de páginas web
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5
sudo service apache2 restart
2) Dar permisos de acceso
6) Asignaremos como propietarios mediante ssh al usuario y grupo www-data; lo añadiremos al grupo gpio, y acto seguido reiniciaremos para aplicar los cambios.
ssh pi@192.168.1.* -C sudo chown www-data:www-data /var/www/html/index.php
ssh pi@192.168.1.* -C sudo usermod -a -G gpio www-data
ssh pi@192.168.1.* -C sudo reboot
3) Hacer las conexiones entre el sistema de relés y la Pi
Raspberry PI Modelo B+/2/3
Modulo relés de cuatro canales |
|
+ 5V | + 5V |
GPIO 4 |
IN 1 |
GPIO 17 |
IN 2 |
GPIO 27 |
IN 3 |
GPIO 22 |
IN 4 |
GND | GND |
4) Generar un archivo index.php, en el directorio de la pi: /var/www/html/
Código para guardar como index.php
<html> <!--Panel de control - Sistema domotico libre para un relé de 4 salidas--> <!--Escrito para un relé de 4 canales IN1 al IN4 y acoplarlo con la Raspberry Pi A+/B+ --> <!--IDEA ORIGINAL DE: Peatonet http://www.peatonet.com/raspberry-pi-implementando-un-sistema-domotico-asequible-parte-iii/ --> <!--MODIFICADO POR: Carlos Ávalos. https://chitoraspberrypi.blogspot.com.es/ --> <head> <title>Panel de control - Sistema domotico libre para un relé de 4 salidas</title> </head> <!--VISUALIZACIÓN DE LOS BOTONES EN LA WEB Y CREACIÓN DE LAS VARIABLES TABLA 2X2--> <body> <div align="center"> <br></br> <!--GPIO4/IN1--> <form action="" method="post"> Interruptor 01 <input type="submit" name="encender4" value="Encender"> <input type="submit" name="apagar4" value="Apagar"> <!--GPIO17/IN2--> <form action="" method="post"> Interruptor 02 <input type="submit" name="encender17" value="Encender"> <input type="submit" name="apagar17" value="Apagar"> <br></br> <!--GPIO27/IN3--> <form action="" method="post"> Interruptor 03 <input type="submit" name="encender27" value="Encender"> <input type="submit" name="apagar27" value="Apagar"> <!--GPIO22/IN4--> <form action="" method="post"> Interruptor 04 <input type="submit" name="encender22" value="Encender"> <input type="submit" name="apagar22" value="Apagar"> </div> </body> </html> <!--FUNCIONES EN PHP DE LOS BOTONES--> <?php // Funciones PHP del pin GPIO 4 if ($_POST[encender4]) { $a- exec("echo 4 > /sys/class/gpio/export"); $a- exec("echo out > /sys/class/gpio/gpio4/direction"); $a- exec("echo 0 > /sys/class/gpio/gpio4/value"); echo $a; } if ($_POST[apagar4]) { $a- exec("sudo echo 1 > /sys/class/gpio/gpio4/value"); $a- exec("echo 4 > /sys/class/gpio/unexport"); echo $a; } // Funciones PHP del pin GPIO 17 if ($_POST[encender17]) { $a- exec("echo 17 > /sys/class/gpio/export"); $a- exec("echo out > /sys/class/gpio/gpio17/direction"); $a- exec("echo 0 > /sys/class/gpio/gpio17/value"); echo $a; } if ($_POST[apagar17]) { $a- exec("sudo echo 1 > /sys/class/gpio/gpio17/value"); $a- exec("echo 17 > /sys/class/gpio/unexport"); echo $a; } // Funciones PHP del pin GPIO 27 if ($_POST[encender27]) { $a- exec("echo 27 > /sys/class/gpio/export"); $a- exec("echo out > /sys/class/gpio/gpio27/direction"); $a- exec("echo 0 > /sys/class/gpio/gpio27/value"); echo $a; } if ($_POST[apagar27]) { $a- exec("sudo echo 1 > /sys/class/gpio/gpio27/value"); $a- exec("echo 27 > /sys/class/gpio/unexport"); echo $a; } // Funciones PHP del pin GPIO 22 if ($_POST[encender22]) { $a- exec("echo 22 > /sys/class/gpio/export"); $a- exec("echo out > /sys/class/gpio/gpio22/direction"); $a- exec("echo 0 > /sys/class/gpio/gpio22/value"); echo $a; } if ($_POST[apagar22]) { $a- exec("sudo echo 1 > /sys/class/gpio/gpio22/value"); $a- exec("echo 22 > /sys/class/gpio/unexport"); echo $a; } ?>
5) Trasladarlo desde su ubicación actual al escritorio de la Pi
Moverlo del directorio Pi al directorio apache
scp index.php pi@192.168.1.*:/home/pi/
ssh pi@192.168.1.* -C sudo mv /home/pi/index.php /var/www/html/
Programación en bash
Encender
#!/bin/bash
#enciende.sh
#Exportamos el PIN deseado
echo 17 > /sys/class/gpio/export
#Establecemos la direccion (salida o entrada)
echo out > /sys/class/gpio/gpio17/direction
#Activamos la salida del rele dandole un valor de 1 al bit
echo 1 > /sys/class/gpio/gpio17/value
Apagar
#!/bin/bash
#apaga.sh
#Apagamos la salida del rele
echo 0 > /sys/class/gpio/gpio17/value
#Liberamos el PIN asociado
echo 17 > /sys/class/gpio/unexport
Parpadear#!/bin/bash
#parpadea.sh
#Exportamos el PIN deseado
echo 17 > /sys/class/gpio/export
#Establecemos la direccion (salida o entrada)
echo out > /sys/class/gpio/gpio17/direction
#Activamos la salida del rele dandole un valor de 1 al bit, y lo desactivamos 5 veces
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
#Liberamos el PIN asociado
echo 17 > /sys/class/gpio/unexport
Fuentes:
- Peatonet. Fuente :http://www.peatonet.com/raspberry-pi-y-los-pines-gpio-implementando-domotica-asequible-parte-i/
Comentarios
Publicar un comentario