Subido por ramon soto

200920510007 UNIVERSIDAD TECNOLOGICA DE HONDURAS (2)

Anuncio
UNIVERSIDAD TECNOLÓGICA DE
HONDURAS
PRESENTADO POR:
EDLIN SORTO
N° CUENTA:
200920510007
ASIGNATURA:
Inteligencia artificial
CATEDRÁTICO:
Master Norman Alberto Cubilla Rivera
TEMA:
➢ Manual
FECHA:
16 de Julio de 2019
Índice
Introducción .................................................................................................................................. 1
Lenguajes a utilizar ........................................................................................................................ 2
Paso 1 ........................................................................................................................................ 2
Paso 2 ........................................................................................................................................ 3
Paso 3 ........................................................................................................................................ 3
Xrdp: Instalación en máquina remota....................................................................................... 3
Xrdp: Inicio y parada del servicio .............................................................................................. 3
Remmina: Instalar un cliente en la máquina local .................................................................... 3
¿Qué es PHP5? .............................................................................................................................. 4
¿Qué es Apache2? ......................................................................................................................... 4
¿Para qué sirve esta herramienta? ............................................................................................... 8
Herramientas a utilizar .................................................................................................................. 8
Sensor PiR .................................................................................................................................. 8
Análisis del archivo Alarma.py ................................................................................................ 10
Código de la excepción:........................................................................................................... 10
Python alarma2.py .................................................................................................................. 11
Introducción
Hola muy buenas noches, a continuación, vamos a realizar el informe aprendido de la
clase de inteligencia artificial podemos realizar un manual técnico de los pasos a realizar
para:
Vamos a incorporar el conocimiento de programación basada en python que nos va a
permitir manipular un sensor bit que es un sentor de proximidad cuando este detecte la
presencia o el movimiento entonces automáticamente se va a ejecutar un script que va a
tomar una serie de fotos se a programar de tal manera que se envía a un correo electrónico
que nosotros podemos consultar desde nuestra table o móvil o la PC que nos permita
conectar a internet la idea es que nos permita la presencia informando un poquito la
inseguridad, es un proyecto que podemos tener en nuestros hogares como por ejemplo
personas intrusas que probablemente nos diga si hay un ladrón o que hay alguien que
quiera entrar a nuestra casa o empresa o local etc..
1
Lenguajes a utilizar
➢ PHP
➢ Python
➢ HTML
Lo primero que vamos a hacer es entrar a nuestra red raspberry pi, a la cual nosotros
tenemos una cámara y un sensor bit en el cuerpo 17 en el GPIO 17 allí tenemos conectados
nuestro proyecto para poder iniciar
Vamos a iniciar a nuestra raspberry vamos a iniciar de una conexión remota es la 9.9.2.87
para poder ingresar, en este caso ha modificado el archivo interfaz de nuestra placa
electrónica y le colocado que obtenga un IP automáticamente con el propósito que tanto
el cliente en este caso la maquina Windows como la placa raspberry pi tengan acceso a
internet.
Hay varias herramientas en la internet y la de nosotros se llama ¨IP ESCANER¨ nos pide
el usuario que en este caso es PI y la contraseña es raspberry
Estamos conectados en el puerto GPIO 17, luego nos vamos a conectar a Google Chrome,
el sensor U tiene tres patitas la primera es tierra hay que conectar la placa GPIO en tierra
luego está la patita lógica allí vamos a conectarnos directamente al GPIO y la otra es
corrientes en este caso lo hemos contado a la que tiene corriente, más adelante nuestro
programa de python va a detectar y en base a esa detección va a tomar la fotografías puede
encender un foco etc ustedes lo pueden modificar según sus necesidades
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
2
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
Xrdp es una implementación de código abierto de RDP (Remote Desktop Protocol), el
protocolo utilizado por los Servicios de Terminal para la conectividad nativa del escritorio
Xrdp: Instalación en máquina remota
<br />$ sudo apt-get install xrdp<br />
Xrdp: Inicio y parada del servicio
<br />$ sudo service xrdp [start|stop|restart]<br />
Remmina: Instalar un cliente en la máquina local
es un cliente escritorio remoto escrito en GTK, que pretender ser útil para los
administradores de sistemas y los viajeros, que necesiten trabajar mucho con otros
equipos remotos. Remmina soporta protocolos de red múltiples en un interfaz integrado.
Actualmente soporta RDP, VNC, XDMCP y SSH.
<br />$ sudo apt-cache search remmina<br />remmina - remote desktop client for
GNOME desktop environment<br />$ sudo apt-get install remmina<br />
3
¿Qué es PHP5?
Este paquete proporciona el módulo PHP5 para el servidor web Apache 2 (como se
encuentra en el paquete apache2-mpm-prefork). Tenga en cuenta que este paquete
SOLO funciona con el MPM prefork de Apache, ya que no está compilado para
subprocesos.
#sudo apt-get install apache2
¿Qué es Apache2?
software de código libre que se instala normalmente en conjunto para habilitar un
servidor para alojar sitios y aplicaciones web dinámicas. Este término en realidad es un
acrónimo que representa un sistema operativo Linux con un servior Apache. Los datos
del sitio son almacenados en base de datos MySQL y el contenido dinámico es
procesado con PHP.
$ sudo apt -get update
$ sudo apt -get install apache2
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:
4
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:
5
Crearemos una carpeta mediante consola usamos el comando 'mkdir (nombre de carpeta)',
debemos verificar 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'
6
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.
7
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
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.
8
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.
9
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.
10
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 raspi-config
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.
11
Descargar