Sisällysluettelo:
- Vaihe 1: Como Colocar Los -kaapelit
- Vaihe 2: Código Arduino
- Vaihe 3: Código Python
- Vaihe 4: Detalles Finales
Video: Alerta Sísmica Temprana .: 4 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Breve selitys
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 registerrada 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 en twitter.
Materiaalit käyttövälineenä
- 1 Arudino UNO (Costo noin 25 dollaria)
- 1 Arduino Shield Ehternet (Costo Aprox 24 USD)
- 1 järistyshälytys (Costo Aprox. 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. 0,60 USD) tai protoboard
- 3 kaapelia Jumper de diferentes colores (Costo Aprox. 0,30 USD)
- 1 paristo 9V (Costo Aprox. 0,30 USD)
- Cautin ja soldadura
Vaihe 1: Como Colocar Los -kaapelit
Tässä tapauksessa hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", joka on käytössäsi yhdistämällä akun 9v del mismo -laitteeseen.
El Arduino le dará 5v al -anturi, joka on lueteltu que va ja poder funcionar bien.
El "Quake Alarm" on yksi hälytys, joka hälyttää ja havaitsee ondas P, si este 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 kaapelit:
5v - A0 - Kaapeli, akku
Ensisijainen 5 V: n kaapeli, joka on alimentarinen anturi, 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.
Tärkeää 9 V: n anturin liitintä, kaapelin negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.
Vaihe 2: 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 a un service web
Vamos a explicar un poco el código, si quieres entenderlo a profundidad luego de la explicación esta el código complete and donde descargarlo.
Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#sisältää
#sisältää
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.
staattinen int diferencia;
int qaVal = 0; int qaPreVal = 0;
int kynnys = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
pitkä
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 type EthernetClient para poder hacer uso de la tarjeta de red. También vamos a IPir del delidid que recibirá lo datos.
tavu mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
tavu ip = {192, 168, 15, 120}; // Direction IP del Arduino
tavu
palvelin = {192, 168, 15, 111}; // Suunta IP -palvelin
EthernetClient -asiakas;
Ya con las muuttujat, librerías y clases listas podemos iniciar el program que tendrá nuestro Arduino:
- Mainos sarjan 57600
- Lue lisää le decimos al arduino que el pin A0 (Constante QUAKEALARM) lo vamos a usar como un pin de entrada.
- Lopullinen aloitus la tarjeta de red.
void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.begin (mac, ip); // Ethernet -suojan virallinen käyttö
}
Y para terminaali el ohjelma, 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 = analoginen luku (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia> 0) ja (diferencia> = kynnys) ja ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Sarja.println (jatkoa);
ultimaConexion = millis ();
jos (client.connect (palvelin, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Enviamos los datos por GET
client.println ("HTTP/1.0");
client.println ("Käyttäjäagentti: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Lataa ladattu el código ja github.com/bettocr/alertasismo
Täydellinen Código:
#sisältää
#sisältää
// QuakeAlarm
#define QUAKEALARM A0
// Muuttuva que mantiene el valor anterior del QuakeAlarm
staattinen int diferencia;
int qaVal = 0;
int qaPreVal = 0; int kynnys = 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
// Muuttujat Ethernet
// Esittele los valores kirjeenvaihtajille MAC, IP local, Puerta de Enlace ja Máscara de Red
tavu mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; tavu ip = {192, 168, 8, 20}; // Direction IP del Arduino byte server = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient client; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}
void loop () {
qaVal = analoginen luku (QUAKEALARM);
diferencia = qaPreVal - qaVal;
if ((diferencia> 0) ja (diferencia> = kynnys) ja ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Sarja.println (jatkoa); ultimaConexion = millis (); if (client.connect (palvelin, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("Käyttäjäagentti: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Vaihe 3: 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.
Parametrien luominen ja luominen sovelluksissa.twitter.com una aplikation and obtener los datos Consumer Key (API Key), Consumer Secret (API Secret), Access Token y Access Token Secret. y en la función tweet cambiar las xxxxx por sus respectivos valores.
Lataa ladattava elokoodin täydennysosa github.com/bettocr/alertasismo tai copiarlo a continuación:
#!/usr/bin/python2.7
#-*-koodaus: utf-8-*-
tuontipyynnöt, urllib2, urllib, tweepy
pullon tuonnista Pullo, pyyntö
StringIO -tuonnista StringIO
päivämäärän tuonnista päivämäärän aika, timedelta
tw 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 (tila = mensaje)
app = Pullo (_ name_)
@app.route ("/", Method = ['GET'])
def sismo ():
yrittää:
sismo = request.args.get ("sismo")
jos (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")
paitsi IOError as err: tulosta 'Fallo'
kulkea
paitsi poikkeus, kuten e:
tulosta "Poikkeus"+str (e)
kulkea
palauta "OK"
Vaihe 4: Detalles Finales
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.
- Yhdessä moottorityökalussa ja hueco en la tapa en la esquina superior derecha para que los kaapelit entraran.
- Sisältää termo -järkevän, puoli los 3 -kaapelin que van al Arduino para que parezca un solo cable.
- 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
Suositeltava:
DIY 37 Leds Arduino -rulettipeli: 3 vaihetta (kuvilla)
DIY 37 Leds Arduino Roulette Peli: Ruletti on kasinopeli, joka on nimetty ranskalaisen sanan mukaan, joka tarkoittaa pientä pyörää
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: 20 vaihetta (kuvilla)
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: Hei, ystävä! Tässä kaksiosaisessa sarjassa opimme käyttämään Tinkercadin piirejä - hauskaa, tehokasta ja opettavaista työkalua piirien toiminnasta! Yksi parhaista tavoista oppia on tehdä. Joten suunnittelemme ensin oman projektimme: th
Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)
Weasleyn sijaintikello neljällä kädellä: Joten Raspberry Pi: n kanssa, joka oli pyörinyt jonkin aikaa, halusin löytää mukavan projektin, jonka avulla voisin hyödyntää sitä parhaalla mahdollisella tavalla. Löysin ppeters0502 tämän upean Instructable Build Your Own Weasley Location Clockin ja ajattelin, että
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
Pyöräsäästäjä: Sistema De Alerta DIY Para Ciclistas: 4 Steps
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 illuminación, así mejorar su seguridad en sus recorridos diarios ya sea durante y noche.El sis