Turinys:

Alerta Sísmica Temprana: 4 žingsniai (su nuotraukomis)
Alerta Sísmica Temprana: 4 žingsniai (su nuotraukomis)

Video: Alerta Sísmica Temprana: 4 žingsniai (su nuotraukomis)

Video: Alerta Sísmica Temprana: 4 žingsniai (su nuotraukomis)
Video: Japón activa la alerta de tsunami en su costa occidental tras un terremoto de magnitud 7,4 2024, Liepa
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 paaiškinimas

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 system de alerta sísmica temprana ir twitter.

Materiales a utilizar

- 1 Arudino UNO (apytiksliai 25 USD USD)

- 1 „Arduino Shield Ehternet“(„Costo Aprox“24 USD)

- 1 drebėjimo aliarmas (Costo Aprox. 30 USD)

- 1 „Placa de Circuito impresa para prototipos“(„Costo Aprox“. 0,60 USD) arba protokolas

- 3 kabeliai „Jumper de diferentes colores“(„Costo Aprox“. 0,30 USD)

- 1 maitinimo šaltinis iš 9 V baterijos („Costo Aprox“. 0,30 USD)

- Cautin y soldadura

1 žingsnis: „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“

Jei norite sužinoti, kaip tai padaryti, ar ne, tai yra jūsų jutiklis "Quake Alarm", kuris naudojamas naudojant baterijas ir 9v del mismo.

El Arduino le dará 5v al sensorius, skirtas ne tik poder funkcijai.

El "Quake Alarm" yra vienas iš geriausių pranešimų apie pavojų ir aptikimą, kai yra P, tai yra parlante suena el voltaje baja, por lo que usaremos el Pin A0 para monitororear un cambio en el voltaje.

En el siguiente orden se deben poner los kabeliai:

5v - A0 - Negro kabelis, prijungtas prie baterijų

Pirminis 5 V kabelio kabelis yra alimentarinis jutiklis, 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.

Svarbus 9 colių jutiklio jungiklis, kabelis negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.

2 žingsnis: „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 and a service web

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

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

#įtraukti

#įtraukti

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

#define QUAKEALARM A0

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

statinis int diferencia;

int qaVal = 0; int qaPreVal = 0;

int slenkstis = 10;

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

ilgas

ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web

Ahora crear las variables para el uso del ethernet, donde apibrėžimai el MAC de la tarjeta de red, la IP que usará esta tarjeta y la clase de type EthernetClient for poder hacer uso de la tarjeta de red. También vamos a definir la IP del servidor que recibirá lo datos.

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

baitas ip = {192, 168, 15, 120}; // „Direccion IP del Arduino“

baitas

serveris = {192, 168, 15, 111}; // „Direccion IP del servidor“

„EthernetClient“klientas;

„Ya con las“kintamieji, librerías y clases listas podemos iniciar el program que tendrá nuestro Arduino:

  • Parduodamas serijos numeris 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 program, ponemos en una función cíclica que revize 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 informationción y otro.

void loop () {

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

jei ((diferencia> 0) ir (diferencia> = slenkstis) ir ((millis () - ultimaConexion)> intervaloTiempo)) {

kontadorė = kontadorė + 1;

Serial.print („Sismo!“);

Serial.println (kontadorė);

ultimaConexion = milis ();

if (client.connect (serveris, 5002)> 0) {

Serial.println („Conecto“);

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

client.println („HTTP/1.0“);

client.println („Vartotojo agentas:„ Arduino 1.0 ““);

}

client.stop ();

client.flush (); }

qaPreVal = qaVal;

}

Atsisiųskite el. Kodą ir github.com/bettocr/alertasismo

Visas „Código“:

#įtraukti

#įtraukti

// „QuakeAlarm“

#define QUAKEALARM A0

// Variable que mantiene el valor anterior del QuakeAlarm

statinis int diferencia;

int qaVal = 0;

int qaPreVal = 0; int slenkstis = 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

// Kintamieji Ethernet

// Įveskite los valores korespondentus MAC, IP local, Puerta de Enlace y Máscara de Red

baitas mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; baitas ip = {192, 168, 8, 20}; // „Direccion IP del Arduino“baitų serveris = {192, 168, 8, 11}; // „Direccion IP del servidor EthernetClient client“; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // eternetas Ethernet.begin (mac, ip); // „Inicializamos el Ethernet Shield“}

void loop () {

qaVal = analogRead (QUAKEALARM);

diferencia = qaPreVal - qaVal;

jei ((diferencia> 0) ir (diferencia> = slenkstis) ir ((millis () - ultimaConexion)> intervaloTiempo)) {

kontadorė = kontadorė + 1; Serial.print („Sismo!“); Serial.println (kontadorė); ultimaConexion = milis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? raktas = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println („Vartotojo agentas:„ Arduino 1.0 ““); } client.stop (); client.flush (); } qaPreVal = qaVal; }

3 žingsnis: „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.

Norėdami tai padaryti, naudokite kūrimo ir programų kūrimo programas.twitter.com, kad būtų galima naudoti ir gauti informacijos apie vartotojo raktą (API raktas), vartotojo paslaptį (API paslaptis), prieigos raktą ir prieigos žetono paslaptį. y en la función tweet cambiar las xxxxx por sus respectivos valores.

Atsisiųskite pilną kodo parsisiuntimą ir github.com/bettocr/alertasismo or copiarlo a continuación:

2.7. usr/bin/python

#-*-kodavimas: utf-8-*-

importo užklausos, urllib2, urllib, tweepy

iš kolbos importo Kolba, prašymas

iš „StringIO“importuoti „StringIO“

iš datos ir laiko importo data, laikas

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 (būsena = mensaje)

programa = kolba (_ vardas_)

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

def sismo ():

bandyti:

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

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

t = datetime.now ()

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

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

išskyrus „IOError“kaip klaida: spausdinti „Fallo“

praeiti

išskyrus išimtis, pvz.:

spausdinti „Išimtis“+str (e)

praeiti

grįžti „gerai“

4 žingsnis: Išsamiai paaiškinkite finalą

Detalės finalas
Detalės finalas
Detalės finalas
Detalės finalas
Detalės finalas
Detalės finalas
Detalės finalas
Detalės finalas

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 kabeliai entraran“.
  • Sudėtinga medžiaga yra pusiau 3 kabeliai, esantys Arduino para que parezca ir solo kabeliuose.
  • 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

Rekomenduojamas: