¿Nos ayudas a pagar el Hosting?

Compartir en facebook Compartir en google+ Compartir en twitter Compartir en pinterest Compartir en linkedin

Controla el GPIO vía WEB

Publicado en septiembre de 2018

Controla el GPIO de tu Orange Pi vía WEBControlar las entradas y salidas del GPIO de una placa Orange Pi desde una página WEB nunca ha sido tan fácil. Activa y desactiva dispositivos remotamente con Orange Pi. Para aprender más sobre el GPIO, lee este artículo y este.

Que necesitas:

Para esta práctica nos sirve cualquier placa de la familia Orange Pi con un sistema Armbian actualizado. Lo primero que vamos a instalar son unas herramientas necesarias para usar Python:

sudo apt-get install python-pip
sudo apt-get install python-dev python-setuptools swig

Como servidor vamos a usar una herramienta que ya hemos usado previamente en esta web. Se llama flask y es muy sencilla de utilizar. Para instalar:

sudo pip install flask

Ahora vamos a instalar la librería WiringOP para controlar el GPIO y de la que ya hemos hablado antes:

git clone --recursive https://github.com/lanefu/WiringPi-Python-OP.git
cd WiringPi-Python-OP
cd WiringPi
sudo ./build
cd ..
swig2.0 -python wiringpi.i
sudo python setup.py install

Ya sólo nos falta la perla final, el corazón del sistema. La librería webioOP. El código no está publicado en GitHub, nuestra principal fuente de sabiduría, pero se puede descargar desde aquí:

cd ~/WiringPi-Python-OP 
wget http://nopnop2002.webcrow.jp/OrangePiPC/flask/webioOP.tar

Descomprime con tar:

tar xvf webioOP.tar

Te recomiendo que abras el archivo webioOP.py para ver un poco lo que hace. En las últimas líneas tenemos:

return render_template('webioOP.html', **templateData)

if __name__ == "__main__":
   if DEBUG == 1: app.run(host='0.0.0.0', port=80, debug=True)
   if DEBUG == 0: app.run(host='0.0.0.0', port=80, debug=False)

Donde webioOP.html es la página que va a abrir y que podremos customizar a nuestro gusto y poner unos botones para ejecutar las acciones en vez del (feo) texto plano actual. Aquí también vemos el puerto, 80 por defecto, pero que podemos cambiar y poner otro. Para ejecutarlo lanza:

sudo python webioOP.py
Servidor WEB Flask

Accede con un navegador desde cualquier dispositivo de tu red a la dirección de tu Orange Pi, la mía es 192.168.1.229:

Controla el GPIO vía WEB

Si has cambiado el puerto no olvides añadirlo después de la dirección seguido de :.

Ya tienes el control de tu GPIO e información en pantalla sobre el estado de todos los pines. Ahora puedes configurarlos de entrada o de salida y ponerlo a 1 o a 0 pulsando sobre INPUT, OUTPUT, turn on y turn off. Fácil ¿verdad?.

Si quieres ponerlo Online para acceder desde fuera de tu red interna, usa esta guía. Si no tienes IP fija en tu router, usa esta guía. Si publicas el sistema para acceder desde fuera, es muy importante que securices el sistema. Lee esta información para añadir seguridad en flask. También puedes usar Apache y PHP si te encuentras más cómodo para securizar el sistema.

Controla el GPIO vía WEB, entradas y salidas

Espero que te haya sido de utilidad, no dudes en escribir un comentario si ves algún error o si puedo ayudarte.


Utiliza este espacio si quieres añadir algún comentario adicional o si tienes alguna duda.
No olvides añadir tu distribución y tu placa.

Todos los comentarios serán validados antes de su publicación.

Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2018 desde 2016. Todos los derechos reservados | Diseño JaviPSantos

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

OK | Más información