Taula de continguts:
Vídeo: Alerta Sísmica Temprana .: 4 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Breve explicació
Durant un sisme es produeixen 3 tipus d’ondes la primària o P que és la important per a aquest projecte, viaja entre 8 i 13 km / s i està registrat pels equips sismògrafs.
Existen sensores caseros, que nos dan una alerta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda.
El present projecte busca crear un sistema d’alerta sísmica temprana a twitter.
Materials a utilitzar
- 1 Arudino UNO (Costo aprox. 25 USD)
- 1 Arduino Shield Ehternet (cost aproximat de 24 USD)
- 1 alarma de terratrèmol (aprox. 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. $ 0.60 usd) o una protoboard
- 3 cables de pont de diferents colors (Costo aprox. $ 0,30 usd)
- 1 connector de bateria de 9V (Costo aprox. $ 0,30 usd)
- Cautin y soldadura
Pas 1: Como Colocar Los Cables
Per poder fer el nostre projecte sense tenir que obrir el sensor "Quake Alarm", vamos a usar el conector de la batería de 9v del mismo.
El Arduino le dará 5v al sensor amb els que va a poder funcionar bé.
El "Quake Alarm" té un parlant per a emetre una alerta i detectar ones P, si aquest parlant el seu voltatge baix, per lo que utilitzarem el Pin A0 per controlar un canvi en el voltatge.
En el següent ordre s'han de posar els cables:
5v - A0 - Cable negre del connector de bateria
Primer el cable de 5V que va a alimentar el sensor, després el A0 que va a monitorear el voltatge i finalment el Cable negre del conector.
En una altra fila connectem el cable Negro que viene el Arduino y el cable rojo que viene del conector.
una vegada els tengem en aquest ordre soldats per a que l’electricitat passi entre ells.
Important que al connectar el conector de 9V al sensor, el cable negre passa a ser el positiu i el vermell el negatiu, molt cuidat amb això.
Pas 2: Codi Arduino
En el Arduino vamos a crear un código que nos va a permitir 2 cosas:
- Llegiu el voltatge per buscar canvis
- Si hi ha una variació en el voltatge fer una trucada a un servei web
Vam explicar un poc el codi, si no volem entendre a profunditat després de l’explicació aquest codi complet i on es descarregui.
Per iniciar vamos a incloure las bibliotecas necesarias para poder usar el shield ethernet y el serial.
#incloure
#incloure
Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar
#define QUAKEALARM A0
Seguim definits les variables que ens van ajudar a processar la variació de voltatge i el temps per fer la trucada al servei web.
static int diferencia;
int qaVal = 0; int qaPreVal = 0;
llindar int = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
llarg
ultimaConexion = 0; // Temps en milisegundos des de l’última connexió al servei web
Ahora crear les variables per a l’ús de l’ethernet, on es defineixen el MAC de la targeta de red, la IP que usarà aquesta targeta i la classe de tipus EthernetClient per poder fer l’ús de la targeta de red. També vamos a definir la IP del servidor que rebrà els dades.
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip = {192, 168, 15, 120}; // Direcció IP del Arduino
byte
servidor = {192, 168, 15, 111}; // Direcció IP del servidor
Client EthernetClient;
Ja amb les variables, biblioteques i classes llistes podem iniciar el programa que tindrà el nostre Arduino:
- Incialitzem el serial a 57600
- Luego le decimos al arduino que el pin A0 (constant QUAKEALARM) lo vamos a usar como un pin de entrada.
- Finalment iniciamos la targeta de vermell.
configuració nul·la () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.begin (mac, ip); // Inicialitzem 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". també filtra per a que existeix un lapso de temps de 5 segons entre un enviat d'informació i un altre.
bucle buit () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia> 0) i (diferencia> = threshold) i ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (contador);
ultimaConexion = millis ();
if (client.connect (servidor, 5002)> 0) {
Serial.println ("Conecte");
client.print ("GET /? sismo = 1"); // Envieu els dades per GET
client.println ("HTTP / 1.0");
client.println ("User-Agent: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descarregar el codi en github.com/bettocr/alertasismo
Codi complet:
#incloure
#incloure
// QuakeAlarm
#define QUAKEALARM A0
// Variable que mantiene el valor anterior del QuakeAlarm
static int diferencia;
int qaVal = 0;
int qaPreVal = 0; llindar int = 10; int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Temps en milisegundos des de l’última connexió al servei web
// Variables Ethernet
// Es presenten els valors corresponents 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}; // Direccion IP del servidor de bytes Arduino = {192, 168, 8, 11}; // Direcció IP del servidor EthernetClient client; configuració nul·la () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // Ethernet Ethernet.begin (mac, ip); // Inicialitzem el Ethernet Shield}
bucle buit () {
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
if ((diferencia> 0) i (diferencia> = threshold) i ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); if (client.connect (servidor, 5002)> 0) {Serial.println ("Conecte"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Envieu les dades per GET client.println ("HTTP / 1.0"); client.println ("Agent d'usuari: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Pas 3: Codi Python
Aquest codi bàsicament crea un servei web al port 5002 del servidor (jo lo uso en un Raspberry Pi en mi casa), que rep l'avís de l'Arduino per després 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.
Per tal que pugueu haver de crear en apps.twitter.com una aplicació i obtenir les dades Consumer Key (API Key), Consumer Secret (API Secret), Access Token i Access Token Secret. i en la funció tweet canviar les xxxxx pels seus valors respectius.
Pueden descarregar el codi complet en github.com/bettocr/alertasismo o copiarlo a continuació:
#! / usr / bin / python2.7
# - * - codificació: utf-8 - * -
sol·licituds d’importació, urllib2, urllib, tweepy
des de la importació de matràs Matràs, sol·licitud
d'importació de StringIO
a partir de la importació de la data i hora, la data i el temps
tweet definitiu (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 (estat = missatge)
app = Flascó (_ nom_)
@ app.route ("/", methods = ['GET'])
def sismo ():
provar:
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 + ")")
excepte IOError com a error: imprimeix "Fallo"
passar
excepte Excepció com a e:
imprimeix "Excepció" + str (e)
passar
torna "D'acord"
Pas 4: Detalls finals
Com passos addicionals per donar-li una millor imatge és el següent
- Corte la Placa de Circuito justo para que entrara en el espacio destinado a la batería.
- Amb un mototool hice un hueco en la tapa en l’esquina superior dreta per als cables entrant.
- Amb material termo sensible, puse los 3 cables que van al Arduino per que parezca un solo cable.
- I per posar l'arduino a la paret, es pot obtenir la impressió 3D d'aquest muntatge
Pueden seguir el bot que hice amb estos passos en @SismoTico
Recomanat:
Sistema d’alerta d’accidents mitjançant GSM, GPS i acceleròmetre: 5 passos (amb imatges)
Sistema d’alerta d’accidents que utilitza GSM, GPS i acceleròmetre: si us plau vota’m pel concurs, vota’m pel concurs Avui en dia hi ha moltes persones mortes a la carretera a causa d’un accident, la causa principal és el "retard en el rescat". Aquest problema és molt gran als països en desús, així que vaig dissenyar aquest projecte per desar el
Alerta UD. per a un noi amb autisme: 7 passos (amb imatges)
Alerta UD. per a un noi amb autisme: Ud-Alert, o millor alerta de despullar-se, però per a què? El nostre fill, Scott, de 13 anys, pateix autisme. No és verbal i encara té problemes per mostrar-nos quan ha d’entrar al lavabo. A causa de la seva comunicació limitada, es treu la roba
Alerta d'assecadora de rentadora Arduino: notificació automàtica al telèfon amb Blynk: 5 passos (amb imatges)
Alerta d’assecadora de rentadora Arduino: notificació automàtica per telèfon amb Blynk: la nostra rentadora és al garatge i no sentim els sons que indiquen que el rentat s’ha completat. Volia trobar una manera de rebre notificacions, fos on fos a casa, quan es va acabar el cicle. He estat jugant amb Arduino, ESP8266 WiFi
Sistema d'alerta GPS contra incendis forestals amb Sim808 i Arduino Uno: 23 passos (amb imatges)
Sistema d'alerta Gps contra incendis forestals amb Sim808 i Arduino Uno: Hola, en aquest post veurem com fer un sistema de detecció d'incendis forestals, amb notificació per missatge de text, de la ubicació de l'accident, gràcies al mòdul gps sim808 integrat, concedit per la gent de DFRobot, veurem la font
Sistema de seguiment de bicicletes amb alerta de Dead Man amb Sigfox: 7 passos (amb imatges)
Sistema de seguiment de bicicletes amb alerta Dead Man amb Sigfox: sistema de seguretat per a ciclistes amb funcions d’alerta de seguiment i enviament. En cas d’accident s’envia una alarma amb la posició GPS. És imprescindible la seguretat per als ciclistes, amb accidents de bicicleta de carretera o de muntanya i el més aviat possible