Sisukord:
- Samm: Como Colocar Los kaablid
- 2. samm: Código Arduino
- 3. samm: Código Python
- 4. samm: täpsustage finaalid
Video: Alerta Sísmica Temprana: 4 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Breve selgitus
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 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.
Esialgne proyecto busca crear un süsteem de alerta sísmica temprana ja twitter.
Materjalid on utizar
- 1 Arudino UNO (Costo umbes 25 dollarit USD)
- 1 Arduino Shield Ehternet (Costo Aprox 24 USD)
- 1 maavärinahäire (Costo Aprox. 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. 0,60 USA dollarit) või protoboard
- 3 kaablit Jumper de diferentes colores (Costo Aprox. 0,30 USD)
- 1 9V patarei (Costo Aprox. 0,30 USD)
- Cautin y soldadura
Samm: Como Colocar Los kaablid
Kasutage hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", mis on tavaliselt kasutusel ja ühendab 9v del mismo akud.
El Arduino le dará 5v al sensor and los cone que va and poder funcionar bien.
El "Quake Alarm" on un parlante para emitir una alerta and detecta 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 kaablid:
5v - A0 - akukaablite kaabel
Esmane 5 V kaabel, mis on alimentaarne andur, luego el A0 que va a monitororear 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.
Kui oluline on 9 V al -andur, siis kaabel -negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.
2. samm: 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 lalamada and a service web
Vamos a explicar un poco el código, si no quieres entenderlo a profundidad luego de la explicación esta el código complete y donde descargarlo.
Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#kaasake
#kaasake
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.
staatiline diferentsiaal;
int qaVal = 0; int qaPreVal = 0;
int lävi = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
pikk
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 for poder hacer uso de la tarjeta de red. También vamos a IPir servidor que recibirá lo datos.
bait mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
bait ip = {192, 168, 15, 120}; // Direccion IP del Arduino
bait
server = {192, 168, 15, 111}; // Direction IP -teenus
EthernetClient klient;
Ya con las muutujad, librerias y clases listas podemos iniciar el program que tendrá nuestro Arduino:
- Incializamos on 57600 seeria
- Loe 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.
void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield
}
Y para terminar el program, ponemos en una función cíclica que revize 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 informationción y otro.
void loop () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
kui ((diferencia> 0) ja (diferencia> = künnis) ja ((millis () - ultimaConexion)> intervaloTiempo)) {
kontador = kontador + 1;
Serial.print ("Sismo!");
Serial.println (kontador);
ultimaConexion = millis ();
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 ("Kasutajaagent: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Täielik kood:
#kaasake
#kaasake
// QuakeAlarm
#define QUAKEALARM A0
// Variable que mantiene el valor anterior del QuakeAlarm
staatiline diferentsiaal;
int qaVal = 0;
int qaPreVal = 0; int lävi = 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
// Muutujad Ethernet
// Tutvuge los valoresrespondentidega MAC, IP local, Puerta de Enlace y Máscara de Red
bait mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; bait ip = {192, 168, 8, 20}; // Direccion IP del Arduino bait server = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient klient; 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;
kui ((diferencia> 0) ja (diferencia> = künnis) ja ((millis () - ultimaConexion)> intervaloTiempo)) {
kontador = kontador + 1; Serial.print ("Sismo!"); Serial.println (kontador); ultimaConexion = millis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? võti = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("Kasutajaagent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
3. samm: 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 futuro poderlo usar en algún servicio de notificaciones PUSH para móviles.
Para que pueda tuitear deben crear en apps.twitter.com una applica y 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.
Laadige alla koodide täielik allalaadimine saidil github.com/bettocr/alertasismo või copiarlo a continuación:
#!/usr/bin/python2.7
#-*-kodeerimine: utf-8-*-
imporditaotlused, urllib2, urllib, tweepy
kolvi impordist Kolb, taotlus
StringIO import StringIO
kuupäevast ja ajast impordi kuupäevast, timedelta
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 (olek = mensaje)
app = kolb (_ nimi_)
@app.route ("/", metoodika = ['GET'])
def sismo ():
proovige:
sismo = request.args.get ("sismo")
kui (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")
välja arvatud IOError kui viga: prindi "Fallo"
üle andma
välja arvatud erand nagu e:
print "Erand"+str (e)
üle andma
tagasta "OK"
4. samm: täpsustage finaalid
Como Pasos nägemused 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.
- Materjal on mõistlik, pool los 3 kaablit 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 ja @SismoTico
Soovitan:
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
Jalgrattasäästja: Sistema De Alerta DIY Para Ciclistas: 4 Steps
Bikesaver: Sistema De Alerta DIY Para Ciclistas: Bikesaver es un system de Illuminació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 el y noche.El sis
Arvuti demonteerimine lihtsate sammude ja piltidega: 13 sammu (piltidega)
Arvuti demonteerimine lihtsate sammude ja piltidega: see on juhis arvuti demonteerimiseks. Enamik põhikomponente on modulaarsed ja kergesti eemaldatavad. Siiski on oluline, et oleksite selles osas organiseeritud. See aitab vältida osade kaotamist ja ka kokkupanekut