Sisukord:

Alerta Sísmica Temprana: 4 sammu (piltidega)
Alerta Sísmica Temprana: 4 sammu (piltidega)

Video: Alerta Sísmica Temprana: 4 sammu (piltidega)

Video: Alerta Sísmica Temprana: 4 sammu (piltidega)
Video: 10 землетрясений, снятых камерами видеонаблюдения 2024, November
Anonim
Alerta Sísmica Temprana
Alerta Sísmica Temprana
Alerta Sísmica Temprana
Alerta Sísmica Temprana
Alerta Sísmica Temprana
Alerta Sísmica Temprana
Alerta Sísmica Temprana
Alerta Sísmica Temprana

Breve selgitus

Durante un sismo se producen 3 tipos de ondas la primaria o P que es la importante para este proyecto, viaja entre 8 y 13 km/s y es registrada por los equipos sismógrafos.

Existen sensores caseros, que nos dan una alerta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda.

Esialgne proyecto busca crear un süsteem de alerta sísmica temprana ja twitter.

Materjalid on utizar

- 1 Arudino UNO (Costo umbes 25 dollarit USD)

- 1 Arduino Shield Ehternet (Costo Aprox 24 USD)

- 1 maavärinahäire (Costo Aprox. 30 USD)

- 1 Placa de Circuito impresa para prototipos (Costo Aprox. 0,60 USA dollarit) või protoboard

- 3 kaablit Jumper de diferentes colores (Costo Aprox. 0,30 USD)

- 1 9V patarei (Costo Aprox. 0,30 USD)

- Cautin y soldadura

Samm: Como Colocar Los kaablid

Como Colocar Los kaablid
Como Colocar Los kaablid
Como Colocar Los kaablid
Como Colocar Los kaablid
Como Colocar Los kaablid
Como Colocar Los kaablid
Como Colocar Los kaablid
Como Colocar Los kaablid

Kasutage hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", mis on tavaliselt kasutusel ja ühendab 9v del mismo akud.

El Arduino le dará 5v al sensor and los cone que va and poder funcionar bien.

El "Quake Alarm" on un parlante para emitir una alerta and detecta ondas P, si este parlante suena el voltaje baja, por lo que usaremos el Pin A0 para monitororear un cambio en el voltaje.

En el siguiente orden se deben poner los kaablid:

5v - A0 - akukaablite kaabel

Esmane 5 V kaabel, mis on alimentaarne andur, luego el A0 que va a monitororear el voltaje y finalmente el Cable negro del conector.

En otra fila conectamos el cable Negro que viene el Arduino y el cable rojo que viene del conector.

una vez los tengamos en este orden soldamos para que la electricidad pase entre ellos.

Kui oluline on 9 V al -andur, siis kaabel -negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.

2. samm: Código Arduino

En el Arduino vamos a crear un código que nos va a allowir 2 cosas:

  1. Leer el voltaje para buscar cambios
  2. Si hay una variación en el voltaje hacer una lalamada and a service web

Vamos a explicar un poco el código, si no quieres entenderlo a profundidad luego de la explicación esta el código complete y donde descargarlo.

Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.

#kaasake

#kaasake

Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar

#define QUAKEALARM A0

Seguido definimos las variables que nos van a ayudar al processamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.

staatiline diferentsiaal;

int qaVal = 0; int qaPreVal = 0;

int lävi = 10;

int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web

pikk

ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web

Ahora crear las variables para el uso del ethernet, donde definimos el MAC de la tarjeta de red, la IP que usará esta tarjeta y la clase de type EthernetClient for poder hacer uso de la tarjeta de red. También vamos a IPir servidor que recibirá lo datos.

bait mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

bait ip = {192, 168, 15, 120}; // Direccion IP del Arduino

bait

server = {192, 168, 15, 111}; // Direction IP -teenus

EthernetClient klient;

Ya con las muutujad, librerias y clases listas podemos iniciar el program que tendrá nuestro Arduino:

  • Incializamos on 57600 seeria
  • Loe le decimos al arduino que el pin A0 (Constante QUAKEALARM) lo vamos a usar como un pin de entrada.
  • Finalmente iniciamos la tarjeta de red.

void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);

Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield

}

Y para terminar el program, ponemos en una función cíclica que revize el voltaje si este es inferior a 5v que haga una llamada al servidor y por medio de GET le manda el valor 1 a la variable "sismo". también filtra para que exista un lapso de tiempo de 5 segundos entre un envió de informationción y otro.

void loop () {

qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;

kui ((diferencia> 0) ja (diferencia> = künnis) ja ((millis () - ultimaConexion)> intervaloTiempo)) {

kontador = kontador + 1;

Serial.print ("Sismo!");

Serial.println (kontador);

ultimaConexion = millis ();

if (client.connect (server, 5002)> 0) {

Serial.println ("Conecto");

client.print ("GET /? sismo = 1"); // Enviamos los datos por GET

client.println ("HTTP/1.0");

client.println ("Kasutajaagent: Arduino 1.0");

}

client.stop ();

client.flush (); }

qaPreVal = qaVal;

}

Puedes descargar el código en github.com/bettocr/alertasismo

Täielik kood:

#kaasake

#kaasake

// QuakeAlarm

#define QUAKEALARM A0

// Variable que mantiene el valor anterior del QuakeAlarm

staatiline diferentsiaal;

int qaVal = 0;

int qaPreVal = 0; int lävi = 10; int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web

// Muutujad Ethernet

// Tutvuge los valoresrespondentidega MAC, IP local, Puerta de Enlace y Máscara de Red

bait mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; bait ip = {192, 168, 8, 20}; // Direccion IP del Arduino bait server = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient klient; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}

void loop () {

qaVal = analogRead (QUAKEALARM);

diferencia = qaPreVal - qaVal;

kui ((diferencia> 0) ja (diferencia> = künnis) ja ((millis () - ultimaConexion)> intervaloTiempo)) {

kontador = kontador + 1; Serial.print ("Sismo!"); Serial.println (kontador); ultimaConexion = millis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? võti = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("Kasutajaagent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }

3. samm: Código Python

Código Python
Código Python

Este código básicamente crea un servicio web en el puerto 5002 del servidor (yo lo uso en un Raspberry Pi en mi casa), que recibe el aviso del Arduino para luego enviar un Tuit.

Lo hice de esta manera para poder implementar estadísticas y en futuro poderlo usar en algún servicio de notificaciones PUSH para móviles.

Para que pueda tuitear deben crear en apps.twitter.com una applica y obtener los datos Consumer Key (API Key), Consumer Secret (API Secret), Access Token y Access Token Secret. y en la función tweet cambiar las xxxxx por sus respectivos valores.

Laadige alla koodide täielik allalaadimine saidil github.com/bettocr/alertasismo või copiarlo a continuación:

#!/usr/bin/python2.7

#-*-kodeerimine: utf-8-*-

imporditaotlused, urllib2, urllib, tweepy

kolvi impordist Kolb, taotlus

StringIO import StringIO

kuupäevast ja ajast impordi kuupäevast, timedelta

tweet (mensaje):

CONSUMER_KEY = 'xxxxxxx'

CONSUMER_SECRET = 'xxxxxxxx'

ACCESS_KEY = 'xxxxxxxx'

ACCESS_SECRET = 'xxxxxxxx'

auth = tweepy. OAuthHandler (CONSUMER_KEY, CONSUMER_SECRET)

auth.set_access_token (ACCESS_KEY, ACCESS_SECRET)

api = tweepy. API (auth, parser = tweepy.parsers. JSONParser ())

tweetid = api.update_status (olek = mensaje)

app = kolb (_ nimi_)

@app.route ("/", metoodika = ['GET'])

def sismo ():

proovige:

sismo = request.args.get ("sismo")

kui (str (sismo) == "1"):

t = datetime.now ()

hora = t.strftime ("%-I:%M%p")

tweet ("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")

välja arvatud IOError kui viga: prindi "Fallo"

üle andma

välja arvatud erand nagu e:

print "Erand"+str (e)

üle andma

tagasta "OK"

4. samm: täpsustage finaalid

Finaalid
Finaalid
Finaalid
Finaalid
Finaalid
Finaalid
Finaalid
Finaalid

Como Pasos nägemused para darle una mejor imagen hice lo siguiente

  • Corte la Placa de Circuito justo para que entrara en el espacio destinado a la batería.
  • Con un mototool hice un hueco en la tapa en la esquina superior derecha para que los cable entraran.
  • Materjal on mõistlik, pool los 3 kaablit que van al Arduino para que parezca un solo cable.
  • Y para poner el arduino en la pared, hice la impresión 3D de este mount

Pueden seguir el bot que hice con estos pasos ja @SismoTico

Soovitan: