Kazalo:
- Korak: Como Colocar Los Cables
- 2. korak: Código Arduino
- 3. korak: Código Python
- 4. korak: Podrobnosti o zaključku
Video: Alerta Sísmica Temprana .: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Breve explicación
Durante un sismo se proizvaja 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 alertta sísmica temprana en twitter.
Uporabljeni materiali
- 1 Arudino UNO (približno 25 USD)
- 1 Ehternet Arduino Shield (Costo približno 24 USD)
- 1 alarm za potres (Costo približno 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. 0,60 USD) ali proto protoboard
- 3 kabelski skakalec za različne barve (Costo približno 0,30 USD)
- 1 priključek za baterijo de 9V (približno Costo, 0,30 USD)
- Cautin y soldadura
Korak: Como Colocar Los Cables
Za več informacij o senzorju "Quake Alarm", ki ga uporabljate, je nuestro proyecto sinye tener que abrir el senzor, ki je priključen na 9V del mismo.
El Arduino le dará 5v al senzor con los que va a poder funcionar bien.
El "Quake Alarm" tiene un parlante para emitir una alertta si detecta ondas P, si este parlante suena el voltaje baja, por lo que usaremos el Pin A0 para monitorear un cambio en el voltaje.
En el siguiente orden se deben poner los cable:
5v - A0 - Negro del conector de batería
Primero električni kabel 5V, ki je nameščen na senzorju alimentarja, priključen na A0, monitorearni napetost in končni kabel Negro del konektorja.
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.
Pomemben 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. korak: Código Arduino
En el Arduino vamos a crear un código que nos va a allowir 2 cosas:
- Leer el voltaje para buscar cambios
- Si hay una variación en el voltaje hacer una llamada in 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.
#vključi
#vključi
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 procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
statična int diferenciacija;
int qaVal = 0; int qaPreVal = 0;
int prag = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
dolga
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 para poder hacer uso de la tarjeta de red. También vamos a definir la IP del servidor que recibirá lo datos.
bajt mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
bajt ip = {192, 168, 15, 120}; // Direccion IP del Arduino
bajt
strežnik = {192, 168, 15, 111}; // Direcion IP del servidor
Odjemalec EthernetClient;
Ya con las spremenljivke, librerías y clases listas podemos iniciar el programa que tendrá nuestro Arduino:
- Serijska številka 57600
- Luego le decimos al arduino que el pin A0 (constante QUAKEALARM) lo vamos a usar como un pin de entrada.
- Končno iniciamos la tarjeta de red.
void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.začetek (mac, ip); // Inicializamos el Ethernet Shield
}
Y para terminar el program, 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.
void loop () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia> 0) in (diferencia> = prag) in ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (kontador);
ultimaConexion = millis ();
if (client.connect (strežnik, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Obvestilo o datotekah GET
client.println ("HTTP/1.0");
client.println ("Uporabniški agent: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Código completeto:
#vključi
#vključi
// QuakeAlarm
#define QUAKEALARM A0
// Spremenljiv que mantiene el valor anterior del QuakeAlarm
statična int diferenciacija;
int qaVal = 0;
int qaPreVal = 0; int prag = 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
// spremenljivke Ethernet
// Se uvodcen los valores korespondesenentes a MAC, IP local, Puerta de Enlace y Máscara de Red
bajt mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; bajt ip = {192, 168, 8, 20}; // Direccion IP del Arduino bajtni strežnik = {192, 168, 8, 11}; // Odjemalec strežnika IP strežnika EthernetClient; 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) in (diferencia> = prag) in ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (kontador); ultimaConexion = millis (); if (client.connect (strežnik, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Pošlji podatke o GET client.println ("HTTP/1.0"); client.println ("Uporabniški agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
3. korak: 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 lulue 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.
Če želite to narediti, odprite aplikacijo.twitter.com in uporabite aplikacijo za iskanje, ki vsebuje podatke Consumer Key (ključ API), Consumer Secret (API Secret), Access Token in Access Token Secret. y en la función tweet 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
#-*-kodiranje: utf-8-*-
uvozne zahteve, urllib2, urllib, tweepy
iz bučke uvoz steklenice, povpraševanje
iz StringIO uvozi StringIO
od datuma uvoza datetimetime, 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 ("/", methods = ['GET'])
def sismo ():
poskusi:
sismo = request.args.get ("sismo")
if (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Možen sismo en los próximos segundos ("+hora+")")
razen IOError kot napaka: natisnite 'Fallo'
prehod
razen izjeme kot e:
natisni "Izjema"+str (e)
prehod
vrni "OK"
4. korak: Podrobnosti o zaključku
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 cable entraran.
- Iz materiala, ki je termo senzibilen, puse los 3 kabli, ki jih je mogoče namestiti z Al Arduino, je namenjen samostojnemu kablu.
- 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
Priporočena:
DIY stativ pod koraki 1: 3 koraki
DIY stativ pod 1 USD: Ta pouk vas bo naučil, kako narediti fantastičen stativ pod 1 USD. Z uporabo samo gospodinjskih predmetov, kot je moka, lahko naredite fantastičen stativ, ki je še boljši od običajnega stojala, celo prenosnega … poskusite! najprej bi si moral ogledati video
4G/5G HD video pretakanje v živo z DJI Drone z nizko zakasnitvijo [3 koraki]: 3 koraki
4G/5G HD video pretakanje v živo z DJI Drone z nizko zakasnitvijo [3 koraki]: Naslednji vodnik vam bo pomagal prenašati videoposnetke v visoki kakovosti HD v skoraj vseh DJI-jih. S pomočjo mobilne aplikacije FlytOS in spletne aplikacije FlytNow lahko začnete pretakati videoposnetke iz drona
4 koraki za merjenje notranje odpornosti baterije: 4 koraki
4 koraki za merjenje notranje odpornosti baterije: Tu so 4 preprosti koraki, ki vam lahko pomagajo izmeriti notranji upor baterije
Bikesaver: Sistema De Alerta DIY Para Ciclistas: 4 koraki
Bikesaver: Sistema De Alerta DIY Para Ciclistas: Bikesaver es un system de Iluminación y alerta que involucra un enfoque de la comunidad Maker para que un ciclista pueda crear su propio system de iluminación, así mejorar su seguridad en sus recorridos diios y noche.El sis
Kako razstaviti računalnik z enostavnimi koraki in slikami: 13 korakov (s slikami)
Kako z enostavnimi koraki in slikami razstaviti računalnik: To navodilo za razstavljanje računalnika. Večina osnovnih komponent je modularnih in jih je enostavno odstraniti. Vendar je pomembno, da ste glede tega organizirani. To vam bo pomagalo preprečiti izgubo delov in tudi pri ponovni montaži