Asignatura: INTELIGENCIA ARTIFICIAL Presentado por: Ethan Ariel Diaz Hernández Cuenta: 201510020106 Tarea: Manual Técnico Vídeo 3 y 4 La Ceiba Atlántida 15 de Julio del 2019 Manual técnico del vídeo 3 y 4 Lenguajes a utilizar 1. PHP 2. Python 3. HTML Paso 1 Nos dirigimos a las configuraciones de red y en esta parte buscamos la opción en donde podamos colocar la IP de nuestra Rasperry, para poder hacer esto ingresamos a los protocolos TCP/IP de nuestra PC Paso 2 Al terminar esto verificamos la IP haciendo Ping 10.56.48.124 -t. Dependiendo cual sea la IP en nuestro caso. Paso 3 Nuestro siguiente paso seria instalar paquetes muy importantes para poder utilizar nuestra aplicación. #sudo apt-get install xrdp ¿Qué es XRDP? Es una implementación de código abierto de RDP (Remote Desktop Protocol), el protocolo utilizado por los Servicios de Terminal de Windows para la conectividad nativa del escritorio Windows. #sudo apt-get install php5 ¿Qué es PHP5? Primeramente tenemos que saber que el php5 es una versión de php, el cual es un lenguaje de programación de propósito general de código del lado del servidor originalmente diseñado para el preprocesado de texto plano en UTF-8. #sudo apt-get install apache2 ¿Qué es Apache2? Es un servidor web HTTP de código abierto, este nos va a permitir usar y configurar el servidor. Una vez que instalamos los paquetes que vamos a utilizar accedemos a nuestro sistema de forma gráfica utilizando nuestro Acceso Remoto. Podemos usar dos formas para acceder remotamente una utilizando la conexión remota de Windows o con un programa llamado PuTTY. Colocar la dirección IP que tiene asignada la placa, esta placa puede cambiar ya que si la conectamos con un router, este le puede asignar una IP dinámica mediante el servicio de DHCP, ya sabiendo la IP solo debemos colocarla en el espacio designado, dar clic en open o conectar. El siguiente paso sería acceder al sistema de nuestra Rasperry como super usuario utilizando el comando: SUDO SU El servidor web que instalamos posee unos archivos, lo que necesitamos para verificar los estados del GPO. Vamos a monitorear mediante un gestor web webIOPi. que permite visualizar una entrada una salida, visualizar cuales son los pines denominados para tierra o parte eléctrica, y toda la distribución, los 26 pines Rasperry b+ y 42 para una Rasperry 2 o 3. Para instalar el webIOPi 0.7.0: Cd opt cd / opt ls: para listar los archivos Se descarga de forma gz y nos toca desempaquetar. Luego cd webIOPi-0.7.0 ls: para listar los archivos ./setup.sh Luego dentro de la carpeta hay un archivo que nos va a tocar ejecutar, es muy importante tener internet en nuestra Rasperry y lo hacemos mediante Chrome con el puerto 8000 que es con el que se ingresa. Una vez en el navegador ingresamos a: GPIO HEADER: y nos muestra lo que es todo el encabezado de nuestra página con sus pines con sus estados. Seguidamente nos mostrara la siguiente interface: Crearemos una carpeta mediante consola usamos el comando 'mkdir (nombre de carpeta)', debemos verificar de que nos localizamos en la dirección '/var/www' al momento de hacer dicha carpeta, de lo contrario podemos tener ciertos problemas en un futuro. Después crear la carpeta debemos asignar y declarar ciertos permisos a la carpeta, ya que nosotros vamos a insertar los archivos que descargamos, al ser archivos externos, puede que no nos permita hacer ciertas acciones de pegar los archivos, para asignar estos permisos, lo hacemos con el comando 'chmod -R 777 (Y el nombre de la carpeta que acaban de crear)'. Nuestro siguiente paso va a ser configurar al usuario que utilizara nuestro servidor web, dicho perfil de usuario se llama 'www-data' debemos ejecutar en consola el comando 'visudo', ya que el perfil que acabamos de mencionar no cuenta con todos los permisos para poder personalizar algunos documentos. Entonces, para ello, debemos escribir lo siguiente: 'www-data ALL=(ALL) NOPASSWD: ALL' Abrimos el documento prueba.php y vamos a ver un archivo en donde estará el llamado de los procesos a ejecutarse para que nuestro proyecto funcione, tenemos los combos en donde vamos a encender, entonces mandamos a llamar los script de cada uno utilizando un if simple y agregándolo de la siguiente manera: exec("sudo Python /var/www/app/encender1.py") y así vamos a ir agregando sucesivamente y al final apagamos el foco exec(" /./var/www/foco1.sh") y después usamos el header("location:inicio.html") para retornar al momento de ejecutar el programa. Ahora procederemos al manual técnico para poder configurar lo que son los sensores en nuestro proyecto. Primeramente, accedemos a nuestra Rasperry remotamente, es importante establecer la Ip solo que en este caso vamos a utilizar una herramienta llamada Advanced IP Scanner. ¿Para qué sirve esta herramienta? El programa escanea todos los dispositivos de red, le da acceso a las carpetas compartidas y a los servidores FTP, le proporciona control remoto de las computadoras (mediante RDP y Radmin) e incluso puede apagar las computadoras de manera remota. Presionamos en función de Explorar para poder ver dispositivos conectados a la misma red y así podemos ver la Ip con la cual vamos a conectarnos remotamente. Herramientas a utilizar 1. Sensor PiR Su componente principal son los sensores piroeléctricos. Se trata de un componente electrónico diseñado para detectar cambios en la radiación infrarroja recibida. Vamos a utilizar el GPIO 17 y mandarle lo que son 5 voltios, accedemos a la Ip para poder ver lo que son la disponibilidad de las GPIO de nuestra placa y ver si podemos usar nuestro sensor PiR. Sí ingresamos y vemos que sale en color negro significa que por defecto esta apagado. Ingresamos como super usuario usando: SUDO SU. Accedemos a la carpeta de proyecto y vamos a ver archivos con el nombre de Alarm2.py correo.sh apagar_alarma2.py foto.sh. Ingresamos a documento de Alarm2.py utilizando el comando PICO que es para poder editar, vamos a observar librerías como: import subprocess import time import pygame import RPI.GPIO as GPIO Para poder utilizar lo que es el valor lógico de PIN 17 del GPIO, utilizaremos la siguiente línea de código GPIO_PIR=17 y configuramos este pin como Pin de entrada GPIO.SETUP(GPIO_PIR, GPIO.IN) Lo utilizaremos de esta manera ya que al momento que el sensor detecte movimiento este lo va a agregar como 1 Lógico y se captura como entrada. Al terminar de realizar esto guardamos los cambios dentro del documento presionando Ctrl+O. Después ingresamos a nuestro documento de foto.sh, utilizando el comando pico foto.sh ahí podemos observar el siguiente código el cual nos permite guardar las imágenes al momento que el sensor se activa. Al verificar que todo esté bien configurado nos dirigimos a la parte de Alarm2.py para así poder ver la parte en que hacemos el llamado del process de tomar foto utilizando el método subprocess. call () y a través de esto hacemos el llamado del documento en donde tenemos la foto.sh Análisis del archivo Alarma.py Subprocess: es una las nuevas librerías que estamos explorando, esta nos permite ejecutar programa. Time: librería de tiempo Pygame: esta librería que nos permite incorporar audios o videos a nuestros programas. Rpi.GPIO as GPIO: con esta librería controlamos los GPIO y se le coloca un alias. While True: mientras algo sea verdadero se puede realizar cierta acción con otros comandos que es lo que se está haciendo en el código proporcionado por el ingeniero. Para ejecutar un programa o mejor dicho un subprograma lo hacemos con el siguiente código: Subprocess.call("/./home/pi/proyecto/foto.sh") dentro de las comillas siempre pondremos la ruta del programa que queramos ejecutar, es decir, primero tenemos que estar seguros de la ubicación de dicho archivo para mandarlo a ejecutar a través de código. Otra de las nuevas implementaciones de código que noté es que empezamos a utilizar las excepciones en este archivo. Código de la excepción: Try: Except KeyboardInterrupt: - Donde los dos puntos significan entonces. Este bloque try será interrumpido por teclado. Cualquier tecla que presionemos interrumpirá la ejecución. Se utilizaron las banderas status0 y status1 para validar por medio de IFs y Whiles el estado del GPIO17 y así mismo capturar el valor que este genera cuando el sensor detecta radiación infrarroja de un objeto o persona. El valor que se genera es el de un 1 lógico. GPIO.cleanup () – comando para limpiar los pines y poner su valor por defecto. Vamos a ejecutar el programa seria de la siguiente manera: Python alarma2.py al ejecutarlo nos va a mostrar un mensaje listo, mientras el sensor no detecte movimiento el GPIO va a salir 0, pero ya cuando lo detecte nos mostrara el mensaje de Se ha detectado movimiento y se va a tomar las fotos, después nos dirigimos a la carpeta proyecto para poder ver las fotos que se han tomado. Es importante antes de conectar la cámara ejecutar un comando que se llama raspiconfig que en el menú nos mostrara una opción habilitar cámara ENABLE CAMERA y en este habilitamos el soporte para Rasperry camera y habilitamos la conexión serial y reiniciamos para poder habilitar los cambios y así nos va a funcionar nuestro proyecto.