Sadržaj:
- Korak 1: Como Colocar Los Cables
- Korak 2: Código Arduino
- Korak 3: Código Python
- Korak 4: Detalles Finales
Video: Alerta Sísmica Temprana .: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Breve explicación
Durante un sismo se proizvodi 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.
Materiales a utilizar
- 1 Arudino UNO (Costo oko 25 USD)
- 1 Arduino Shield Ehternet (Costo otprilike 24 USD)
- 1 alarm za potres (Costo otprilike 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo otprilike 0,60 USD) o una protoboard
- 3 kabelska skakača u različitim bojama (Costo približno 0,30 USD)
- 1 priključak za bateriju de 9V (Costo približno 0,30 USD)
- Cautin y soldadura
Korak 1: Como Colocar Los Cables
Para pod 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 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 od 5 V koji je postavljen na alimentarni senzor, priključak A0 je na monitorearni napon i na kraju kraj Kabel crni priključak.
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.
Importantte 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.
Korak 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 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.
#uključi
#uključ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čka int diferencija;
int qaVal = 0; int qaPreVal = 0;
int prag = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
dugo
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ahora crear las varijable 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
poslužitelj = {192, 168, 15, 111}; // Direccion IP del servidor
EthernetClient klijent;
Ya con las varijable, librerías y clases lista podešavanja iniciar el programa que tendrá nuestro Arduino:
- Serijski broj 57600
- Luego le decimos al arduino que el pin A0 (constete QUAKEALARM) lo vamos a usar como un pin de entrada.
- Finalmente iniciamos la tarjeta de red.
void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.početak (mac, ip); // Inicializamos el Ethernet štit
}
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 varijabla "sismo". también filtra para que exista un lapso de tiempo de 5 segundos entre un envió de información y otro.
void loop () {{100} {101}
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia> 0) i (diferencia> = prag) i ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = kontador + 1;
Serial.print ("Sismo!");
Serijski.println (kontador);
ultimaConexion = millis ();
if (client.connect (server, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Dopušteno los datos por GET
client.println ("HTTP/1.0");
client.println ("Korisnički agent: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Código completeto:
#uključi
#uključi
// QuakeAlarm
#define QUAKEALARM A0
// Promjenljiva que mantiene el valor anterior del QuakeAlarm
statička int diferencija;
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
// Varijable Ethernet
// Se Introducen los valores korespondenentes 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 bajt poslužitelj = {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 () {{100} {101}
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
if ((diferencia> 0) i (diferencia> = prag) i ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = kontador + 1; Serial.print ("Sismo!"); Serijski.println (kontador); ultimaConexion = millis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Zabilježen je zapis s GET client.println ("HTTP/1.0"); client.println ("Korisnički agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Korak 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.
Da biste to učinili, otvorite web stranicu apps.twitter.com i primijenite je da biste pronašli podatke o potrošačkom ključu (API ključ), potrošačkoj tajni (API tajni), pristupnom tokenu i tajni tokena pristupa. y en la función tweet cambiar las xxxxx por sus respectivos valores.
Pueden preuzmite el código completo en github.com/bettocr/alertasismo o copiarlo a continuación:
#!/usr/bin/python2.7
#-*-kodiranje: utf-8-*-
zahtjevi za uvoz, urllib2, urllib, tweepy
iz tikvice uvoz boca, zahtjev
iz StringIO uvezite 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 ("/", methods = ['GET'])
def sismo ():
probati:
sismo = request.args.get ("sismo")
if (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Mogući sismo en los próximos segundos ("+hora+")")
osim IOError kao pogreške: ispišite 'Fallo'
proći
osim iznimke kao e:
ispis "Izuzetak"+str (e)
proći
vrati "OK"
Korak 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.
- Con un mototool hice un hueco en la tapa en la esquina superior derecha para que los cable entraran.
- Od materijala koji je termo senzibilan, puse los 3 kabela za van al Arduino para que parezca i solo kabel.
- 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
Preporučeni:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) s Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovno početi vježbati. Koju opremu trebam pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekt će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kad se Micro: Bit protrese, zbroju ćemo dodati 2 i prikazati ga na ekranu
Bikesaver: Sistema De Alerta DIY Para Ciclistas: 4 koraka
Bikesaver: Sistema De Alerta DIY Para Ciclistas: Bikesaver es un system de Iluminación y alertta 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 rastaviti računalo jednostavnim koracima i slikama: 13 koraka (sa slikama)
Kako rastaviti računalo jednostavnim koracima i slikama: Ovo uputstvo o tome kako rastaviti računalo. Većina osnovnih komponenti je modularna i lako se uklanja. Međutim, važno je da se oko toga organizirate. To će vam pomoći da spriječite gubitak dijelova, a također i prilikom ponovnog sastavljanja