sábado, 24 de agosto de 2013

Controlando remotamente un carrito a través de Internet con Raspberry Pi, PHP y PYTHON


Desarrollo de una aplicación web para controlar un carrito con Raspberry Pi, PHP y Python

Contiene:

  • Descripción del Proyecto
  • Explicación del Hardware
  • Explicación del Software
  • Prueba de Funcionamiento





Enlaces

20 comentarios:

  1. Hola, gracias por este video muy bueno, me gustaria saber como haces para cargar el programa en la raspberry para que cuando le das la ip en el Browser "x.x.x.x/control" pues se ejecute, soy nuevo en esto y me gustaria saber como lo hiciste, buen trabajo (y)

    ResponderEliminar
    Respuestas
    1. Hola Camilo. Cordial saludo.
      Se debe primero instalar un servidor web Apache.
      y ahí se crea automáticamente una carpeta en /var/www/ aquí van los proyectos.

      Saludos.

      Si tienes dudas de como instalar el server, mira este vídeo
      http://riverajefer.blogspot.com/2013/06/control-remoto-de-un-led-con-raspberry.html

      Saludos

      Eliminar
    2. Hola Jeferson, muchas gracias por tu ayuda, sin embargo me surge una nueva duda, lo que pasa es que tengo el servidor y todo, solo que cuando conecto todo, pues no se ejecuta la parte de Python y no se manda niguna señal logia de lso puesrtos del GPIO ya que compruebo la funcionalidad de los puertos GPIO por aparte y funciona, pero cunado oprimo los botones de la aplicacion web en el servidor no pasa nada, no se si me hice entender, gracias por tu ayuda

      Eliminar
    3. Hola Camilo.

      El inconveniente que tienes posiblemente es por los permisos, de la carpeta donde está la aplicación...

      Dale todos los permisos a la carpeta y sus archivos internos.

      Saludos



      Eliminar
    4. Hola Jeferson.

      ¿Como podría darle todos los permisos a la carpeta y a los archivos internos?
      Gracias por tu respuesta


      Eliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Hola Jeferson, lo que pasa es que ya modifique los permisos como me indicaste sin embargo aun no me funciona, que me recomiendas?

    Gracias

    ResponderEliminar
    Respuestas
    1. Cuéntame específicamente, cual es el error o problema que tienes...
      Saludos

      Eliminar
    2. Ya tengo el servidor web montado tal y cual lo descargue desde tu pagina, lo monte en la raspberry y todo va bien hasta allí, le otorgue premisos máximos a la carpeta control (sudo chmod 777 -R /var/www/control) sin embargo, al oprimir los botones en el servidor web no ocurre nada, ejecuto en la consola de la raspberry el siguiente comando (sudo python /var/www/control/py/avanza.py) y efectivamente ejecuta el archivo avanza.py y los motores se mueven adelante, ejecuto los demás de la misma forma (retrocede.py, para.py, izquierda.py y derecha.py) y funciona también. Pero por alguna razón que no comprendo no logro hacer ese controlo desde el servidor web, gracias por tu ayuda

      Eliminar
  4. Ya tengo el servidor web montado tal y cual lo descargue desde tu pagina, lo monte en la raspberry y todo va bien hasta allí, le otorgue premisos máximos a la carpeta control (sudo chmod 777 -R /var/www/control) sin embargo, al oprimir los botones en el servidor web no ocurre nada, ejecuto en la consola de la raspberry el siguiente comando (sudo python /var/www/control/py/avanza.py) y efectivamente ejecuta el archivo avanza.py y los motores se mueven adelante, ejecuto los demás de la misma forma (retrocede.py, para.py, izquierda.py y derecha.py) y funciona también. Pero por alguna razón que no comprendo no logro hacer ese control desde el servidor web, gracias por tu ayuda

    ResponderEliminar
  5. Hola Camilo, entiendo tu problema...
    Bueno ensaya primero, dándole permisos 777 a los archivos internos de la carpeta control.

    Si aún no funciona
    dale permisos al grupo que usa apache
    sudo addgroup www-data
    sudo usermod -a -G www-data www-data

    Ensaya con eso, si sigues con problema...
    me cuentas.

    riverajefer@gmail.com

    Saludos

    ResponderEliminar
  6. Hola Jeferson, Pues lo intente y el problema continua, y no logro entender cual es el problema. Estoy abierto a cualquier sugerencia, muchas gracias, agradezco mucho tu ayuda.

    ResponderEliminar
  7. Hola Jeferson
    mira que intente hacer un simple archivo hola_mundo.php que tuviera lo siguiente:

    y cuando le doy http://x.x.x.x/hola_mundo.php, me aparece la pagina en blanco, le doy mirar codigo fuente y me aparece en blanco, busque también el archivo procesa.php y también me muestra en blanco y en código fuente no me aparece nada, ademas le doy "f12" a la pagina donde esta el servidor y la aplicacion web "control" (http://x.x.x.x/control) y le doy "f12", en la parte de Resources despliego la carpeta Frames y me aparecen todos los archivos de la carpeta control excepto el archivo procesa.php, no se tengo el presentimiento de que hay un problema con ese archivo php, aunque si lo quito de la carpeta al oprimir un botón me genera error, no se tu que opines y no se si me hize entender, gracias por tu atención.

    ResponderEliminar
  8. Hola Jeferson, me complace comunicarte que logre resolver el problema no entiendo porque exactamente pero le tuve que agregar al archivo .py lo siguiente:
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BOARD)

    y funciona perfectamente, gracias por tu atención y ayuda.

    que estés muy bien

    ResponderEliminar
    Respuestas
    1. disculpa como solucionaste el problema de que cuando ejecutabas un boton en la pagina web no hacia nada el motor podrias ayudarme

      Eliminar
  9. Hola Jeferson, cordial saludo.

    Ya que pude resolver el problema que tenia, me surgue una nueva duda que me gustaria compartir con usted, me gustaria saber si es posible colocarle un poco de seguridad a la aplicacion web, me refiero a que pida contraseña cuando trate de acceder a ella, si es posible me gustaría saber como hacerlo, espero que sepa hacerlo XD, jeje si es asi me avisa muchas gracias.

    ResponderEliminar
  10. Disculpa, anilizando e investigando tu diagrama de mapa del los pines de para hacer las conexiones a las raspberry pi no es muy sierto segui en invertigado en los foros de www.raspberrypi.org donde encontre y logra comprobar con ayuda del ensedido de led sin sin la ayuda de la programacion solo con lo que entrega la tarjeta el mapa es el que sale en este link http://elinux.org/Rpi_Low-level_peripherals#General_Purpose_Input.2FOutput_.28GPIO.29 donde explican de manera detallada que hace cada pin

    ResponderEliminar
  11. Hola, muy buen día cree el servidor LAMP y le dí permisos 775 tal y como aconsejas en el tutorial pero ahora que quiero ejecutar el control no activa mi carrito desde el lochalhost si lo hace.

    ResponderEliminar
  12. Osea, no tienes acceso desde afuera ?

    Prueba agregando lo siguiente en la consola

    //Añadimos el usuario pi al grupo www-data

    >> sudo usermod -a -G www-data pi

    También


    >> sudo visudo

    // Agregamos el siguiente código al final.

    >> www-data ALL=(root) NOPASSWD:ALL

    Restaurar el servidor

    >> sudo /etc/init.d/apache2 restart


    Me cuenta, si le funciono esto.


    Saludos








    ResponderEliminar
  13. Buen dia probe tu codigo y algo extraño me pasa cuando corro el programa:
    root@raspberrypi:/var/www/html/py# python luces.py
    Gpio encendido
    el programa no me funciona no manda la señal al led y no enciende.
    pero cuando entro directamente a python a colocar las mismas lineas si lo hace:

    >>>import RPi.GPIO as GPIO
    >>>GPIO.setup(7, GPIO.OUT)
    >>>GPIO.output(7, False)

    sabes que puede ser saludos.


    ResponderEliminar