Índice:

Alerta Sísmica Temprana .: 4 Passos (com Imagens)
Alerta Sísmica Temprana .: 4 Passos (com Imagens)

Vídeo: Alerta Sísmica Temprana .: 4 Passos (com Imagens)

Vídeo: Alerta Sísmica Temprana .: 4 Passos (com Imagens)
Vídeo: 7 SINTOMAS de ALERTA de CÂNCER DE INTESTINO que você NUNCA PODE IGNORAR! 2024, Novembro
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 explicación

Durante um sismo se produz 3 tipos de ondas da primaria ou P que é importante para este projeto, viaja entre 8 e 13 km / s e é registrado por los equipos sismógrafos.

Existem sensores caseros, que nos dan um alerta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda.

O presente projeto busca criar um sistema de alerta sísmico temprana no Twitter.

Materiales a utilizar

- 1 Arudino UNO (custo aproximado de $ 25 USD)

- 1 Ehternet Arduino Shield (custo aproximado de $ 24 usd)

- 1 alarme de terremoto (custo aproximado de $ 30 usd)

- 1 Placa de Circuito Impresa para Prototipos (Custo Aprox. $ 0,60 usd) ou um Protoboard

- 3 cabos Jumper de diferentes colores (Costo Aprox. $ 0,30 usd)

- 1 Conector de bateria de 9V (Custo Aprox. $ 0,30 usd)

- Cautin y soldadura

Etapa 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 novo projeto sem tener que abrir o sensor "Quake Alarm", vamos usar o conector da bateria de 9v do mismo.

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

O "Alarme de terremoto" tem um parlamento para emitir um alerta si detecta ondas P, se este parlante suena el voltaje baja, por lo que usaremos o Pin A0 para monitorar uma mudança no voltaje.

En el siguiente orden se deben poner los cabos:

5v - A0 - Cabo negro do conector de bateria

Primeiro o cabo de 5V que vai a alimentar o sensor, luego el A0 que vai a monitor o voltaje e finalmente o cabo negro do conector.

Em outra fila conectamos o cabo Negro que vi o Arduino e o cabo vermelho que vi do conector.

una vez los tengamos en este orden soldamos para que la electricidad pase entre ellos.

Importante que ao conectar o conector de 9V ao sensor, o cabo negro passa a ser o positivo e o vermelho o negativo, muito cuidado com isso.

Etapa 2: Código Arduino

En el Arduino vamos criar um código que nos vai permitir 2 cosas:

  1. Leer el voltaje para buscar câmbio
  2. Si hay una variación en el voltaje hacer una llamada a un servicio web

Vamos a explicar un poco el código, se não quieres entendrelo a profundidad luego de la explicación este el código completo y donde descargarlo.

Para iniciar, vamos incluir as bibliotecas necesarias para poder usar o escudo ethernet e serial.

#incluir

#incluir

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

# define QUAKEALARM A0

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

static int diferencia;

int qaVal = 0; int qaPreVal = 0;

limite interno = 10;

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

grande

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

Agora crie as variáveis para o uso da ethernet, faça definições no MAC da tarja de vermelho, o IP que usará esta tarja e a classe de tipo EthernetClient para poder hacer o uso da tarja de vermelho. También vamos 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

byte

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

Cliente EthernetClient;

Ya com as variáveis, bibliotecas e listas de classes podemos iniciar o programa que tendrá nuestro Arduino:

  • Incializamos el serial a 57600
  • Luego le decimos al arduino that el pin A0 (constante QUAKEALARM) lo vamos a usar como un pin de entrada.
  • Finalmente iniciamos a tarjeta de tinto.

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

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

}

Y para terminar o programa, ponemos em uma função cíclica que revisar o voltaje si este es inferior a 5v que haga uma llamada al servidor e por meio de GET le manda el valor 1 a la variável "sismo". también filtra para que exista un lapso de tiempo de 5 segundos between un envió de información y otro.

void loop () {

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

if ((diferencia> 0) and (diferencia> = threshold) and ((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 /? 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 em github.com/bettocr/alertasismo

Código completo:

#incluir

#incluir

// QuakeAlarm

# define QUAKEALARM A0

// Variável que mantiene el valor anterior del QuakeAlarm

static int diferencia;

int qaVal = 0;

int qaPreVal = 0; limite interno = 10; intervaloTiempo int = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos from la ultima conexion al servicio web

// Variáveis Ethernet

// Se introducen los valores correspondientes 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}; // Servidor de bytes do Direccion IP del Arduino = {192, 168, 8, 11}; // Endereço IP do servidor EthernetClient cliente; 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;

if ((diferencia> 0) and (diferencia> = threshold) and ((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 ("User-Agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }

Etapa 3: Código Python

Código Python
Código Python

Este código básicamente criado um serviço web no porto 5002 do servidor (yo lo uso em um Raspberry Pi em minha casa), que recebe o aviso del Arduino para luego enviar um Tuit.

Lo hice de esta manera para poder implementar estadísticas e em um futuro poderlo usar em algún servicio de notificaciones PUSH for mobile.

Para que você possa abrir o deben criar em apps.twitter.com, uma aplicação e obtener os dados Chave do consumidor (chave API), Segredo do consumidor (Segredo API), Token de acesso e Segredo do token de acesso. y en la función tweet cambiar las xxxxx por sus respectivos valores.

Pueden descargar el código completo em github.com/bettocr/alertasismo ou copiarlo a continuação:

#! / usr / bin / python2.7

# - * - codificação: utf-8 - * -

solicitações de importação, urllib2, urllib, tweepy

from flask importar Flask, solicitar

de StringIO import StringIO

from 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 = Flask (_ name_)

@ app.route ("/", métodos = ['GET'])

def sismo ():

Experimente:

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

exceto IOError como err: imprimir 'Fallo'

passar

exceto exceção como e:

imprimir "Exceção" + str (e)

passar

retornar "OK"

Etapa 4: Detalles Finais

Detalles Finais
Detalles Finais
Detalles Finais
Detalles Finais
Detalles Finais
Detalles Finais
Detalles Finais
Detalles Finais

Como Pasos adicionales para darle una mejor imagen hice lo siguiente

  • Corte la Placa de Circuito justo para que entrara no espaço destinado à bateria.
  • Com uma mototool hice un hueco en la tapa en la esquina derecha superior para que los cabos entraran.
  • Com material termo sensível, puse os 3 cabos que vão para o Arduino para que parezca um cabo solo.
  • Y para poner o arduino no pared, hice a impressão 3D de este mount

Pueden seguir o bot que hice con estos pasos en @SismoTico

Recomendado: