תוכן עניינים:

Alerta Sísmica Temprana .: 4 שלבים (עם תמונות)
Alerta Sísmica Temprana .: 4 שלבים (עם תמונות)

וִידֵאוֹ: Alerta Sísmica Temprana .: 4 שלבים (עם תמונות)

וִידֵאוֹ: Alerta Sísmica Temprana .: 4 שלבים (עם תמונות)
וִידֵאוֹ: Как перестать ковырять кожу и выдергивать волосы за 4 шага 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

הסבר על Breve

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.

המערכת מציגה את מערכת ההרשמה של מערכת ההתרעה והטוויטר.

חומר שימושי

- UNO אחד של Arudino (Costo כ -25 $ USD)

- אחד Arduino Shield Ehternet (Costo כ -24 דולר)

- אזעקה אחת לרעידה (Costo כ -30 דולר)

- 1 לילה של Circuito impresa for prototipos (Costo Aprox. 0.60 $ usd) או protoboard

- 3 כבלים מגשר מגוונים שונים (Costo כ -0.30 דולר ארה ב)

- מחבר אחד של 9V (Costo כ -0.30 דולר ארה ב)

- Cautin y soldadura

שלב 1: Como Colocar Los Cables

קומו קולוקאר לוס כבלים
קומו קולוקאר לוס כבלים
קומו קולוקאר לוס כבלים
קומו קולוקאר לוס כבלים
קומו קולוקאר לוס כבלים
קומו קולוקאר לוס כבלים
קומו קולוקאר לוס כבלים
קומו קולוקאר לוס כבלים

עבור poder hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", אפשר גם להשתמש בקונקטור של הבטריה 9v del mismo.

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

El "Quake Alarm" הוא אחד הפרלנטים עבור 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 kabels:

5v - A0 - כבל הכושי del conector de batería

כבל Primero 5V הוא בעל חיישן תזונתי, A0 que a צג חשמל ומכשיר.

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.

חשוב כי חיישן הקונקטור של 9V אל חיישן, הכבל הכושי יכול לשמש את הפוזיטיביות ואת רוג'ו השלילי, הרבה יותר.

שלב 2: Código Arduino

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

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

אנו יכולים להסביר את כל הנושאים העיקריים, ואין לנו שאלות בנושא זה.

אם יש עוד מידע עלינו לאפשר לי לייברריאס נזרי פארא פודר usar el shield ethernet y el serial.

#לִכלוֹל

#לִכלוֹל

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

#define QUAKEALARM A0

Seguido definimos las משתנים que nos van a ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada 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 משתנים עבור el uso del ethernet, אפשר להגדיר את MAC de la tarjeta de red, la IP que usará esta tarjeta y la clase de tipo EthernetClient for poder hacer uso de la tarjeta de red. אנו יכולים להגדיר את כתובת ה- IP del servidor que recibirá lo datos.

בייט mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

בתים ip = {192, 168, 15, 120}; // Direccion IP del Arduino

בייט

שרת = {192, 168, 15, 111}; // Direccion IP del servidor

לקוח EthernetClient;

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

  • Incializamos el סדרת 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 () {Serial.begin (57600); pinMode (QUAKEALARM, קלט);

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

לולאת חלל () {

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

if ((diferencia> 0) ו- (diferencia> = סף) ו- ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1;

Serial.print ("סיסמו!");

Serial.println (contador);

ultimaConexion = מיליס ();

אם (client.connect (שרת, 5002)> 0) {

Serial.println ("Conecto");

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

client.println ("HTTP/1.0");

client.println ("משתמש-סוכן: Arduino 1.0");

}

client.stop ();

client.flush (); }

qaPreVal = qaVal;

}

Puedes הורד את el código en github.com/bettocr/alertasismo

סימן מלא:

#לִכלוֹל

#לִכלוֹל

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

// משתנים אתרנט

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

בייט mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; בתים ip = {192, 168, 8, 20}; // Direccion IP del Arduino server byte = {192, 168, 8, 11}; // Direccion IP del servidor לקוח EthernetClient; הגדרת void () {Serial.begin (57600); pinMode (QUAKEALARM, קלט); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}

לולאת חלל () {

qaVal = analogRead (QUAKEALARM);

diferencia = qaPreVal - qaVal;

if ((diferencia> 0) ו- (diferencia> = סף) ו- ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1; Serial.print ("סיסמו!"); Serial.println (contador); ultimaConexion = מיליס (); if (client.connect (שרת, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("משתמש-סוכן: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }

שלב 3: פודיון Código

קודיגו פייתון
קודיגו פייתון

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 and algún servicesio de notificaciones PUSH para móviles.

על מנת להזין את המאפיינים העיקריים ב- apps.twitter.com ניתן לקבל מידע על מפתח צרכנים (מפתח API), סוד צרכנים (סוד סוד), אסימון גישה וסוד גישה לאסימון. y en la función tweet cambiar las xxxxx por susvivosos valores.

ניתן להוריד את כל הסרטונים באתר github.com/bettocr/alertasismo o kopiarlo a continuación:

#!/usr/bin/python2.7

#-*-קידוד: utf-8-*-

בקשות ייבוא, urllib2, urllib, tweepy

מבקבוק יבוא בקבוק, בקשה

מ- StringIO יבוא StringIO

מאת datetime יבוא datetime, timedelta

ציוץ def (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.route ("/", method = ['GET'])

def sismo ():

לְנַסוֹת:

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

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

t = datetime.now ()

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

tweet ("[En Pruebas] אפשרי להמציא en los próximos segundos ("+hora+")")

למעט IOError כטעות: הדפס 'Fallo'

לַעֲבוֹר

למעט חריגה כמו e:

- הדפס "חריג"+str (e)

לַעֲבוֹר

החזר "בסדר"

שלב 4: מסיר את הסופי

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

Como Pasos adicionales para darle una major 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.
  • עם חומר termo sensible, אפשר להעביר 3 כבלים מהארדואינו.
  • Y para poner el arduino en la pared, hice la impresión 3D de este mount

אפשר לראות את כל הבוטים האלה עם @SismoTico

מוּמלָץ: