Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutorial Proyecto Raspberry Pi PDF
Tutorial Proyecto Raspberry Pi PDF
Integrantes:
Alberto Aguilera
Eduardo Arancibia
Paula Lasalas
Fabricio Rosales
Jorge Ortz
La GPIO (General Purpose Input Output) de la raspberry pi posee pines con distintas funciones, los
cuales pueden ser manejados con software y a su vez conectarse a otros hardwares como arduino.
En nuestro caso gestionaremos la GPIO mediante lenguajes de programacin como C y Python,
montaremos un servidor web y lo usaremos como estacin remota para encender luces led a
distancia dentro de una misma red. Luego haremos un proceso parecido para controlar las luces
directamente en la raspberry Pi.
Para el siguiente tutorial se recomienda tener conocimientos previos sobre Python y C.
Comencemos!
#Fijamos los parmetros indicando el numero del pin (ver imagen con
los nmeros por si no esta claro) y si es entrada o salida.
GPIO.setup(10, GPIO.OUT)
#Ahora iniciamos el pin a False para que se encienda el led (Si ponemos
True estara apagado).
GPIO.output(10, False)
Ahora ponemos:
sudo visudo
Reiniciamos el Servidor:
sudo /etc/init.d/apache2 restart
Y listo, ahora solo falta un ltimo paso en lo que es va web que es descargarse una aplicacin que
nos har el trabajo un poco ms fcil.
http://jeffersonrivera.com/pi/led.zip
Carpeta css ->Contiene los archivos de estilos, entre estos, el modelo del interruptor
Carpeta js -> Contiene el script de jQuery 1.9
Carpeta images-> Contiene la imagen de fondo
La web que pondremos ser en cdigo html, el que viene listo y solo hay que modificar para
agregarle las otras 2 luces (y as podemos hacerlo tambin si ponemos mas de 3 luces).
Index.html parte 1:
Index.html parte 2:
Originalmente ese es el cdigo para 1 led, pero nosotros lo que haremos ser encender 3 luces,
por lo que modificaremos este cdigo de la siguiente manera:
Para agregar un interruptor nuevo que vaya dirigido a otra luz distinta no es necesario escribir un
tremendo cdigo de nuevo, solo basta con duplicar (o vale decir copiar y pegar) desde la lnea 13
hasta la 64, es decir:
<div class="container">
<header><br>
<h4>CONTROL REMOTO DE UN LED CON RASPBERRY PI</h4>
.
(Hasta)
.
//alert("Salida: "+response );
}
});
}
});
</script>
Adems de ello, tambin se deben modificar las variables independientes, de otro modo,
podramos terminar usando dos interruptores diferentes para un mismo led, o provocar un
malfuncionamiento en el cdigo.
He aqu una comparacin de la pgina original y la modificada para 3 leds.
El siguiente es procesa.php:
apaga.py
Como se puede apreciar, debemos modificar segn nos convenga el archivo prende.py y apaga.py.
En nuestro caso usaremos 3 leds, en las cuales usaremos 3 GPIO distintas, lo que significa que
tendremos que modificar el cdigo y/o agregar lneas en el caso de la pgina web(como quedo
demostrado anteriormente), hacer un procesa2.php, procesa3.php y que para cada led debe
haber un archivo prende.py y apaga.py, lo cual nos deja por ejemplo con:
Led 1 GPIO10
prende.py y apaga.py
Led 2 GPIO8
prende2.py y apaga2.py
Led 3 GPIO7
prende3.py y apaga3.py
Nota: hay una posibilidad de que esto nos lance algn error, y esto se debe a que nuestra
raspberry no esta actualizada, pero como ello lo hemos hecho en el paso 3 no debiera pasar.
Ahora debemos obtener WiringPi mediante GIT:
sudo git clone git://git.drogon.net/wiringPi
Finalmente, para instalar la librera debemos ingresar a la carpeta wiringPi y ejecutar build:
cd wiringPi
sudo ./build
Luego utilizamos las funciones de esta librera para el control de los leds:
wiringPiSetup(): Esta funcin inicia el sistema wiringPi y asume que ser usado el esquema
de pines wiringpi.
pinMode (int pin, int mode): configura los pines para que sean de entrada o salida (INPUT,
OUTPUT), en este caso en particular usaremos OUTPUT.
digitalRead(int pin): Lee en que estado se encuentra el pin HIGH o LOW (1, 0),
dependiendo de su estado lgico.
digitalWrite(int pin, int estado_logico): Le asigna un estado al pin, sea HIGH o LOW.
Ejemplo:
En un archivo leds.C
ya que estamos trabajando con la librera wiringPi y con el hardware, por lo que necesitamos
permisos del root.
Bibliografa:
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
https://projects.drogon.net/raspberry-pi/wiringpi/functions/
http://riverajefer.blogspot.com/2013/06/control-remoto-de-un-led-con-raspberry.html
http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/turing-machine/two.html
http://es.wikihow.com/hacer-un-servidor-web-Raspberry-Pi
http://jeffersonrivera.com/pi/Proyecto_raspberry_pi.pdf
WEB: http://jeffersonrivera.com/
BLOG: http://riverajefer.blogspot.com/
YOUTUBE: https://www.youtube.com/user/riverajefer