Controla el GPIO vía WEB
Publicado en septiembre de 2018Controlar 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
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:
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.
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.
Copyright © 2024 desde 2016. Todos los derechos reservados | Diseño JaviPSantos