Tartalomjegyzék:
- 1. lépés: Como Colocar Los Cables
- 2. lépés: Código Arduino
- 3. lépés: Código Python
- 4. lépés: A finálék részletezése
Videó: Alerta Sísmica Temprana: 4 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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 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.
Azonnali proyecto busca crear un system de alerta sísmica temprana és twitter.
Materiales a utilizar
- 1 Arudino UNO (Costo kb. 25 USD)
- 1 Arduino Shield Ehternet (Costo Aprox 24 USD)
- 1 rengésriasztás (Costo Aprox. 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. 0,60 USD) vagy egy protoboard
- 3 kábel Jumper de diferentes colores (Costo Aprox. 0,30 USD)
- 1 db 9V -os akkumulátor (Costo Aprox. 0,30 USD)
- Cautin y soldadura
1. lépés: Como Colocar Los Cables
A hacer nuestro proyecto sin tener que abrir el sensor "Quake Alarm", használja a készüléket és csatlakoztatja a 9v del mismo akkumulátort.
El Arduino le dará 5v al szenzor a los que va és 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 monitororear un cambio en el voltaje.
En el siguiente orden se deben poner los kábelek:
5v - A0 - Négykábel, akkumulátoros csatlakozó
Primero el cable de 5V que va a alimentar el sensor, 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.
Fontos, hogy 9 V -os érzékelő csatlakozóval rendelkezzen, és kábellel negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.
2. lépés: 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 web service
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.
#befoglalni
#befoglalni
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.
statikus int differencia;
int qaVal = 0; int qaPreVal = 0;
int küszöb = 10;
int intervallumTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
hosszú
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 definir la IP del servidor que recibirá lo datos.
bájt mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
bájt ip = {192, 168, 15, 120}; // Irányítás IP del Arduino
byte
szerver = {192, 168, 15, 111}; // Irányított IP -kiszolgáló
EthernetClient kliens;
Ya con las variables, librerías y clases listas podemos iniciar el program que tendrá nuestro Arduino:
- Incializamos el 57600 sorozat
- 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.begin (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 informationción y otro.
void loop () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia> 0) és (diferencia> = küszöb) és ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (contador);
ultimaConexion = millis ();
if (client.connect (szerver, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Enviamos los datos por GET
client.println ("HTTP/1.0");
client.println ("Felhasználó-ügynök: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Código teljes:
#befoglalni
#befoglalni
// QuakeAlarm
#define QUAKEALARM A0
// Variable que mantiene el valor anterior del QuakeAlarm
statikus int diferencia;
int qaVal = 0;
int qaPreVal = 0; int küszöb = 10; int intervallumTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Változók Ethernet
// A bevezetés los valores levelezőinek a MAC, IP local, Puerta de Enlace y Máscara de Red
bájt mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; bájt ip = {192, 168, 8, 20}; // Irányító IP del Arduino bájtos szerver = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient kliens; 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) és (diferencia> = küszöb) és ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (contador); ultimaConexion = millis (); if (client.connect (szerver, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println ("Felhasználó-ügynök: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
3. lépés: 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.
Para que pueda tuitear deben crear en apps.twitter.com una aplicación 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.
Töltse le a teljes kódot a github.com/bettocr/alertasismo o copiarlo a continuación segítségével:
#!/usr/bin/python2.7
#-*-kódolás: utf-8-*-
import kérések, urllib2, urllib, tweepy
lombik import lombikból, kérés
a StringIO -ból importálja a StringIO -t
dátum -idő importálás dátum, időzített
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 (állapot = mensaje)
app = Lombik (_ név_)
@app.route ("/", metódus = ['GET'])
def sismo ():
próbáld ki:
sismo = request.args.get ("sismo")
ha (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")
kivéve az IOError mint hibát: "Fallo" nyomtatása
passz
kivéve a kivételt, mint pl.
nyomtatás "Kivétel"+str (e)
passz
vissza "OK"
4. lépés: A finálék részletezése
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 kábelek entraran.
- Anyaga termo értelmes, fél los 3 kábel, melyben van 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 and @SismoTico
Ajánlott:
DIY 37 LED Arduino rulett játék: 3 lépés (képekkel)
DIY 37 Leds Arduino Roulette Játék: A rulett egy kaszinójáték, amelyet a francia szóról neveztek el, jelentése kis kerék
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: Ezt a Rapsberry PI-t tervezem használni egy csomó szórakoztató projektben a blogomban. Nyugodtan nézd meg. Vissza akartam kezdeni a Raspberry PI használatát, de nem volt billentyűzetem vagy egér az új helyen. Rég volt, hogy beállítottam egy málnát
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
Bikesaver: 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 iluminación, así mejorar su seguridad en sus recorridos diarios ya sea durante y noche.El sis
A számítógép szétszerelése egyszerű lépésekkel és képekkel: 13 lépés (képekkel)
A számítógép szétszerelése egyszerű lépésekkel és képekkel: Ez az utasítás a számítógép szétszereléséről szól. A legtöbb alapvető alkatrész moduláris és könnyen eltávolítható. Fontos azonban, hogy szervezett legyen ezzel kapcsolatban. Ez segít elkerülni az alkatrészek elvesztését, és az újra összerakást is