Anda di halaman 1dari 6

Alarma en red para la deteccin de vibraciones en

estructuras mediante la implementacin de


arduino y php
Paulo Andrs Morillo Muoz
Donaldo Garca Mendieta
Mateo Flrez Lozano
Universidad de San Buenaventura Bogot, Colombia
Facultad de ingeniera-Ingeniera de Sonido
pmorillo@academia.usbbog.edu.co
dogarcia@academia.usbbog.edu.co
maflorez@academia.usbbog.edu.co

I.

INTRODUCCIN

El trabajo muestra cmo se realiz una


alarma en red de deteccin de vibraciones
para
estructuras
mediante
la
implementacin de una pgina de internet
de servidor local o local host y
programacin en arduino. Para esto se
utiliz un dispositivo de medicin de
vibraciones (acelermetro ssmico) el cual
mediante su conexin a la red muestra los
valores medidos para la vibracin y as
mismo generar un reporte detallado y un
historial de datos los cuales sern
guardados y almacenados dentro de una
pgina php.
II.

Entre los rasgos ms definidos del


lenguaje php se encuentra la capacidad de
creacin de imgenes a partir de datos, en
donde se genera grficas automticamente
solo conociendo una serie de datos o
valores de entrada. Es posible la creacin
de pginas web con contenidos mucho
ms dinmicos adems de ofrecer un sin
nmero de caractersticas avanzadas que
permiten a los desarrolladores y
programadores una alta cantidad de
posibilidades.
Este lenguaje es fcil de
percibir en una gran cantidad de
dispositivos con sistema operativo
Android, adems en dispositivos con
software de compatibilidad como Java,
Linux y Apache.

MARCO TERICO
II.II Qu es una red informtica?

II.I Qu es PHP?
Se conoce php como una herramienta
para la programacin de pginas de
internet, es un lenguaje abierto es decir de
software libre y de fcil acceso. Php es un
lenguaje que permite ser trabajado desde
direcciones HTML lo cual lo hace un
lenguaje universal pues muchos portales
web estn creados con php.

Se define como red informtica a una


serie de dispositivos conectados entre s
por medio de
de comunicacin,
ordenadores equipos informticos y
dispositivos fsicos ya sea un cable, un
mdem o un switch de internet, estos
dispositivos conectados envan o reciben
informacin para as ofrecer recursos y
ofrecer servicios.

II.III Qu es Arduino?
Arduino es un hardware que permite
mediante su aplicacin crear programas
los cuales se ejecutan en un medio fsico,
su diseo 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
electrnica anloga y digital adems de
ser una plataforma libre.
Este hardware presenta dentro de su
estructura una serie de puertos tanto de
entrada como de salida (anlogos y
digitales) y requiere una alimentacin
para su funcionamiento la cual es
suministrada mediante un puerto USB,
este hardware permite la implementacin
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 conexin


mediante una red de comunicacin del
arduino y el computador los cuales
estaran conectados a un mdem o un
switch de internet, mediante la realizacin
de esta conexin se busca que tanto el
computador como el arduino estn
conectados a un mismo punto de red, es
decir, que ambos presenten la misma IP y
as mismo poner a funcionar la pgina
web cargada para el mismo IP a donde se
est conectado.
Este mediante un cdigo realizado para la
captura de los datos en la entrada anloga
del arduino permitira el envo de estos
datos por red a la pgina web de local
host y esta pgina permitira al usuario la
revisin de estos datos si se superaba un
lmite permitido, si este lmite llegara a

sobrepasarse la pgina guardara los datos


en donde se estara expuesto a un valor
mayor del permitido generando un
informe detallado y una seal de alarma.
Mediante el cdigo php se programa la
pgina de internet la cual permite la toma
de 100 datos iniciales o una mayor
cantidad de datos requerida por el
usuario, esta adems tomara x cantidad
de datos en el intervalo de tiempo que el
usuario ingrese.
Se muestra la grfica
de captura de los datos arrojados por el
acelermetro ssmico en tiempo real
permitiendo al usuario un completo
control para la deteccin de vibraciones
en estructuras, adems la pgina de
internet cuenta con un usuario y una
contrasea la que permite al usuario una
mayor confidencialidad a la hora de
chequear los datos obtenidos en el sensor.
La programacin dentro de la pgina
permite la actualizacin cada de 3
segundos de los datos captados por el
sensor, es decir que el usuario podra
adems revisar los datos medidos en
tiempo real. Se muestra el cdigo que se
program tanto para el arduino como para
la pgina php.
De esta manera se obtiene una
herramienta capaz de generar mediante la
conexin en red un informe detallado de
la medicin de vibracin en estructuras y
as mismo poder con la herramienta
prevenir futuros daos 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

mediciones u otra aplicacin y


monitorizacin desde un servidor
y pagina web.
III.I Cdigo 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,
password))
{
delay(500);
float value_read = analogRead(A0);

?>
<?php
$server = "172.16.3.138";
$usuario = "mateo";
$pass = "mateo987";
$BD = "test_mateo";

3306,

user,
//variable que guarda la conexin 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 funcin mysql_fetch_array
$a=0;
while ($registro=mysql_fetch_array($ejecutar)){
//echo
"<br>".$registro["entrada"]."
".$registro["fecha"]."<br>";
//cerrar 1a conexin a la BD
//mysql_close($conexion) or die("ocurrio un error
al cerrar conexin");
//echo " conexin cerrada";
$rawdata[$a][1]=$registro["entrada"];
$rawdata[$a][2]=$registro["fecha"];
$a=$a+1;
}

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 Cdigo PHP


<HTML>
<BODY>
<?php
echo
"
<br><br><center><h1>
ESTRUCTURAS </h1></center>" ;

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;

ALARMA

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

DE

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


numrico
$valoresArray;
$timeArray;
//en un bucle for obtenemos en cada iteracin el valor
nmerico y
//el TIMESTAMP del tiempo y lo almacenamos en los arrays

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";

// 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>

}
//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"></scri
pt>
<script>
chartCPU = new Highcharts.StockChart({
chart: {
renderTo: 'contenedor'
//defaultSeriesType: 'spline'
},
rangeSelector : {
enabled: false
},
title: {
text: 'Grfica 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() {

ANEXOS

Grafica de los datos obtenidos por el acelermetro.

Tabla de datos de los valores sobrepasados por el umbral.

Ventana de ingreso

Configuracin de las bases de datos

Anda mungkin juga menyukai