Innehållsförteckning:
- Steg 1: Como Colocar Los Cables
- Steg 2: Código Arduino
- Steg 3: Código Python
- Steg 4: Detaljerar Finaler
Video: Alerta Sísmica Temprana .: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Breve explicación
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.
El presente proyecto busca crear un system for alerta sísmica temprana en twitter.
Materialet är användbart
- 1 Arudino UNO (Costo cirka 25 USD)
- 1 Arduino Shield Ehternet (Costo Cirka $ 24 USD)
- 1 Quake Alarm (Costo Ca. 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo Ca. 0,60 USD) eller ett protobord
- 3 kablar Jumper de diferentes colores (Costo Ca. 0,30 USD)
- 1 batteri för 9V (Costo Ca. 0,30 USD)
- Cautin y soldadura
Steg 1: Como Colocar Los Cables
Para poder hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", kan också användas för att bygga upp 9v del mismo.
El Arduino le dará 5v al sensor con los que va a poder funcionar bien.
El "Quake Alarm" tiene un parlante para emitir una alerta 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 kablar:
5v - A0 - Kabelnegro del conector de batería
Primero el -kabel för 5V är en matningsgivare, en A0 -kabel kan övervaka en volym och slutföra kabeln.
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.
Viktigt att koppla ihop 9V al -sensorer, kabelnegroer kan vara positiva och negativa, mycket bra.
Steg 2: Código Arduino
En el Arduino berättar om en del av en tillåtelse för två cosas:
- Leer el voltaje för 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 no quieres entenderlo a profundidad luego de la explicación esta el código completeo y donde descargarlo.
Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#omfatta
#omfatta
Luego vamos a crear una constante que va a tener el PIN Analogic 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 service web.
statisk int diferencia;
int qaVal = 0; int qaPreVal = 0;
int tröskel = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
lång
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.
byte mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip = {192, 168, 15, 120}; // Direccion IP del Arduino
byte
server = {192, 168, 15, 111}; // Direccion IP del servidor
EthernetClient -klient;
Ya con las variables, librerías y clases listas podemos iniciar el programa que tendrá nuestro Arduino:
- Incializamos el serien a 57600
- Luego 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. Börjar (mac, ip); // Inicializamos 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". 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) och (diferencia> = tröskel) och ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (contador);
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 ("User-Agent: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes ladda ner el código en github.com/bettocr/alertasismo
Komplett information:
#omfatta
#omfatta
// QuakeAlarm
#define QUAKEALARM A0
// Variabel que mantiene el valor anterior del QuakeAlarm
statisk int diferencia;
int qaVal = 0;
int qaPreVal = 0; int tröskel = 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
// Variabler Ethernet
// Se introducer los valores correspondentses 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 Arduino byte 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;
if ((diferencia> 0) och (diferencia> = tröskel) och ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("User-Agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Steg 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 and algún servicio de notificaciones PUSH para móviles.
Para que pueda tuitear deben crear en apps.twitter.com una aplicación and obtener los dataos 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.
Ladda ner ladda ner el código completeo github.com/bettocr/alertasismo o kopiera en fortsättning:
#!/usr/bin/python2.7
#-*-kodning: utf-8-*-
importförfrågningar, urllib2, urllib, tweepy
från kolvimport Flaska, begär
från StringIO import StringIO
från 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 = kolv (_ namn_)
@app.route ("/", metoder = ['GET'])
def sismo ():
Prova:
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+")")
utom IOError som fel: skriv ut 'Fallo'
passera
utom Undantag som e:
skriv ut "Undantag"+str (e)
passera
returnera "OK"
Steg 4: Detaljerar Finaler
Como Pasos adicionales para darle una major major image 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 kablar entraran.
- Con material termo sensible, pose los 3 kablar 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
Rekommenderad:
Ta fantastiska bilder med en iPhone: 9 steg (med bilder)
Ta fantastiska bilder med en iPhone: De flesta av oss har en smartphone med oss överallt nuförtiden, så det är viktigt att veta hur du använder din smartphone -kamera för att ta fantastiska bilder! Jag har bara haft en smartphone i ett par år, och jag har älskat att ha en bra kamera för att dokumentera saker jag
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: 7 steg (med bilder)
Hur: Installera Raspberry PI 4 Headless (VNC) med Rpi-imager och bilder: Jag planerar att använda denna Rapsberry PI i ett gäng roliga projekt tillbaka i min blogg. Kolla gärna in det. Jag ville börja använda mitt Raspberry PI men jag hade inte ett tangentbord eller en mus på min nya plats. Det var ett tag sedan jag installerade en hallon
Bikesaver: Sistema De Alerta DIY Para Ciclistas: 4 steg
Bikesaver: Sistema De Alerta DIY Para Ciclistas: Bikesaver is un system of Iluminación y alerta que involucra un enfoque de la comunidad Maker para que un ciclista pueda crear su propio system for iluminación, así mejorar su seguridad and sus recorridos diarios y noche.El sys
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen