Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de...

6
Alarma en red para la detección de vibraciones en estructuras mediante la implementación de arduino y php Paulo Andrés Morillo Muñoz Donaldo García Mendieta Mateo Flórez Lozano Universidad de San Buenaventura Bogotá, Colombia Facultad de ingeniería-Ingeniería de Sonido [email protected] [email protected] [email protected] I. INTRODUCCIÓN El trabajo muestra cómo se realizó una alarma en red de detección de vibraciones para estructuras mediante la implementación de una página de internet de servidor local o local host y programación en arduino. Para esto se utilizó un dispositivo de medición de vibraciones (acelerómetro sísmico) el cual mediante su conexión a la red muestra los valores medidos para la vibración y así mismo generar un reporte detallado y un historial de datos los cuales serán guardados y almacenados dentro de una página php. II. MARCO TEÓRICO II.I ¿Qué es PHP? Se conoce php como una herramienta para la programación de páginas de internet, es un lenguaje abierto es decir de software libre y de fácil acceso. Php es un lenguaje que permite ser trabajado desde direcciones HTML lo cual lo hace un lenguaje universal pues muchos portales web están creados con php. Entre los rasgos más definidos del lenguaje php se encuentra la capacidad de creación de imágenes a partir de datos, en donde se genera gráficas automáticamente solo conociendo una serie de datos o valores de entrada. Es posible la creación de páginas web con contenidos mucho más dinámicos además de ofrecer un sin número de características avanzadas que permiten a los desarrolladores y programadores una alta cantidad de posibilidades. Este lenguaje es fácil de percibir en una gran cantidad de dispositivos con sistema operativo Android, además en dispositivos con software de compatibilidad como Java, Linux y Apache. II.II ¿Qué es una red informática? Se define como red informática a una serie de dispositivos conectados entre sí por medio de de comunicación, ordenadores equipos informáticos y dispositivos físicos ya sea un cable, un módem o un switch de internet, estos dispositivos conectados envían o reciben información para así ofrecer recursos y ofrecer servicios.

description

Proyecto para redes de comunicacion

Transcript of Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de...

Page 1: Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de Arduino y Php

Alarma en red para la detección de vibraciones en

estructuras mediante la implementación de

arduino y php

Paulo Andrés Morillo Muñoz

Donaldo García Mendieta

Mateo Flórez Lozano

Universidad de San Buenaventura Bogotá, Colombia

Facultad de ingeniería-Ingeniería de Sonido [email protected]

[email protected]

[email protected]

I. INTRODUCCIÓN

El trabajo muestra cómo se realizó una

alarma en red de detección de vibraciones

para estructuras mediante la

implementación de una página de internet

de servidor local o local host y

programación en arduino. Para esto se

utilizó un dispositivo de medición de

vibraciones (acelerómetro sísmico) el cual

mediante su conexión a la red muestra los

valores medidos para la vibración y así

mismo generar un reporte detallado y un

historial de datos los cuales serán

guardados y almacenados dentro de una

página php.

II. MARCO TEÓRICO

II.I ¿Qué es PHP?

Se conoce php como una herramienta

para la programación de páginas de

internet, es un lenguaje abierto es decir de

software libre y de fácil acceso. Php es un

lenguaje que permite ser trabajado desde

direcciones HTML lo cual lo hace un

lenguaje universal pues muchos portales

web están creados con php.

Entre los rasgos más definidos del

lenguaje php se encuentra la capacidad de

creación de imágenes a partir de datos, en

donde se genera gráficas automáticamente

solo conociendo una serie de datos o

valores de entrada. Es posible la creación

de páginas web con contenidos mucho

más dinámicos además de ofrecer un sin

número de características avanzadas que

permiten a los desarrolladores y

programadores una alta cantidad de

posibilidades. Este lenguaje es fácil de

percibir en una gran cantidad de

dispositivos con sistema operativo

Android, además en dispositivos con

software de compatibilidad como Java,

Linux y Apache.

II.II ¿Qué es una red informática?

Se define como red informática a una

serie de dispositivos conectados entre sí

por medio de de comunicación,

ordenadores equipos informáticos y

dispositivos físicos ya sea un cable, un

módem o un switch de internet, estos

dispositivos conectados envían o reciben

información para así ofrecer recursos y

ofrecer servicios.

Page 2: Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de Arduino y Php

II.III ¿Qué es Arduino?

Arduino es un hardware que permite

mediante su aplicación crear programas

los cuales se ejecutan en un medio físico,

su diseño se basa en una placa de metal la

cual posee un micro controlador capaz de

correr los programas que allí se ejecutan,

esta herramienta permite el uso de la

electrónica análoga y digital además de

ser una plataforma libre.

Este hardware presenta dentro de su

estructura una serie de puertos tanto de

entrada como de salida (análogos y

digitales) y requiere una alimentación

para su funcionamiento la cual es

suministrada mediante un puerto USB,

este hardware permite la implementación

de capas de hardware expansibles las

cuales permiten el uso de una mayor

cantidad de puertos y de suplir conectores

de internet para ampliar el rango de

aplicaciones del dispositivo.

III. DESARROLLO

El proyecto se basó en la conexión

mediante una red de comunicación del

arduino y el computador los cuales

estarían conectados a un módem o un

switch de internet, mediante la realización

de esta conexión se busca que tanto el

computador como el arduino estén

conectados a un mismo punto de red, es

decir, que ambos presenten la misma IP y

así mismo poner a funcionar la página

web cargada para el mismo IP a donde se

está conectado.

Este mediante un código realizado para la

captura de los datos en la entrada análoga

del arduino permitiría el envío de estos

datos por red a la página web de local

host y esta página permitiría al usuario la

revisión de estos datos si se superaba un

límite permitido, si este límite llegara a

sobrepasarse la página guardaría los datos

en donde se estaría expuesto a un valor

mayor del permitido generando un

informe detallado y una señal de alarma.

Mediante el código php se programa la

página de internet la cual permite la toma

de 100 datos iniciales o una mayor

cantidad de datos requerida por el

usuario, esta además tomaría x cantidad

de datos en el intervalo de tiempo que el

usuario ingrese. Se muestra la gráfica

de captura de los datos arrojados por el

acelerómetro sísmico en “tiempo real”

permitiendo al usuario un completo

control para la detección de vibraciones

en estructuras, además la página de

internet cuenta con un usuario y una

contraseña la que permite al usuario una

mayor confidencialidad a la hora de

chequear los datos obtenidos en el sensor.

La programación dentro de la página

permite la actualización cada de 3

segundos de los datos captados por el

sensor, es decir que el usuario podría

además revisar los datos medidos en

tiempo real. Se muestra el código que se

programó tanto para el arduino como para

la página php.

De esta manera se obtiene una

herramienta capaz de generar mediante la

conexión en red un informe detallado de

la medición de vibración en estructuras y

así mismo poder con la herramienta

prevenir futuros daños a la estructura y

fomentar puestos de control de

vibraciones en tiempo real.

IV. CONCLUSIONES

Este proyecto permitió aprender el

tipo de entornos en los que se

pueden llegar a desarrollar

distintas conexiones de redes para

aplicarlos al desarrollo de

Page 3: Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de Arduino y Php

mediciones u otra aplicación y

monitorización desde un servidor

y pagina web.

III.I Código en Arduino

#include "SPI.h"

#include "Ethernet.h"

#include "sha1.h" #include "mysql.h"

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//Setup for Ethernet Library

IPAddress server_addr(172,16,3,138);

Connector my_conn; // The Connector/Arduino reference char user[] = "mateo";

char password[] = "mateo987";

const char INSERT_DATA[] = "INSERT INTO test_mateo.tablaredes (ID,entrada,fecha) VALUES

(ID,%s,now())";

void setup()

{

Ethernet.begin(mac); Serial.begin(115200);

delay(1000);

Serial.println("Connecting..."); if (my_conn.mysql_connect(server_addr, 3306, user,

password))

{ delay(500);

float value_read = analogRead(A0);

for (int i=0; i <= 100; i++)

{

char query[64];

char temperature[10]; dtostrf(value_read, 1, 1, temperature);

sprintf(query, INSERT_DATA, temperature);

my_conn.cmd_query(query);

delay(100);

value_read =analogRead(A0); Serial.println(value_read);

}

} else

Serial.println("Connection failed.");

}

void loop()

{}

III.II Código PHP

<HTML>

<BODY>

<?php

echo " <br><br><center><h1> ALARMA DE ESTRUCTURAS </h1></center>" ;

if(isset($_POST["enviar_btn"])) {

if ($_POST["clave_txt"]=="server") {

echo "<h1>

BIENVIENIDO</h1><br>".$_POST["nombre_txt"]."<br>";

$tim=time() ; echo date("<br/> D-m-Y

(h:i:s)<br><br> <br><br>",$tim);

echo "<br>"; }

else {

echo "CLAVE INCORRECTA REGRESE Y VERIFIQUE";

break;

} }

else {

echo "nada papá"; break;

}

?>

<?php

$server = "172.16.3.138";

$usuario = "mateo";

$pass = "mateo987";

$BD = "test_mateo";

//variable que guarda la conexión de la base de datos

$conexion= mysql_connect($server, $usuario, $pass, $BD)or

die("No se pudo conectar con el server de BD") ; //echo "estoy conectado a MySQL";

// 2) seleccionar BD con la que se va a trabajar.

mysql_select_db($BD) or die ("mo se ha seleccionado la BD");

//echo "<br>base de datos seleccionada"; //3) crear consulta

$consulta="SELECT*FROM tablaredes";

//4)jecutar consulta mysql_query necesita consulta y conexion

$ejecutar=mysql_query($consulta,$conexion) or

die("No se pudo ejecutar consulta"); //echo "<br>se ejecutó la consulta SQL";

//5) MOstrar resultados dentro de un ciclo y en

una variable se ingresar la función mysql_fetch_array $a=0;

while ($registro=mysql_fetch_array($ejecutar)){

//echo "<br>".$registro["entrada"]." ".$registro["fecha"]."<br>";

//cerrar 1a conexión a la BD

//mysql_close($conexion) or die("ocurrio un error

al cerrar conexión");

//echo " conexión cerrada";

$rawdata[$a][1]=$registro["entrada"]; $rawdata[$a][2]=$registro["fecha"];

$a=$a+1;

}

//nos creamos dos arrays para almacenar el tiempo y el valor

numérico $valoresArray;

$timeArray;

//en un bucle for obtenemos en cada iteración el valor númerico y

//el TIMESTAMP del tiempo y lo almacenamos en los arrays

Page 4: Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de Arduino y Php

header("refresh:4;url=http://localhost/ALarma/alarma2.php");

$b=0; for($i = 0 ;$i<count($rawdata);$i++){

$valoresArray[$i]= $rawdata[$i][1];

//OBTENEMOS EL TIMESTAMP $time= $rawdata[$i][2];

$date = new DateTime($time);

// $msj="Buenas Vibras";

//ALMACENAMOS EL TIMESTAMP EN EL ARRAY

$timeArray[$i] = $date->getTimestamp()*1000; if ($rawdata[$i][1] >= 95){

$valorg[$b]= $rawdata[$i][1];

$tiempog[$b]=$time; $consulta="INSERT INTO random2

(valores,tiempos) VALUES ('$valorg[$b]','$tiempog[$b]')";

$ejecutar=mysql_query($consulta,$conexion);

$b=$b+1;

//$msj="corran estructura en riesgo";

} //echo $msj;

}

//print_r ($valorg);

// print_r ($datosa);

?> <div id="contenedor"></div>

<script src="https://code.jquery.com/jquery.js"></script> <!-- Importo el archivo Javascript de Highcharts

directamente desde su servidor -->

<script src="https://code.highcharts.com/stock/highstock.js"></script>

<script

src="https://code.highcharts.com/modules/exporting.js"></script>

<script>

chartCPU = new Highcharts.StockChart({

chart: { renderTo: 'contenedor'

//defaultSeriesType: 'spline'

},

rangeSelector : {

enabled: false },

title: {

text: 'Gráfica de Amplitud contra tiempo' },

xAxis: {

type: 'datetime'

//tickPixelInterval: 150,

//maxZoom: 20 * 1000

}, yAxis: {

minPadding: 0.2,

maxPadding: 0.2, title: {

text: 'Velocidad RMS',

margin: 10 }

},

series: [{ name: 'valor',

data: (function() {

// generate an array of random data

var data = [];

<?php for($i = 0 ;$i<count($rawdata);$i++){

?>

data.push([<?php echo $timeArray[$i];?>,<?php echo $valoresArray[$i];?>]);

<?php } ?>

return data; })()

}],

credits: { enabled: false

}

});

</script>

<a href="http://localhost/ALarma/historial.php" target="_blank">Historial</a>

</BODY>

</html>

Page 5: Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de Arduino y Php

ANEXOS

Grafica de los datos obtenidos por el acelerómetro.

Tabla de datos de los valores sobrepasados por el umbral.

Page 6: Alarma en Red Para La Detección de Vibraciones en Estructuras Mediante La Implementación de Arduino y Php

Ventana de ingreso

Configuración de las bases de datos