সুচিপত্র:

Alerta Sísmica Temprana।: 4 টি ধাপ (ছবি সহ)
Alerta Sísmica Temprana।: 4 টি ধাপ (ছবি সহ)

ভিডিও: Alerta Sísmica Temprana।: 4 টি ধাপ (ছবি সহ)

ভিডিও: Alerta Sísmica Temprana।: 4 টি ধাপ (ছবি সহ)
ভিডিও: Simulación alerta sísmica terremoto Coquimbo 8,4 de 2015 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 productionn 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 alertta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda।

El presente proyecto busca crear un sistema de alertta sísmica temprana en twitter।

উপযোগী উপাদান

- 1 Arudino UNO (Costo aprox। $ 25usd)

- 1 Arduino Shield Ehternet (Costo Aprox $ 24 USD)

- 1 কোয়েক অ্যালার্ম (কস্টো অ্যাপ্রক্স। $ 30 ইউএসডি)

- 1 Placa de Circuito impresa para prototipos (Costo Aprox। $ 0.60 USD) o una protoboard

- 3 ক্যাবল জাম্পার ডি ডিফারেন্টস কালার (কস্টো অ্যাপ্রক্স $ 0.30 ইউএসডি)

- 1 Conector de batería de 9V (Costo Aprox। $ 0.30 USD)

- Cautin y soldadura

ধাপ 1: কোমো কলোকর লস কেবলস।

কোমো কলোকর লস কেবলস।
কোমো কলোকর লস কেবলস।
কোমো কলোকর লস কেবলস।
কোমো কলোকর লস কেবলস।
কোমো কলোকর লস কেবলস।
কোমো কলোকর লস কেবলস।
কোমো কলোকর লস কেবলস।
কোমো কলোকর লস কেবলস।

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।

এল "কোয়েক অ্যালার্ম" টিয়েন আন পার্লান্টে প্যারা এমিটির উনা এলার্টা সি ডিটেকটা অনডাস পি, সি ইস্টি পার্লান্টে সুয়েনা এল ভোলতাজে বাজা, পোর লো কি ইউসারেমোস এল পিন এ 0 প্যারা মনিটোর আন আন কাম্বিও এন এল ভোল্টাজে।

En el siguiente orden se deben poner los cables:

5v - A0 - কেবল নিগ্রো ডেল কানেক্টর ডি ব্যাটারিয়া।

প্রাইম্রো এল ক্যাবল ডি 5V কিউ এএ এলিমেন্টার এল সেন্সর, লুয়েগো এল এ 0 কিউ ভিএ এ মনিটরিয়ার এল ভোল্টাজে ওয়াই ফাইনালমেন্ট এল কেবল নিগ্রো ডেল কানেক্টর।

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 al 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 permitir 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 a profundidad luego de la explicación esta el código completo y donde descargarlo।

Para iniciar vamos a incluir las librerías necesarias 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 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 লাস ভেরিয়েবল 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।

বাইট ম্যাক = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

বাইট আইপি = {192, 168, 15, 120}; // Direccion IP del Arduino

বাইট

সার্ভার = {192, 168, 15, 111}; // Direccion IP del servidor

ইথারনেট ক্লায়েন্ট ক্লায়েন্ট;

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

  • Incializamos এল সিরিয়াল একটি 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।

অকার্যকর সেটআপ () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);

Ethernet.begin (ম্যাক, আইপি); // Inicializamos এল ইথারনেট Shiাল

}

Y para terminar el programma, 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;

যদি ((diferencia> 0) এবং (diferencia> = threshold) এবং ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1;

Serial.print ("Sismo!");

Serial.println (contador);

ultimaConexion = মিলিস ();

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 ("ব্যবহারকারী-এজেন্ট: Arduino 1.0");

}

client.stop ();

client.flush (); }

qaPreVal = qaVal;

}

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

Cigodigo সম্পূর্ণ:

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

// কোয়াক অ্যালার্ম

#QUAKEALARM A0 সংজ্ঞায়িত করুন

// ভেরিয়েবল কিউ ম্যানটিয়েন এল ভ্যালার অ্যান্টেরিয়র ডেল কোয়াক অ্যালার্ম

স্ট্যাটিক 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

// ভেরিয়েবলস ইথারনেট

// সে পরিচয় করিয়ে দেয় লস ভ্যালোরস একটি MAC, IP স্থানীয়, Puerta de Enlace y Máscara de Red

বাইট ম্যাক = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; বাইট আইপি = {192, 168, 8, 20}; // Direccion IP del Arduino বাইট সার্ভার = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient client; অকার্যকর সেটআপ () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ইথারনেট Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}

অকার্যকর লুপ () {

qaVal = analogRead (QUAKEALARM);

diferencia = qaPreVal - qaVal;

যদি ((diferencia> 0) এবং (diferencia> = threshold) এবং ((millis () - ultimaConexion)> intervaloTiempo)) {

contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = মিলিস (); যদি (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 ("ব্যবহারকারী-এজেন্ট: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }

ধাপ 3: Código পাইথন

Código পাইথন
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 বাস্তবায়নকারী estadísticas y en un futuro poderlo usar en algún servicio de notificaciones PUSH para móviles।

Para que pueda tuitear deben crear en apps.twitter.com una aplicación y obtener los datos Consumer Key (API Key), Consumer Secret (API Secret), Access Token y Access Token Secret। y en la función টুইট cambiar las xxxxx por sus respectivos valores।

Pueden descargar el código completo en github.com/bettocr/alertasismo o copiarlo a continuación:

#!/usr/bin/python2.7

#-*-কোডিং: utf-8-*-

আমদানি অনুরোধ, urllib2, urllib, tweepy

ফ্লাস্ক আমদানি ফ্লাস্ক থেকে, অনুরোধ

StringIO থেকে StringIO আমদানি করুন

ডেটটাইম আমদানি ডেটটাইম থেকে, টাইমডেল্টা

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 ())

টুইটড = api.update_status (স্ট্যাটাস = mensaje)

অ্যাপ = ফ্লাস্ক (_ নাম_)

@app.route ("/", পদ্ধতি = ['GET'])

def sismo ():

চেষ্টা করুন:

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

যদি (str (sismo) == "1"):

t = datetime.now ()

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

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

ভুল হিসাবে IOError ছাড়া: মুদ্রণ 'Fallo'

পাস

ই হিসাবে ব্যতিক্রম ছাড়া:

মুদ্রণ "ব্যতিক্রম"+str (ই)

পাস

ফিরুন "ঠিক আছে"

ধাপ 4: ডিটেলস ফাইনালস

বিস্তারিত ফিনালে
বিস্তারিত ফিনালে
বিস্তারিত ফিনালে
বিস্তারিত ফিনালে
বিস্তারিত ফিনালে
বিস্তারিত ফিনালে
বিস্তারিত ফিনালে
বিস্তারিত ফিনালে

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 কেবল।
  • 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 ismSismoTico

প্রস্তাবিত: