Satura rādītājs:
- 1. darbība: Como Colocar Los Cables
- 2. darbība: Código Arduino
- 3. darbība: Código Python
- 4. darbība. Detalizē finālus
Video: Alerta Sísmica Temprana.: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Breve izskaidrojums
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 un un 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.
Materiāls ir utilizārs
- 1 Arudino UNO (aptuveni Costo $ 25 USD)
- 1 Arduino Shield Ehternet (Costo Aprox 24 ASV dolāri)
- 1 zemestrīces trauksme (Costo Aprox. 30 ASV dolāri)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. 0,60 ASV dolāri) vai bez protoborda
- 3 kabeļi Jumper de diferentes colores (Costo Aprox. 0,30 ASV dolāri)
- 1 Conector de 9V baterija (Costo Aprox. 0,30 ASV dolāri)
- Kautins un soldadura
1. darbība: Como Colocar Los Cables
Parādījās hacer nuestro proyecto sin tener que abrir el sensors "Quake Alarm", kā arī izmantot akumulatora devēju 9v del mismo.
El Arduino le dará 5v al sensor to los que va and 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 cable:
5v - A0 - akumulatora kabelis
Primārais 5 V kabelis, kas ir parasts el sensors, 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.
Svarīgi ir 9 V al sensora savienotāji, kabeļtelevīzijas pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.
2. darbība: 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 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.
#iekļaut
#iekļaut
Luego vamos a crear una konstante 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.
statiska int diferencia;
int qaVal = 0; int qaPreVal = 0;
int slieksnis = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
garš
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.
baits mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
baits ip = {192, 168, 15, 120}; // Direction IP del Arduino
baits
serveris = {192, 168, 15, 111}; // Direcion IP del servidor
EthernetClient klients;
Ya con las mainīgie, librerías y clases listas podemos iniciar el program que tendrá nuestro Arduino:
- Informācija par sēriju a 57600
- Lasīt le decimos al arduino que el pin A0 (konstante 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 mainīgais "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;
ja ((diferencia> 0) un (diferencia> = slieksnis) un ((milis () - ultimaConexion)> intervaloTiempo)) {
kontador = kontadors + 1;
Serial.print ("Sismo!");
Serial.println (kontadors);
ultimaConexion = milis ();
ja (client.connect (serveris, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Enviamos los datos por GET
client.println ("HTTP/1.0");
client.println ("Lietotāja aģents: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Codigo komplekts:
#iekļaut
#iekļaut
// QuakeAlarm
#define QUAKEALARM A0
// Variable que mantiene el valor anterior del QuakeAlarm
statiska int diferencia;
int qaVal = 0;
int qaPreVal = 0; int slieksnis = 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
// Mainīgie Ethernet
// Ievadiet los valores korespondentus MAC, IP local, Puerta de Enlace y Máscara de Red
baits mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; baits ip = {192, 168, 8, 20}; // Direccion IP del Arduino baitu serveris = {192, 168, 8, 11}; // Direccion IP del servidor EthernetClient klients; 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;
ja ((diferencia> 0) un (diferencia> = slieksnis) un ((milis () - ultimaConexion)> intervaloTiempo)) {
kontador = kontadors + 1; Serial.print ("Sismo!"); Serial.println (kontadors); ultimaConexion = milis (); 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 ("Lietotāja aģents: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
3. darbība: 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 applicació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.
Lejupielādējiet lejupielādes kodu, lai pabeigtu vietni github.com/bettocr/alertasismo vai copiarlo a continuación:
#!/usr/bin/python2.7
#-*-kodēšana: utf-8-*-
importēšanas pieprasījumi, urllib2, urllib, tweepy
no kolbas importa Kolba, pieprasījums
no StringIO importēt StringIO
no datuma importēšanas datuma laika, 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 (statuss = mensaje)
app = kolba (_ name_)
@app.route ("/", metodes = ['GET'])
def sismo ():
pamēģini:
sismo = request.args.get ("sismo")
ja (str (sismo) == "1"):
t = datums. tagad ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")
izņemot IOError kā kļūda: izdrukāt "Fallo"
iziet
izņemot izņēmumu, piemēram:
drukāt "Izņēmums"+str (e)
iziet
atgriezt "Labi"
4. darbība. Detalizē finālus
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 kabeļi entraran.
- No materiāla termo saprātīgs, puse los 3 kabeļi 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
Ieteicams:
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar RPI attēlu un attēliem: 7 soļi (ar attēliem)
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar Rpi-imager un Pictures: Es plānoju izmantot šo Rapsberry PI daudzos jautros projektos savā emuārā. Jūtieties brīvi to pārbaudīt. Es gribēju atkal izmantot savu aveņu PI, bet manā jaunajā vietā nebija tastatūras vai peles. Pagāja laiks, kopš es izveidoju aveņu
Arduino Halloween Edition - zombiju uznirstošais ekrāns (soļi ar attēliem): 6 soļi
Arduino Helovīna izdevums - zombiju uznirstošais ekrāns (soļi ar attēliem): Vai vēlaties Helovīnā nobiedēt savus draugus un radīt kliedzošu troksni? Vai arī vienkārši gribi uztaisīt labu palaidnību? Šis zombiju uznirstošais ekrāns to var izdarīt! Šajā pamācībā es iemācīšu jums, kā viegli izveidot izlecošus zombijus, izmantojot Arduino. HC-SR0
Skrūve - DIY bezvadu uzlādes nakts pulkstenis (6 soļi): 6 soļi (ar attēliem)
Bolt - DIY bezvadu uzlādes nakts pulkstenis (6 soļi): Induktīvās uzlādes (pazīstamas arī kā bezvadu uzlāde vai bezvadu uzlāde) ir bezvadu enerģijas pārneses veids. Tas izmanto elektromagnētisko indukciju, lai nodrošinātu elektroenerģiju pārnēsājamām ierīcēm. Visizplatītākā lietojumprogramma ir Qi bezvadu uzlādes st
Velosipēdists: Sistēma De Alerta DIY Para Ciklists: 4 soļi
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
Kamera atvieglotiem laika intervāla attēliem: 22 soļi (ar attēliem)
Kamera atvieglotiem laika intervāla attēliem: es pārbaudīju vienu no citām instrukcijām par laika nobīdes filmu veidošanu. Viņš diezgan labi aptvēra filmas daļu. Viņš pastāstīja par bezmaksas programmatūru, kuru varat lejupielādēt, lai izveidotu filmas. Es sev teicu: domāju, ka redzēšu, vai varu