Indholdsfortegnelse:

Alerta Sísmica Temprana .: 4 trin (med billeder)
Alerta Sísmica Temprana .: 4 trin (med billeder)

Video: Alerta Sísmica Temprana .: 4 trin (med billeder)

Video: Alerta Sísmica Temprana .: 4 trin (med billeder)
Video: Предупреждение о землетрясении, она переключается мгновенно 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 forklaring

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.

Vi præsenterer et effektivt netværk for et alarmsystem på Twitter.

Materialer en udnyttelse

- 1 Arudino UNO (Costo ca. $ 25usd)

- 1 Arduino Shield Ehternet (Costo Ca. 24 USD)

- 1 Quake Alarm (Costo Ca. 30 USD)

- 1 Circuito impresa para prototipos (Costo Ca. 0,60 $ usd) eller en protoboard

- 3 kabler Jumper de diferentes colores (Costo Ca. 0,30 USD)

- 1 strømforsyning til 9V (Costo Ca. 0,30 USD)

- Forsigtig og solgt

Trin 1: Como Colocar Los Cables

Como Colocar Los Cables
Como Colocar Los Cables
Como Colocar Los Cables
Como Colocar Los Cables
Como Colocar Los Cables
Como Colocar Los Cables
Como Colocar Los Cables
Como Colocar Los Cables

Til poder hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", kan også bruges til at opbygge en batteri på 9v del mismo.

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

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

En el siguiente orden se deben poner los kabler:

5v - A0 - Kabel negro del conector de batería

Primero el -kabel til 5V er en alimentarisk sensor, der kan også bruges til A0 -overvågning af den elektroniske kabel og tilslutning af en kabel.

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.

Vigtigt, at vi kan tilslutte en 9V -sensor, en kabel kan ikke bruges til at være positiv, eller at den kan blive negativ eller meget mere.

Trin 2: Código Arduino

En el Arduino giver os et kendskab til, hvad der kan tillades 2 kosas:

  1. Leer el voltaje til buscar cambios
  2. Si hay una variación en el voltaje hacer una llamada a un service web

Vi kan også forklare en del af vores dokumentation, og vi kan ikke finde nogen oplysninger, der kan forklares fuldstændigt og ikke kan downloades.

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

#omfatte

#omfatte

Luego vamos a crear una constante que va a tener el PIN Analogic que vamos a usar

#define QUAKEALARM A0

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

statisk int diferencia;

int qaVal = 0; int qaPreVal = 0;

int tærskel = 10;

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

lang

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 tipo EthernetClient para poder hacer uso de la tarjeta de red. Vi kan definere en IP -adresse, hvor vi kan modtage data.

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

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

byte

server = {192, 168, 15, 111}; // Direccion IP del servidor

EthernetClient -klient;

Ya con las variables, librerías and clases listas podemos iniciar el programa que tendrá nuestro Arduino:

  • Incializamos el serienummer 57600
  • Luego 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.

ugyldig opsætning () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);

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

}

Y para terminar el programa, ponemos en una función cíclica que revise 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 informationac oón.

void loop () {

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

hvis ((diferencia> 0) og (diferencia> = tærskel) og ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1;

Serial.print ("Sismo!");

Serial.println (contador);

ultimaConexion = millis ();

hvis (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 ("Bruger-agent: Arduino 1.0");

}

client.stop ();

client.flush (); }

qaPreVal = qaVal;

}

Puedes downloader el código da github.com/bettocr/alertasismo

Komplet beskrivelse:

#omfatte

#omfatte

// QuakeAlarm

#define QUAKEALARM A0

// Variabel que mantiene el valor anterior del QuakeAlarm

statisk int diferencia;

int qaVal = 0;

int qaPreVal = 0; int tærskel = 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

// Variabler Ethernet

// Se introducer los valores correspondentses a MAC, IP local, Puerta de Enlace og Máscara de Red

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

void loop () {

qaVal = analogRead (QUAKEALARM);

diferencia = qaPreVal - qaVal;

hvis ((diferencia> 0) og (diferencia> = tærskel) og ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); hvis (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("Bruger-agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }

Trin 3: Código Python

Python
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 un futuro poderlo usar and algún servicio de notificaciones PUSH para móviles.

Para que pueda tuitear deben crear en apps.twitter.com for aplicación and obtener los data at 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.

Pueden download el código completo da github.com/bettocr/alertasismo o kopiarlo a continuación:

#!/usr/bin/python2.7

#-*-kodning: utf-8-*-

importanmodninger, urllib2, urllib, tweepy

fra kolbe import Kolbe, anmodning

fra StringIO import StringIO

fra datetime import datetime, timedelta

def 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 (status = mensaje)

app = kolbe (_ navn_)

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

def sismo ():

prøve:

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

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

t = datetime.now ()

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

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

undtagen IOError som fejl: udskriv 'Fallo'

passere

undtagen Undtagelse som e:

print "Undtagelse"+str (e)

passere

returner "OK"

Trin 4: Detallerer finales

Detalles Finales
Detalles Finales
Detalles Finales
Detalles Finales
Detalles Finales
Detalles Finales
Detalles Finales
Detalles Finales

Como Pasos adicionales para darle una major more image of 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 kabels entraran.
  • Med materiale, der er fornuftigt, kan du bruge 3 kabler, som kan bruges til et enkelt kabel.
  • 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 en @SismoTico

Anbefalede: