Вы находитесь на странице: 1из 68

“Año del Diálogo y la Reconciliación Nacional”

UNIVERSIDAD NACIONAL DE INGENIERÍA


FACULTAD DE INGENIERÍA MECÁNICA

Guía del Proyecto

Título: Analizador de Señales Sísmicas

Integrantes: Taypicahuana Loza, Ernesto Alonso


Quispe Velázquez Brian,

Curso: Sistemas Embebidos – MT136


Sección: A
Profesor: Ing. Oliden Martínez, José
Entrega: 21 de diciembre del 2018

2018-II
Analizador de Señales
Sísmicas
Contenido
ÁREA ELECTRÓNICA .................................................................................................................. 4
Sistema embebido local ........................................................................................................ 4
Sistema embebido para internet ........................................................................................... 4
Implementación .................................................................................................................... 4
ÁREA MECÁNICA ....................................................................................................................... 5
Diseño mecánico ................................................................................................................... 5
Implementación del módulo ................................................................................................. 6
ÁREA DE PROGRAMACIÓN ........................................................................................................ 8
Sistema implementado ......................................................................................................... 8
Diagrama de flujo para el sistema ......................................................................................... 9
Programación para el sistema embebido (área local) .......................................................... 11
• C compiler ............................................................................................................... 11
• Matlab ..................................................................................................................... 13
para el sistema embebido (área de internet) ....................................................................... 14
• ¿HTTP para IOT? ...................................................................................................... 14
• Protocolo MQTT: Creación del Servidor por CLOUDMQTT ........................................ 14
• IDE de Arduino para el NodeMCU y ESP8266 (configuración y código) ..................... 20
Programación del Servidor WEB .......................................................................................... 31
• Obteniendo hosting y dominio gratis ....................................................................... 31
• Utilización de Brackets ............................................................................................. 39
• Estructuras de las páginas (Lenguaje HTML) ............................................................. 42
• Diseño estético de las páginas (Lenguaje CSS) .......................................................... 43
• Bondades del FileZilla .............................................................................................. 45
Programación del Proyecto 1: envío de datos para graficarlo online .................................... 48
• Recepción de datos del MQTT (Lenguaje JavaScript) ................................................ 48
• Realización de gráficos (Highcharts) ......................................................................... 49
• Limitantes del Proyecto 1 ........................................................................................ 50
Programación del Proyecto 2: envío de datos para una base de datos y graficarlos ............. 53
• Instalación de WampServer ......................................................................................... 53
• Utilización de phpmyadmin (base de datos en área local) ............................................ 55
• Envió de datos a la base de datos del servidor local (Lenguaje PHP)............................. 56
• Gráficos de los datos desde la base de datos (Highcharts con PHP) .............................. 60
• Ajustes de la configuración de MySQL para la base de datos del servidor Web ............ 64
• Hallando su aceleración por Excel ................................................................................ 66
• Utilización de Matlab para el procesamiento ............................................................... 68
ÁREA ELECTRÓNICA

Sistema embebido local

• Uso de microcontrolador PIC16F877A

• Utilización del acelerómetro MPU6050

• FTDI para la comunicación serial entre la computadora

Sistema embebido para internet

• Uso de microcontrolador NodeMCU con ESP8266 incorporado

• Utilización del acelerómetro MPU6050

• Un switch para indicar la entrada en alta o en baja de un puerto

Implementación

Circuitos implementados. A la izquierda se encuentra el circuito de


muestreo y a la derecha el circuito para reproducir la señal.
ÁREA MECÁNICA

Diseño mecánico

El diseño mecánico utilizado consiste en un módulo con un mecanismo piñón - cremallera, el


cual nos permite convertir el desplazamiento lineal en desplazamiento angular.

Este mecanismo se encuentra presente tanto en el módulo de muestreo como en el de


reproducción. En el módulo de muestreo nos permite convertir la vibración superficial en un a
vibración angular que será muestreada mediante nuestro sensor MPU6050. En el módulo de
reproducción nuestro mecanismo se encargará de convertir el giro del motor en movimiento
lineal.

Engranaje en el que va incrustado el acelerómetro que nos permitirá medir las


vibraciones angulares
Implementación del módulo

Módulo en el que va fijado un


acelerómetro para captura las
aceleraciones superficiales

Módulo diseñado para


reproducir las señales
vibratorias

Placa dentada que forma


parte del mecanismo
piñón - cremallera
Los planos de nuestro diseño mecánico se realizaron en el software AutoCAD.
ÁREA DE PROGRAMACIÓN

Sistema implementado

Esquemático del sistema implementado. Se puede dividir en 3 módulos:


Módulo de muestreo, Módulo de comunicación a internet y Módulo de simulación

Esquemático del algoritmo Esquemático del algoritmo


implementado con el sensor implementado con el actuador
Diagrama de flujo para el sistema
Programación para el sistema embebido (área local)

• C compiler
Se implementó un código que consistía en recibir la señal muestreada por un
acelerómetro ubicada en nuestro módulo de simulación. Este código nos permitía
obtener la aceleración en X de nuestro acelerómetro para después enviarlo a un
ordenador mediante comunicación serial RS232 y poder comparar la señal simulada con
la señal con la obtenida en el módulo del muestreador.

LIBRERÍA "mpu6050lite.c"
#define W_DATA 0xD0 //REGISTROS NECESARIOS
#define R_DATA 0xD1 //PARA EL MPU6050
#define PWR_MGMT_1 0x6B
#define PWR_MGMT_2 0x6C
#define SMPRT_DIV 0x19
#define CONFIG_R 0x1A
#define GYRO_CONFIG 0x1B
#define ACCEL_CONFIG 0x1C
#define ACCEL_XOUT_H 0x3B
#define ACCEL_XOUT_L 0x3C
#define ACCEL_YOUT_H 0x3D
#define ACCEL_YOUT_L 0x3E
#define ACCEL_ZOUT_H 0x3F
#define ACCEL_ZOUT_L 0x40
#define TEMP_OUT_H 0x41
#define TEMP_OUT_L 0x42
#define GYRO_XOUT_H 0x43
#define GYRO_XOUT_L 0x44
#define GYRO_YOUT_H 0x45
#define GYRO_YOUT_L 0x46
#define GYRO_ZOUT_H 0x47
#define GYRO_ZOUT_L 0x48

void mpu6050_write(int add, int data){ //FUNCIÓN PARA ESCRIBIR SOBRE EL


i2c_start(); //MPU6050
i2c_write(W_DATA); //ÚTIL PARA CALIBRAR EL SENSOR
i2c_write(add);
i2c_write(data);
i2c_stop();
}

int16 mpu6050_read(int add){ //FUNCIÓN PARA LEER LOS VARIABLES


int retval; //MEDIDAS POR EL MPU6050
i2c_start();
i2c_write(W_DATA);
i2c_write(add);
i2c_start();
i2c_write(R_DATA);
retval=i2c_read(0);
i2c_stop();
return retval;
}

void mpu6050_init(){ //FUNCION QUE NOS PERIMITE INICIALIZAR


mpu6050_write(PWR_MGMT_1, 0x80); //NUESTRO MPU6050
delay_ms(100);
mpu6050_write(PWR_MGMT_1, 0x00);
delay_ms(100);
mpu6050_write(CONFIG_R, 0x01);
delay_ms(10);
mpu6050_write(GYRO_CONFIG, 0x00);
}
#include <16f877A.h>
#FUSES NOWDT
#FUSES NOBROWNOUT
#FUSES NOLVP
#FUSES HS
#use delay(clock=20000000)
#use I2C (master, sda=PIN_C4, scl=PIN_C3, slow) //COMUNICACIÓN I2C PARA EL SENSOR
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) //COMUNICACIÓN RS232 HACIA LA PC
#include "mpu6050lite.c" //LIBRERÍA PARA EL MPU6050
#include <math.h>

signed int8 A_data[6]; //VARAIBLE DE 8 BITS: AXL, AXH, AYL, AYH, AZL, AZH
signed int8 temp_data[2]; //VARAIBLE DE 8 BITS: TL, TH
signed int8 G_data[6]; //VARAIBLE DE 8 BITS: GXL, GXH, GYL, GYH, GZL, GZH
signed int16 Xa=0,Ya=0,Za=0; //VARIABLES PARA UNIR: AXL y AXH
signed int16 temp=0; //VARIABLES PARA UNIR: TL y TH
signed int16 Xg=0,Yg=0,Zg=0; //VARIABLES PARA UNIR: GXL y GXH
int8 dato=0;

void main(){

delay_ms(2);
mpu6050_init(); //INICILAIZAR EL SENSOR MPU6050

while(TRUE) {
output_high(PIN_B0); //INDICADOR: SE EMPEZÓ A ENVIAR

A_data[0]=mpu6050_read(0x3B); //Read X axis(LSB)


A_data[1]=mpu6050_read(0x3C); //Read X axis(MSB)
A_data[2]=mpu6050_read(0x3D); //Read Y axis(LSB)
A_data[3]=mpu6050_read(0x3E); //Read Y axis(MSB)
A_data[4]=mpu6050_read(0x3F); //Read Z axis(LSB)
A_data[5]=mpu6050_read(0x40); //Read Z axis(MSB)

temp_data[0]=mpu6050_read(0x41);
temp_data[1]=mpu6050_read(0x42);

G_data[0]=mpu6050_read(0x43); //Read X axis(LSB)


G_data[1]=mpu6050_read(0x44); //Read X axis(MSB)
G_data[2]=mpu6050_read(0x45); //Read Y axis(LSB)
G_data[3]=mpu6050_read(0x46); //Read Y axis(MSB)
G_data[4]=mpu6050_read(0x47); //Read Z axis(LSB)
G_data[5]=mpu6050_read(0x48); //Read Z axis(MSB)

Xa=make16(A_data[0],A_data[1]); //UNE: AXL y AXH


Ya=make16(A_data[2],A_data[3]); //UNE: AYL y AYH
Za=make16(A_data[4],A_data[5]); //UNE: AZL y AZH

temp=make16(temp_data[0],temp_data[1]);
temp=temp/340 + 36.53;

Xg=make16(G_data[0],G_data[1]); //UNE: GXL y GXH


Yg=make16(G_data[2],G_data[3]); //UNE: GYL y GYH
Zg=make16(G_data[4],G_data[5]); //UNE: GZL y GZH

printf("%ld \n\r",Xa); //ENVÍA POR PUERTO SERIAL LA ACELERACIÓN EN X

output_high(PIN_D0); //INDICADOR: SE TERMINÓ DE ENVIAR


delay_ms(50);

}
}
• Matlab

global pos;
global tt;
axes(handles.axes1);
hold on;
Datos=0;

title('DATOS DE ACELERÓMETRO');
xlabel('Tiempo(s)');
ylabel('Posición(X)');
grid off;

delete(instrfind({'port'},{'COM10'})) //LIMPIA EL BUFFER DEL PUERTO


puerto=serial('COM10','BaudRate',9600); //CREA EL PUERTO
fopen(puerto); //ABRE EL PUERTO

cont=1; //INICIALIZA LA VARIABLE

while cont<=300 //NÚMERO DE DATOS QUE RECIBIRÁ


%tic
ylim([-32 32]); //EJE Y FIJO
xlim([(cont-100)*1e-2 (cont+100)*1e-2]);//EJE X DESPLAZABLE
valscan=fscanf(puerto,'%ld'); //ESCANEA DATO SEGÚN EL FORMATO
Datos(cont)=valscan*9.81/16384.0; //ESCALA Y GUARDA EL DATO
t(cont)=cont*5e-2; //ESCALA EL TIEMPO
plot(t,Datos); //PLOTEA LA GRÁFICA
drawnow; //ACTUALIZA LA GRÁFICA
cont=cont+1;
pos=Datos
tt=t
% toc
end

fclose(puerto); //CIERRA EL PUERTO


delete(puerto); //BORRA EL PUERTO
para el sistema embebido (área de internet)

• ¿HTTP para IOT?


Al utilizar el protocolo HTTP, en la programación se tenía que tener en claro que para enviar un
dato debíamos hacer una solicitud hacia la página destinada, esta acción tomaba más de 3
minuto o más según el tamaño de la solicitud y por esto, no es una opción viable para el
desarrollo de proyectos IOT ya que tus datos tienes que ser subidos automáticamente sin tener
que hacer una operación extra en el servidor.

Para los proyectos IOT se suele utilizar el protocolo MQTT el cual mediante un WebSocket (el
terminal) es por donde entran y salen tus datos de tu sistema embebido con ESP8266, su
velocidad de envío es inmediata y más depende de tu frecuencia de muestreo, para esto se
utiliza servidores MQTT que a continuación se pasa a detallar la obtención de uno de ellos de
manera gratuita

• Protocolo MQTT: Creación del Servidor por CLOUDMQTT


Ingresamos a CloudMQTT

Ponemos nuestro correo de gmail


Nos pedirán que confirmemos

Se confirma y en las siguientes imágenes se detalla paso a paso.


Creamos una instancia clic en el rectángulo verde y seguimos el procedimiento.
Aca damos clic en Proyecto 2018-2 para crear nuestras variables y ver el WebSocket

Haciendo un zoom a mis detalles POR FAVOR NO USAR MIS DATOS, NO LO ESTOY
PIXELEANDO PARA QUE PUEDAN ENTENDER EL USO EN LA PROGRAMACIÓN, GRACIAS.
En la siguiente pestaña (USERS AND ACL) creamos nuestro usuario ESP1 con clave: 12345 y clic
en + Add

Más abajo en ACLs

Zoom
Teniendo listo ahora podemos recibir y enviar datos por el WebSocket

• IDE de Arduino para el NodeMCU y ESP8266 (configuración y código)

Configuración del NodeMCU:

Para la instalación de la tarjeta primero tener asegurado de tener instalado el Driver CH340 el
mismo driver de Arduino one.

Luego deben insertar el siguiente link en el gestor de tarjetas para eso:


Colocamos el siguiente link
http://arduino.esp8266.com/stable/package_esp8266com_index.json y terminamos dando
OK.

Después, en el gestor de tarjetas Instalamos lo siguiente


Utilizar la versión 2.4.2 no versiones Betas

Para obtener un correcto funcionamiento de la tarjeta en la pestaña de Herramientas dejar la


configuración de esta forma por recomendación mía.
Código del NodeMCU ESP8266:

Tener en cuenta que el ip del servidor MQTT lo obtenemos de la siguiente forma desde cmd.
El código es elaborado en el IDE de Arduino con su previa configuración para las tarjetas

Hacemos usos de librerías, creamos las variables con su valor para la configuración de
conexión Wifi y el servidor MQTT
En esta sección nuestro ESP8266 estará en modo cliente ya que se conecta a la red Wifi y no
gobierna en las demás clientes la función reconnect es solo para cuando la conexión cae y
necesita volver a conectar.
En el setup configuramos una entrada digital, establecemos los pines D2 y D1 por defectos en
SDA y SCL respectivamente, también la librería Wire hace uso para la configuración del
acelerómetro MPU6050

También se inicio la conexión a la red WIFI y posteriormente se procede a su configuración del


IP, Gateway y sub máscara para la red OJO: tener en cuenta que tu dispositivo debe cumplir
ciertos parámetros para la conexión como por ejemplo su IP debe ser las 3 primeras números
iguales pero el ultimo numero es la identificación para cada cliente (el ESP8266 no debe tener
el mismo IP que otro cliente)

Por último, en Clientset Server. Se establece la conexión hacia el servidor MQTT y con su
puerto ya declarado al inicio
Se establece un cliente y luego calculo del ángulo en eje X por el filtro complementario,
permitiendo que utilicemos el acelerómetro y giroscopio para comparar los resultados del
ángulo y así obtener uno muy exacto. La ventaja es que al integrar la velocidad angular por el
giroscopio no se acumule el error.
Para la entrada digital si está en 0 (LOW) enviará un dato cada 500 milisegundo, esto será útil
para el PROYECTO1 que es ver los datos online, tener cuidado que su frecuencia de muestreo
será 2Hz

Cuando está en 1 (HIGH) enviará un paquete de 8 números, pero cada número se esta
muestreando a 25 milisegundo por lo que su frecuencia de muestreo es de 40 Hz
importantísimo la muestrear una señal símica.

Observación:

Si disminuimos más el tiempo de envío hasta menos de 200 milisegundos habrá muchísima
latencia, lo cual origina un problema en el WebSocket, las variables se acumulan y se saturan
originando así que una variable se envíe después de 5 segundos o más

La máxima cantidad de acumular las variables son de a 8 ya que en el WebSocket hay un límite
de tamaño de variable.
Compilación del código y su recepción en el WebSocket:

Se conecta y enviamos los datos

Recibe los datos en el WebSocket


Enviamos los datos acumulados de a 8 separados por un #

Recibe el paquete en el WebSocket


Programación del Servidor WEB

• Obteniendo hosting y dominio gratis

Para obtener tu hosting y dominio gratis seguir los siguientes pasos de imágenes
Clic en lo verde con letras azules para el envío del mensaje de activación

El correo lo recibe por SPAM


Esperar la creación de la cuenta

Y aquí tenemos el hosting creado con un subdominio dentro de online, esto basta para operar
nuestro servidor Web (Solo para tener y ver el desarrollo del proyecto) tener en cuenta que la
transferencia de los datos es por el Servidor MQTT

Recibiremos un correo sobre nuestras contraseñas para esto nos vamos a nuestro correo
En el mensaje bajamos hasta esta sección

LAS CONTRASEÑAS ESTAN DESCUBIERTAS PARA QUE PUEDAN SABER CUANDO LA UTILIZO Y
PARA QUE MOTIVO, POR FAVOR NO USAR MIS DATOS YA QUE ESTROPIARÍA LA PÁGINA
HASTA EL PEOR DE LOS CASOS LA SUSPENSIÓN DE MI CORREO ,GRACIAS

Nos vamos al cpanel.elmejorhosting.online utilizamos el user y pass del Cpanel (Log In):
Obtenemos el Cpanel

Lo importante en el Cpanel es utilizar su gestor ftp (FileZilla) que lo detallaré más adelante y
bases de datos para esto crearemos por medio del MySQL databases
Clic en Crear base de datos

Luego Tenemos

Utilizaremos PHPMyAdmin para la creación de nuestras tablas.


Le damos en Continuar

Esta será la configuración de nuestras columnas de la tabla, Clic en Guardar

Esta tabla de base de datos será útil para el Proyecto2 que por medio del JavaScript almacenará
la variable que llega al WebSocket y utilizando AJAX esa variable migrará a una variable de PHP
para que luego lo envié a la base de datos de nuestro servidor que se encuentra en Internet
(Hosting)
• Utilización de Brackets
Para la edición de nuestras páginas Web utilizaremos un entorno muy amigable que es
Brackets, este programa soporta los lenguajes de programación que utilizaremos como HTML,
CSS. PHP, y JavaScript.

Es muy potente el programa ya que tienes una vista previa de tu diseño en tiempo real para la
programación HTML, CSS y JavaScript (Para PHP es distinto luego se detallará)
En el index siempre se separa las secciones que se va a utilizar.

Para una mejor configuración del programa de Brackets les dejo el siguiente enlace:

Link: https://www.youtube.com/watch?v=8YNVQ3dO0y4
Los diseños Web se procura ser Responsive ya que es más cómodo para verlo desde celular,
table u otro artefacto con dimensiones distintas.
• Estructuras de las páginas (Lenguaje HTML)

Lo primero es establecer las estructuras de la página que estés creando.

En este caso se comienza con;

<html> </html> : Esta etiqueta significa el inicio de la página y el cierra de ella misma
todo debe estar dentro de aquella etiqueta

<head> </head> : Esta etiqueta es ingresar el nombre de la página también para


vincular archivos CSS o JavaScript que editaran el diseño estético

<body> </body> : Esta etiqueta es para englobar todo el contenido de la página Web

<header> </header> : Esta etiqueta es el encabezado que incluye en este caso el nombre de
la universidad y también las opciones a otras paginas

<div> </div> : Esta etiqueta podemos poner cuantas veces queremos e incluir
botones, imágenes, subtítulos u otros

<main> </main> : Utilizamos para colocar mucha información con imágenes


importantes

<footer> </footer> : Es para la última parte donde se coloca los derechos Reservados o los
contactos de las redes sociales

<script> </script> : Separa el HTML con el JavaScript, aquí se ejecuta constantemente


archivos del JavaScript ya sea código o archivos con códigos(librerías)

Para un mejor diseño puedes tomar en cuenta el siguiente link:

Link: https://www.youtube.com/watch?v=RgSWh5jIx2A&t=1355s
• Diseño estético de las páginas (Lenguaje CSS)

Para la vincular con CSS es necesario definir los links donde se ubica el archivo CSS con el
código que se encargará del diseño estético, y además definir las “class” de cada parte, el cual
lo identificará en el código para su respectivo diseño sea imagen, texto u otro

Eliminando Archivo de CSS sería de esta forma


Utilizando el archivo de CSS sería de esta forma

Se presenta al costado el
código CSS el cual es un fin
estético y ordenado de la
página Web:

Se puede importar fuentes


como se observa en letras
naranjas.

También se hace un
llamado a la clase como
por ejemplo “contenedor”
el cual tiene algunas
instrucciones como, por
ejemplo:

• margin: auto;
• width: 98%;
• entre otros

Para desrrolar tomar en cuenta el siguiente link:

Link: https://www.youtube.com/watch?v=RgSWh5jIx2A&t=1355s
• Bondades del FileZilla

El FileZilla te ofrece un gestor de subida de archivos a tu servidor, recordar que tu hosting es


una computadora al igual a la que estamos usando ahora, la diferencia es que esa
computadora se comporta como un servidor que te ofrece múltiples servicios y que siempre
está prendida ya que si se apaga no podrías ingresar a tu pagina web ya que todo tu dato se
almacena ahí.

Su entorno es:
Su configuración recomendada y también se utiliza el FTP Server Login y password del correo
electrónico
Aquí en esta sección subiremos todos nuestros archivos que deseemos para nuestra proyecto

Para mayor información el siguiente link:

https://www.youtube.com/watch?v=yQvng5ooBv0&t=439s
Programación del Proyecto 1: envío de datos para graficarlo online

• Recepción de datos del MQTT (Lenguaje JavaScript)


Comenzamos con incluyendo las librerías de JavaScript

Primero se establece user y pass propios del usuario del servidor MQTT. Luego se observa que
este Script se encarga de establecer funciones para que cuando halla una entrada en el
WebSocket del servidor MQTT se guarde en una variable y poder manipularla. Esto ocurre en
la función onMessageArrived lo guarda en angulo y lo vuelve una variable flotante.
Se hace la configuración con respecto a su Servidor MQTT (verde) y se ejecuta las funciones

• Realización de gráficos (Highcharts)


En el cuadro rojo utilizamos la variable angulo ya que ahí guarda la variable del WebSocket
En esta sección la abscisa es la variable tiempo la cual que cada segundo muestra un valor según
el reloj utilizado por JavaScript, pero antes de eso carga todas las variables a 0 milimetros

• Limitantes del Proyecto 1

Al principio el ESP8266 envía hacia el servidor MQTT las variables a una frecuencia de 2Hz
Luego, El WebSocket lo recibe
Por último en el Servidor Web, en esta página corre un Script de java la cual si hay una entrada
en el WebSocket del servidor MQTT lo guarda en una variable y luego lo grafica.

Las limitantes son:

• No logrará muestrear las ondas sísmicas por su frecuencia de muestreo


• Se llega acumular las variables el cual a cierto tiempo los datos se saturan.
• No se logra guardar las variables correctamente.
• Ni bien captura la variable se grafica, este proceso no es óptimo ya que el código se
vuelve pesado
Programación del Proyecto 2: envío de datos para una base de datos y graficarlos

• Instalación de WampServer
Se hará uso de un servidor local para las pruebas con base de datos y también para evitar la
suspensión del servidor por sobrepasar la cantidad de espacio permitido para esto utilizaremos
WampServer se recomienda usar 3.0.6 ya que aun admite código en mysql, las versiones más
desarrolladas ya no permiten usar el código mysql sino mysqli.

Para que esté operativo se debe tener en cuenta que el programa debe estar de esta forma
ejecutada

Luego podemos acceder a estos dos sitios más importante


En la pestaña de localhost ubicamos los trabajos de web que están ubicados en la carpeta

Es importantísimo que los archivos que manejan base de datos estén alojados en esa carpeta
ya que el código php para que se ejecute debe estar en la carpeta del servidor como previa
configuración para añadir a la vista previa bastará con seleccionar nuestra carpeta de trabajo y
copiar su link

Y copiarlo en configuración de proyecto de brackets para la vista dinámica pero ahora es


necesario ir guardando para actualizar

Y le damos clic a esta vista preliminar para seguir con la programación PHP

Link: https://www.youtube.com/watch?v=m4wtuq-Z5sU&t=652s
• Utilización de phpmyadmin (base de datos en área local)
Para la creación de su base de datos es similar al que hicimos para el servidor luego solo que
ahora será para local para eso nos vamos a phpMyAdmin:

Conectarse a la base de datos es solo darle Continuar (Base de datos local del WampServer)
Hacemos esa configuración

Se sigue lo mismos paso que la base de datos del servidor Web y se debe dejar de esta forma.

• Envió de datos a la base de datos del servidor local (Lenguaje PHP)


Recordar que para este Proyecto2 se envía de esta forma los valores
El WebSocket recibe de esta forma

Se utiliza estos 2 librerías más de la que ya habían para trasladar una variable de JavaScript a
PHP
• Para el cuadro rojo: Se declara una variable ya que ese se va a encargar de ordenar los datos.
• Para el cuadro amarillo: se obtiene el paquete de variable con 8 datos en el for se encarga de
separar las variables obteniendo 8 datos para ser guardados en variables flotantes
• Para el cuadro verde: Se utiliza la librería de Ajax para trasladar la variable de java a PHP y así
poder ingresarlo a una base de datos.

En el rectángulo
rojo:

• Contenedor es para
utilizar el archivo
Enviobd.php

• La acción
respuesta.php es para
graficar a partir de la
base de datos

• La acción limpiar.php
es para limpiar toda la
base de datos de
manera automática
El archivo Enviobd.php se encuentra como el angulobd variable de javascript pasó a PHP y se
guarda en la base de datos llamado: base_de_datos_sismicos

Solo bastará estar en está pagina para que el script de JavaScript, este siendo ejecutado, esa
variable será guardado en una base de datos.
• Gráficos de los datos desde la base de datos (Highcharts con PHP)

• Recuadro Rojo: Establece la conexión


• Recuadro Verde: Es una función que me ordena según el contador (NO ID) y el
mensaje, esta función servirá para graficar en Highcharts

También se visualizan las librerías que se utilizan para el gráfico de Highcharts


En esta función se utiliza Highcharts para graficar y también la función movimiento para
insertar datos (contador y mensaje)

La siguiente función es Tabla se encarga de ordenar los datos en una tabla para poder
copiarlos en una hoja de Excel y así hacer un procesamiento digital de señales
Cuando presiono el botón limpiar se ejecuta la acción limpiar.php que elimina toda la base de
datos y también coloca en 1 al ID esto sirve no almacenar muchos datos

Nota la variable contadora se reinicia a 0 cada vez que actualice la pagina o se vuelva a entrar.

Aquí tenemos la gráfica generada por respuesta.php


Y acá tenemos la tabla en la misma página por respuesta.php
• Ajustes de la configuración de MySQL para la base de datos del servidor
Web
Se cambiará las variables en la conexión del php del área local hacia el Servidor

Variables de base de datos local Variables de base de datos Servidor


localhost sql304.elmejorhosting.online

root lmjr_23183534

123456
base_de_datos_sismicos lmjr_23183534_bd_sismo

bd bd

Nota: Un archivo php se ejecuta siempre en su servidor a la que se conecte, por esa razón se
tiene que subir al servidor todos los archivos.

Se comenzará a subir los archivos

Podran ver la sgte gráfica URL: http://proyecto20182.elmejorhosting.online

Dar Clic en la pestaña Proyecto2 para ver gráfica (Se desactivará la opción limpiar.php)
Pasando toda la tabla a Excel (Cabe resaltar que una fila del Excel se puede pasar a Matlab)
• Hallando su aceleración por Excel
Para esto tener en cuenta la segunda derivada, en diferencias finitas
𝑦(𝑛) − 2 ∗ 𝑦(𝑛 − 1) + 𝑦(𝑛 − 2)
𝑎=
𝑇2
Para el primer valor:

Para el segundo valor:

Para el tercer valor:


Y para los demás valores teniendo en cuenta las diferencias finitas:
• Utilización de Matlab para el procesamiento

Para llevarlo a Matlab del Excel es necesario ejecutar el siguiente Script

Observación: Tener en cuenta que el script y el archivo en Excel deben estar en la misma
carpeta

Вам также может понравиться