Πίνακας περιεχομένων:

Alerta Sísmica Temprana .: 4 Βήματα (με Εικόνες)
Alerta Sísmica Temprana .: 4 Βήματα (με Εικόνες)

Βίντεο: Alerta Sísmica Temprana .: 4 Βήματα (με Εικόνες)

Βίντεο: Alerta Sísmica Temprana .: 4 Βήματα (με Εικόνες)
Βίντεο: Horizon: Forbidden West (The Movie) 2024, Ιούλιος
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

Επεξήγηση επεξηγήσεων

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.

El presente proyecto busca crear un sistema de alerta sísmica temprana στο twitter.

Materiales a utilizar

- 1 Arudino UNO (Costo περίπου $ 25 USD)

- 1 Arduino Shield Ehternet (Costo Περίπου 24 δολάρια ΗΠΑ)

- 1 συναγερμός σεισμού (Costo περίπου $ 30 usd)

- 1 Placa de Circuito impresa para prototipos (Costo Approx. $ 0,60 usd) ή uno protoboard

- 3 καλώδια Jumper de diferentes colores (Costo Περίπου 0,30 δολάρια ΗΠΑ)

- 1 Conector de batería de 9V (Costo Περίπου 0,30 δολάρια ΗΠΑ)

- Cautin y soldadura

Βήμα 1: Καλώδια Como Colocar Los

Καλώδια Como Colocar Los
Καλώδια Como Colocar Los
Καλώδια Como Colocar Los
Καλώδια Como Colocar Los
Καλώδια Como Colocar Los
Καλώδια Como Colocar Los
Καλώδια Como Colocar Los
Καλώδια Como Colocar Los

Για να υποδεχτείτε τον προμηθευτή σας, προχωρήστε στον αισθητήρα "Quake Alarm", vamos a usar el conector 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" μπορεί να χρησιμοποιηθεί για να σας ενημερώσει για την ανίχνευση του P, για την παρακολούθηση της επιλογής σας, αλλά και για τη χρήση του Pin A0 για monitorear un cambio en el voltaje.

Καλώδια καλωσορίσματος:

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

Primero el cable de 5V que va 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.

Σημαντικό είναι το conectar el conector de 9V al sensor, el cable negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.

Βήμα 2: 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. Μπορείτε να χρησιμοποιήσετε μια μεγάλη ποικιλία σε μια μεγάλη υπηρεσία στον ιστό

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

Για πρώτη φορά, πρέπει να χρησιμοποιηθούν ελεύθερα τα απαραίτητα στοιχεία για τη χρήση της προστασίας του ethernet και της σειράς.

#περιλαμβάνω

#περιλαμβάνω

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

#define QUAKEALARM A0

Seguido definimos las μεταβλητές που δεν είναι αυτές που θα ακολουθήσουν τις διαδικασίες παρακολούθησης των μεταβολών που θα γίνουν από το δίκτυο και θα σας βοηθήσουν στο lalamada al servicio web.

στατική int diferencia;

int qaVal = 0; int qaPreVal = 0;

int κατώφλι = 10;

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

μακρύς

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. También vamos a definir la IP del servidor que recibirá lo datos.

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

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

ψηφιόλεξη

διακομιστής = {192, 168, 15, 111}; // Direccion IP del servidor

Πελάτης EthernetClient.

Όλες οι μεταβλητές, είναι ελεύθερες οι κατηγορίες που περιλαμβάνονται στο πρόγραμμα που τείνει να χρησιμοποιήσει το Arduino:

  • Incializamos el serial a 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.

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

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

}

Y para terminar el programa, ponemos en una función cíclica que revise el voltaje si este is 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 de información y otro.

void loop () {

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

εάν ((diferencia> 0) και (diferencia> = κατώφλι) και ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1;

Serial.print ("Sismo!");

Serial.println (contador);

ultimaConexion = millis ();

if (client.connect (διακομιστής, 5002)> 0) {

Serial.println ("Conecto");

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

client.println ("HTTP/1.0");

client.println ("User-Agent: Arduino 1.0");

}

client.stop ();

client.flush (); }

qaPreVal = qaVal;

}

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

Ολοκληρωμένο Código:

#περιλαμβάνω

#περιλαμβάνω

// QuakeAlarm

#define QUAKEALARM A0

// Μεταβλητή que mantiene el valor anterior del QuakeAlarm

στατική int diferencia;

int qaVal = 0;

int qaPreVal = 0; int κατώφλι = 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

// Μεταβλητές Ethernet

// Se introducen los valoresrespondientes a MAC, IP local, Puerta de Enlace y 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 client? 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;

εάν ((diferencia> 0) και (diferencia> = κατώφλι) και ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); if (client.connect (διακομιστής, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos για GET client.println ("HTTP/1.0"); client.println ("User-Agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }

Βήμα 3: 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 un futuro poderlo usar en algún servicio de notificaciones PUSH para móviles.

Για να δημιουργήσετε ένα πρόγραμμα δημιουργίας σε apps.twitter.com, μπορείτε να χρησιμοποιήσετε το πακέτο καταναλωτικών κλειδιών (κλειδί API), καταναλωτικό μυστικό (μυστικό API), Access Token και Access Token Secret. y en la función tweet cambiar las xxxxx por sus respectivos valores.

Πηγαίνετε για να ολοκληρώσετε το github.com/bettocr/alertasismo ή να αντιγράψετε μια συνέχεια:

#!/usr/bin/python2.7

#-*-κωδικοποίηση: utf-8-*-

αιτήματα εισαγωγής, urllib2, urllib, tweepy

από φιάλη εισαγωγής Φιάλη, αίτημα

από StringIO εισαγωγή StringIO

από datetime εισαγωγή 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 = Φιάλη (_ όνομα_)

@app.route ("/", μέθοδοι = ['GET'])

def sismo ():

προσπαθήστε:

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

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

t = datetime.now ()

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

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

εκτός από το IOError as err: εκτύπωση 'Fallo'

πέρασμα

εκτός από την εξαίρεση ως e:

εκτύπωση "Εξαίρεση"+str (e)

πέρασμα

επιστροφή "ΟΚ"

Βήμα 4: Detalles Finales

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

Como Pasos adicionales 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 καλώδια entraran.
  • Con material termo sensible, puse los 3 cables 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 en @SismoTico

Συνιστάται: