Sensor sísmico conectado a Internet con un BeagleBone – El QuakeAlarm al desnudo

Nota Aclaratoria:

QuakeAlarm

QuakeAlarm

Hace unos días recibimos un amable email del señor Leonel Salinas (México) donde nos pide bajar todo tipo de información sensible del QuakeAlarm. Esto explica las imágenes censuradas en este artículo, el cual no quisimos borrar porque justamente muestra la esencia de nuestro objetivo, motivar a nuestros lectores a investigar, abrir y conectar dispositivos a la red Internet.

Lamentamos tener que modificar las imágenes pero comprendemos que es un producto y que estas imágenes facilitaban su copia. Al mismo tiempo dejamos unas reflexiones

1) Un producto que puede ser copiado simplemente desarmándolo no es de alta tecnología.
2) ¿Porque se copian los productos? creemos que se copian porque el precio del original es altamente excesivo para lo que realmente es. En Chile en todo caso, el equipo tiene un costo de US$60, y vale la pena comprarlo antes que intentar copiarlo, en México al parecer no se dan las mismas condiciones.

 

Terminada la aclaración dejamos la copia del email recibido.

email_leonel

 

Fin de la Nota Aclaratoria.

Llevo casi un mes intentando escribir este artículo, me han sucedido muchas cosas este último mes así que hasta ahora me había sido imposible, entonces, comencemos.

Foto 1: QuakeAlarm

¿Qué es un QuakeAlarm?

Un QuakeAlarm es un dispositivo que según sus especificaciones técnicas es capaz de alarmar anticipándose  unos segundos a un temblor o terremoto.

Técnicamente hablando es una carcasa de plástico de 18 centímetros, con un péndulo invertido en su interior, que al moverse producto de un evento sísmico, hace contacto eléctrico con los bordes de una perforación que tiene forma de triángulo (ver Foto2) emitiendo un sonido parecido al de una campanilla.

Está alimentado con una batería de 9 volts, el circuito lo conforman un transistor, un condensador, una resistencia y un buzzer (que emite el sonido tan característico).

Foto 2: Péndulo

En teoría, un péndulo invertido es capaz de detectar una onda sísmica P (onda de compresión), la cual se propaga mas rápido que la onda S (onda de longitudinal), que es la que normalmente sentimos y la que provoca mayor destrucción. La onda P hace que el péndulo oscile cerrando el circuito eléctrico al tocar el borde de la perforación triangular.

En régimen normal el circuito esta abierto pues el péndulo aun no ha tocado el borde. El transistor está en corte y funciona como un circuito abierto.

Al cerrarse el circuito, una pequeña corriente fluye sobre la base del transistor lo que provoca que éste entre en saturación por lo que el circuito se cierra, en éste punto se carga el condensador  el cual se descarga a traves del buzzer que emite una campanada audible.

Durante la medición de una onda la conmutación es permanente lo que produce una carga y descarga del condensador permitiendo que oigamos una campanada continua o varias si el periodo de vibración es mayor.

Luego de esta breve especificación técnica estamos listos para empezar.

Materiales

  • QuakeAlarm
  • Beaglebone con Ubuntu 12.04
  • Fuente poder
  • Cable
  • Destornillador

Desarmando el QuakeAlarm

Foto 3: QuakeAlarm abierto

La verdad es que intenté varias veces abrir el QuakeAlarm que había comprado, pero tenía temor de provocar algún daño al dispositivo mecánico del sensor, consulté a los amigos de @reddeemergencia si habían abierto alguno y  amablemente me enviaron uno que estaba defectuoso y abierto, así que muchas gracias! y en especial a @rne_601_German.

El dispositivo no está pensado para que sea desarmado, por lo cual debes abrirlo provocando el menor daño posible a la carcasa, ya que de la tapa frontal depende la calibración del dispositivo. Se debe abrir por la parte superior aplicando presión con un destornillador en las junturas dentro del compartimento para la batería de nueve volts. Las tapas que componen en QuakeAlarm están unidas por cuatro pasadores de plástico los cuales se romperán a medida que las separas.

Una vez abierto (Foto 3) podrás observar el circuito del que ya habíamos hablado, solo utilizaremos el péndulo, así que sacaremos todo “lo sobrante” (eso si guárdenlo por si alguna vez quieren volver a dejarlo “nuevo de paquete”).

Hay que retirar la silicona con la cual están fijos tanto los cables como los componentes electrónicos, una vez retirada hay que desatornillar los cables que conectan el péndulo con el circuito y reemplazarlos por dos cables con los cuales conectaremos el péndulo con el BeagleBone (Fotos 4 a 6).

Foto 4: Péndulo

Foto 5: Buzzer

Foto 6: Cambiando cable

Foto 6: Conectar sensor

Montaje del QuakeAlarm

Un QuakeAlarm bien calibrado es muy sensible por lo cual debes instalarlo en alguna cadena estructural de tu casa evitando la cercanía de ventanas y puertas ya que un golpe fuerte lo activará.

Foto 7: Montaje

Para fijarlo a la pared puedes usar los velcros que vienen incluidos con el kit, pero a los pocos días tendrás el QuakeAlarm activado y botado en el suelo, ya que se desprende con demasiada facilidad. Es mejor hacer una perforación con un taladro en la pared y fijar un pequeño trozo de madera con un tornillo a la pared y amarrar el QuakeAlarm a la madera, con esto quedará muy bien asegurado

El péndulo en un estado normal se encuentra muy cercano al borde de la perforación triangular (Ver Fotos 2 y 4), pero sin tocar el borde,  la cercanía con el borde se regula con el tornillo que trae el QuakeAlarm en la parte delantera observando por la pequeña ventanilla redonda la calibración. A mayor cercanía mas sensibilidad. Por ahora debemos fijarnos que el péndulo quede libre y que se mueva si golpeamos levemente la caja del QuakeAlarm. Los cables que conectamos al péndulo deben salir de la caja para ser conectados al BeagleBone (Foto 7).

Foto 8: Pines BeagleBone

Conectando el QuakeAlarm al BeagleBone

Para conectarlo al BeagleBone utilizaremos las puertas digitales,  tal como ya lo hicimos con el sensor de presencia (lean el artículo si no lo han hecho), el objetivo es que cuando se produzca el contacto eléctrico el BeagleBone ejecute alguna acción y deje registro en un archivo histórico (los conocidos archivos logs), para esto debemos conectar los dos extremos de los cables que ya están unidos al péndulo del QuakeAlarm con nuestro BeagleBone en los pines 1 y 12 del conector P9 (Ver Foto 8).

Como ya hemos visto en otros artículos, el BeagleBone puede ejecutar cualquier lenguaje de programación, para este proyecto usaremos python, básicamente porque yo no lo domino y deseo aprender.

Programación

Esta es la primera versión del programa en python quakealarm.py, obviamente puede tener muchas mejoras, pero esta ya funciona.

Antes de probar todo el sistema es necesario instalar twidge, que es una aplicación para twittear desde la línea de comandos, para instalarlo lean éste artículo donde detallo los pasos.

Con el twidge funcionando podemos comenzar a probar el quake alarm con el siguiente programa en python:

# InternetDeLasCosas.cl
#
# Nombre: queakealarm.py
# Lenguaje: python
#
# Funcionalidad: Conectar QuakeAlarm a BeagleBone para registrar eventos sismicos y enviarlos a twitter
# Autor: Jose Zorrilla @joniuz
# Fecha: 2012-08-25
# contacto@internetdelascosas.cl
#  
import os
#from time import sleep
from datetime import *

os.system("echo 60 > /sys/class/gpio/export") # Activa la lectura de pines

# Inicializa la variable ultimo_tweet para evitar twittear en menos de x segundos
ultimo_tweet = 20000101000000

# Intervalo minimo entre tweets
segundos = 30 

while(True):

        f = open("/sys/class/gpio/gpio60/value","r") # Abre archivo para leer pin  P9.12
        datos  = f.read() # Obtiene la lectura del pin P9.12
        vect   = datos.split('\x00') # Elimina fin de linea
        switch = int(vect[0]) # Convierte el valor a entero 
        if switch == 0:
		log = open("/var/log/quakealarm.log","a") # Abre archivo log
		tiempo = datetime.today()
		diferencia = int(tiempo.strftime("%Y%m%d%H%M%S")) - ultimo_tweet
		if segundos < int(diferencia):
			ultimo_tweet = int(tiempo.strftime("%Y%m%d%H%M%S"))
			#print tiempo
			twitter = "twidge update \"" + str(datetime.today())[:-7] + " Malloco - QuakeAlarm Activado - Sensor en periodo de c
alibracion\" &"
			os.system(twitter)
			log.write("%s ################ QuakeAlarm activado ################\n" % datetime.today())
                log.write("%s QuakeAlarm activado\n" % datetime.today()) # Registra el evento sismico en archivo log
		log.close() # Cierra el archivo
	f.close

El programa esta pensado para que deje un espacio de 30 segundos antes de twittear un segundo evento, esto es porque cuando se activa el QuakeAlarm, el péndulo golpea varias veces el contacto eléctrico, al mismo tiempo todos estos “golpes” van quedando registrados en el log /var/log/quakealarm.log con fecha y hora.

Para twittear utiliza una llamada al sistema mediante os.system y la aplicación twidge (de la que ya habíamos hablado).

Si van a “copiar y pegar” el programa recuerden que python es sensible a los tabuladores, asi que cuidado con eso.

Para ejecutar el programa deben estar como super usuario ejecutando “sudo su -” en el BeagleBone y luego ejecutar “python /ruta_donde_esta_el_programa/quakealarm.py &”, el & que esta al final deja el proceso corriendo en background. La idea es dejar el programa corriendo como un demonio en el equipo y que parta de forma automatica cuando el BeagleBone se inicie, pero eso da para otro artículo.

El equipo esta físicamente en Malloco, Chile, y si desean pueden seguirlo en twitter @quakealarmcl (ya tiene seguidores y eso que este artículo aun no se publica).

Espero que se hayan entretenido con la lectura y les dejo una invitación, ¿Tienes un QuakeAlarm? ¿Deseas conectarlo a nuestra red? Envíanos un email a contacto@internetdelascosas.cl  y te enseñamos como hacerlo, estamos trabajando en crear una red de QuakeAlarms utilizando Arduino (ya viene ese artículo) y conectados a nuestro twitter @quakealarmcl, quizá algún día podamos triangular en pocos segundos el epicentro de algún evento en forma colaborativa con nuestros dispositivos en red.

No se olviden de seguirnos en nuestro twitter oficial @InternetDLC y en nuestra página en Facebook InternetDeLasCosas.

 

Acerca de joniuz

Ingeniero Civil Informático, Universidad de Santiago de Chile. Actualmente estudia como becario de Becas Chile el programa Master of Professional Engineering en la Universidad de Sydney. En Chile trabajó empresas de servicios internet y telcos como IBM, VTR y Entel. Le gusta la fotografía, tiene estudios de violín, guitarra eléctrica y sintetizadores que enciende cuando tiene algo de tiempo.

16 Thoughts on “Sensor sísmico conectado a Internet con un BeagleBone – El QuakeAlarm al desnudo

  1. Francisco Javier Silanes Puentes on 02/09/2012 at 15:52 Dijo:

    Estimado es posible que me informa del costo de adquirir un BeagleBone para conectar al QuakeAlarm

  2. Hola y es factible la programación en arduino? o solo con placas de desarrollo que soporten linux?

    • Si, se puede utilizar Arduino con el mismo objetivo, pero debes agregarle una Ethernet Shield y suscribirte a algún servicio que te permita tuitear mediante llamadas “rest”. En cierto modo utilizar el BeagleBone para esto es matar una hormiga con un tanque, pero aun asi es mas simple que hacerlo con Arduino.

      Dentro de poco, escribiré un tutorial para hacer esto, atento!

  3. Pedro on 18/03/2013 at 15:27 Dijo:

    Tengo el QA hace un año aprox y nunca lo he podido calibrar de forma eficaz, lo he cambiado varias veces de lugar, sin embargo suena cuando no pasa nada y cuando hay sismo suena sólo por el vaivén del sismo y no previamente. Aun esta con el anclaje original del velcro se es bastante eficiente y no se cae.
    Alguna recomendación????

    • Pedro, nosotros tenemos tres de estos dispositivos, los compramos por curiosidad y para “desarmarlos” y ver realmente como funcionaban. En si, el equipo es muy sensible, por lo que debe ser instalado en alguna muralla estructural de la casa o en una cadena, hemos probado instándolo a nivel de piso con buenos resultados. Como hacemos que el equipo mantenga un histórico de las activaciones, tenemos la misma apreciación, el equipo se activa pocos segundos antes de que se sienta el sismo, y la gran mayoría de las veces en el mismo sismo con el vaivén como bien lo explicas. Hasta el momento nos ha servido para determinar la duración de los sismos, pero no para “alertar” segundos antes de que se sentirá uno.

  4. Anonimo on 30/04/2013 at 10:42 Dijo:

    Interesante articulo . Preguntas :

    1.- Seria posible calcular la magnitud del sismo.
    2.- Cuanto es el rango de deteccion .
    3.- Se podria saber el epicentro ?

    En cuanto a la red QA a nivel nacional seria muy util para todos , se podrian evitar cagadas .

    Saludos.

    • Respondo a tus preguntas

      1.- Magnitud del sismo
      No se puede medir la magnitud del sismo ya que el sensor solo tiene un valor binario (0 o 1), solo se puede medir la duración en segundos.
      2.- Rango de detección
      El sensor quakealarm ha detectado sismos a mas de 500km cuando son de un grado 3 o superior.
      3.- Epicentro
      Si, si existieran muchos conectados, por el numero de activaciones y por la posición gps se podría triangular y obtener el epicentro.

      Saludos

  5. Marcelo on 15/07/2013 at 1:13 Dijo:

    Estimado, que distribuidores de beaglebone chilenos hay? y recomiendas???

  6. yuri urzua on 09/10/2013 at 12:04 Dijo:

    hola estimado

    cuando el tutorial con arduino ??

    gracias

  7. Javier on 31/03/2014 at 12:56 Dijo:

    estimados, en un apartado hace mención del envio de información sobre como realizar la medición sin la necesidad de poder abrir el QA esta info la tienen…??

    saludos

  8. Guillermo on 06/05/2014 at 16:53 Dijo:

    hola tienes las imagenes estoy en un proyecto de titulo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post Navigation