¿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.

Iñaki

Hola y gracias por el trabajo y compaortirlo!!!!
Siguiendo las instrucciones todo bien hasta llegar a "swig2.0 -python wiringpi.i"
tras este comando obtengo el siguiente error:
"Could not find the database of available applications, run update-command-not-found as root to fix this swig2.0: command not found"

Ando un poco pez y no se como seguir.....


Administrador OrangePiWeb.es

Hola Iñaki. ¿Has ejecutado el comando que te devuelve el error?

sudo update-command-not-found

Quizás con eso se soluciona. Dime que versión de SO estás usando y que placa a ver si podemos avanzar.


PEpe

Hola, tengo una pregunta funcionaría con un orange pi en el que tengo instalado unbuntu 16.04
GRacias


Administrador OrangePiWeb.es

Hola PEpe.
Debería funcionar. Pruébalo y nos dices como te ha ido.
Saludos.


SinEt

Buenas!
Se que el artículo es de 2018, y que ha llovido mucho desde entonces.
Estoy probando la primera línea y directamente me salta el siguiente mensaje E: Unable to locate package python-pip
Estoy trabajando con una Orange Pi Zero 2 con la Imagen de Ubuntu que nos proporciona Orange Pi (por el momento, esta placa no es compatible con Armbian).

¿Alguna idea si hay que actualitzar los comandos a ejecutar?

Gracias!


Administrador OrangePiWeb.es

Hola SinEt. La pregunta que haces está más relacionada con Linux que con Orange Pi. Te está diciendo que no encuentra el paquete python-pip. Haz una búsqueda en Google para ver como instalar ese paquete en tu distribución y sigue adelante.
Armbian tiene una versión de test para esta placa. Quizás deberías probarla. Saludos.


Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2021 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