فهرست مطالب:

Alerta Sísmica Temprana .: 4 مرحله (همراه با تصاویر)
Alerta Sísmica Temprana .: 4 مرحله (همراه با تصاویر)

تصویری: Alerta Sísmica Temprana .: 4 مرحله (همراه با تصاویر)

تصویری: Alerta Sísmica Temprana .: 4 مرحله (همراه با تصاویر)
تصویری: Ciudades Resilientes | Alerta sísmica temprana| Ep # 4| AXA Research Fund 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 deteando estas ondas Pd، dándonos unos segundos antes que el sismo suceda.

El presente proyecto busca crear un sistema de alerta sísmica temprana در توییتر.

Materiales a utilizar

- 1 Arudino UNO (Costo حدود 25 دلار آمریکا)

- 1 Arduino Shield Ehternet (Costo تقریبا 24 دلار آمریکا)

- 1 هشدار زلزله (Costo Approx. $ 30 usd)

- 1 Placa de Circuito impresa para prototipos (Costo Approx. $ 0.60 usd) یا بدون protoboard

- 3 کابل Jumper de diferentes colores (Costo Approx. $ 0.30 usd)

- 1 Conector de batería de 9V (Costo Approx. $ 0.30 usd)

- 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

Para poder hacer nuestro proyecto sin tener que abrir el sensor "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" tiene un parlante para emitir una alerta si detea ondas P، si este parlante suena el voltaje baja، por lo que que usaremos el Pin A0 para monitorear un cambio en el voltaje.

En el siguiente orden se deben poner los کابل:

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

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

Importante que con conctar 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. Si hay una variación en el voltaje hacer una llamada a un servicio web

Vamos a explicar un poco el código، si no quieres entenderlo به طور گسترده ای در مورد توضیحات لازم برای انجام کامل کارها و انجام کارها صحبت می کند.

Para iniciar vamos a incluir las librerías necedarias para poder 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

#تعریف QUAKEALARM A0

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

intic 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 for poder hacer uso de la tarjeta de red. También vamos a definir la IP del servidor que recibirá lo datos.

بایت مک = {0xDE ، 0xAD ، 0xBE ، 0xEF ، 0xFE ، 0xED} ؛

بایت ip = {192، 168، 15، 120}؛ // Direccion IP del Arduino

بایت

سرور = {192 ، 168 ، 15 ، 111} ؛ // Direccion IP del servidor

مشتری EthernetClient ؛

متغیرهای متداول ، به طور رایگان y clases listas podemos iniciar el programa que tendrá nuestro Arduino:

  • Incializamos el serial a 57600
  • Luego le decimos al arduino que el pin A0 (ثابت 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 (مک ، آی پی) ؛ // Inicializamos el Ethernet Shield

}

Y para terminar el programa، ponemos en una función cíclica که به تجدید نظر در ولتاژ شما می پردازیم از 5V پایین تر و پایین تر از خدمات GET le mana 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.

حلقه خالی () {

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

if ((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 ("عامل کاربر: Arduino 1.0") ؛

}

client.stop ()؛

client.flush ()؛ }

qaPreVal = qaVal؛

}

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

Código complete:

#عبارتند از

#عبارتند از

// QuakeAlarm

#تعریف QUAKEALARM A0

// متغیر que mantiene el valor anterior del QuakeAlarm

intic 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 valoresrespondientes a MAC، IP local، Puerta de Enlace y Máscara de Red

بایت مک = {0xDE ، 0xAD ، 0xBE ، 0xEF ، 0xFE ، 0xED} ؛ بایت ip = {192، 168، 8، 20}؛ // سرور بایت Direccion IP del Arduino = {192 ، 168 ، 8 ، 11} ؛ // Direccion IP del servidor EthernetClient client؛ void setup () {Serial.begin (57600)؛ pinMode (QUAKEALARM ، INPUT) ؛ // ethernet Ethernet.begin (مک ، آی پی) ؛ // Inicializamos el Ethernet Shield}

حلقه خالی () {

qaVal = analogRead (QUAKEALARM) ؛

diferencia = qaPreVal - qaVal؛

if ((diferencia> 0) و (diferencia> = آستانه) و ((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 for GET client.println ("HTTP/1.0")؛ client.println ("عامل کاربر: 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 برای luego enviar un Tuit.

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

برای استفاده از برنامه های کاربردی.twitter.com برنامه های کلیدی مصرف کننده (کلید API) ، راز مصرف کننده (راز API) ، دسترسی به نشانه و رمز ورود رمز را انتخاب کنید. y en la función توییت cambiar las xxxxx for sus respectivos valores.

Pueden descargar el código completeo github.com/bettocr/alertasismo o copiarlo a berdewamació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 ("/" ، روشها = ['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)

عبور

بازگشت "OK"

مرحله 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 cables 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

توصیه شده: