Innholdsfortegnelse:

Alerta Sísmica Temprana .: 4 trinn (med bilder)
Alerta Sísmica Temprana .: 4 trinn (med bilder)

Video: Alerta Sísmica Temprana .: 4 trinn (med bilder)

Video: Alerta Sísmica Temprana .: 4 trinn (med bilder)
Video: Вещи, которые мистеру Уэлчу больше не разрешается делать в сборнике для чтения RPG № 1-2450 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 produceen 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.

El presente proyecto busca crear un sistema de alerta sísmica temprana en twitter.

Materialer en bruk

- 1 Arudino UNO (Costo ca. 25 USD)

- 1 Arduino Shield Ehternet (Costo ca 24 dollar)

- 1 skjelvealarm (Costo ca. 30 dollar)

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

- Cautin y soldadura

Trinn 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

Para poder hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", vi kan også bruke en konektor de la batería de 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 cable:

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

Primero el cable de 5V que a a alimentar el sensor, luego el A0 que va a monitorear 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.

Det er viktig å koble til en 9V -sensor, en kabel som ikke er positiv, eller at den er negativ eller mye mer.

Trinn 2: Código Arduino

En el Arduino gir oss et kjennetegn som kan gi 2 tillatelser:

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

Du kan også forklare en del av dokumentet, og det er ingen spørsmål om hvordan du kan forklare det fullstendig.

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

#inkludere

#inkludere

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 servicio web.

statisk int differanse;

int qaVal = 0; int qaPreVal = 0;

int terskel = 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 for tjenestene som kan motta 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 oppsett () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);

Ethernet.begynner (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 información y otro.

void loop () {

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

if ((diferencia> 0) og (diferencia> = terskel) 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 ("Brukeragent: Arduino 1.0");

}

client.stop ();

client.flush (); }

qaPreVal = qaVal;

}

Puedes last ned el código no github.com/bettocr/alertasismo

Fullstendig informasjon:

#inkludere

#inkludere

// QuakeAlarm

#define QUAKEALARM A0

// Variabel que mantiene el valor anterior del QuakeAlarm

statisk int differanse;

int qaVal = 0;

int qaPreVal = 0; int terskel = 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 innføringer av korrespondenter til MAC, IP -lokal, 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 oppsett () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}

void loop () {

qaVal = analogRead (QUAKEALARM);

differensia = qaPreVal - qaVal;

if ((diferencia> 0) og (diferencia> = terskel) og ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); if (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 ("Brukeragent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }

Trinn 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 for 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 of Consumer Key (API Key), Consumer Secret (API Secret), Access Token and Access Token Secret. y en la función tweet cambiar las xxxxx av sus respektivos valores.

Last ned for å fullføre no en github.com/bettocr/alertasismo o kopiarlo a continuación:

#!/usr/bin/python2.7

#-*-koding: utf-8-*-

importforespørsler, urllib2, urllib, tweepy

fra kolbeimport Flaske, forespørsel

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

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

t = datetime.now ()

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

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

unntatt IOError som feil: skriv ut 'Fallo'

sende

unntatt Unntak som e:

print "Unntak"+str (e)

sende

returner "OK"

Trinn 4: Detaljerer finalene

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 som er fornuftig, kan du koble til 3 kabler som kan brukes av en arduino.
  • 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

Anbefalt: