Sommario:
- Passaggio 1: cavi Como Colocar Los
- Passaggio 2: codice Arduino
- Passaggio 3: codice Python
- Fase 4: Dettagli finali
Video: Alerta Sísmica Temprana.: 4 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Breve spiegazione
Durante un sismo se produce 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 sensori 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 sistema de alerta sísmica temprana en twitter.
Materiali utili
- 1 Arudino UNO (Costo circa $25usd)
- 1 Arduino Shield Ehternet (Costo Circa $24 usd)
- 1 allarme terremoto (costo circa $ 30 usd)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. $0.60 usd) o una scheda prototipale
- 3 cavi Jumper de diferentes colores (Costo Circa $0.30 usd)
- 1 connettore per batteria da 9V (costo circa $ 0,30 usd)
- Cautin y soldadura
Passaggio 1: cavi Como Colocar Los
Para poder 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 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 cable:
5v - A0 - Cable negro del conector de batería
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.
Importante 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.
Passaggio 2: codice Arduino
En el Arduino vamos a crear un código que nos va a permitir 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.
Per iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#includere
#includere
Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar
#define QUAKEALARM A0
Seguido definimos las variable que nos van a ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
differenza di int statica;
int qaVal = 0;int qaPreVal = 0;
int soglia = 10;
int intervalloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
lungo
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ora crear las variable 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 per poder hacer use 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 }; // Direzione IP di Arduino
byte
server = { 192, 168, 15, 111 }; // Direzione IP del server
Client client Ethernet;
Ya con las variable, librerías y clases liste podemos iniciar el programa que tendrá nuestro Arduino:
- Incializamos el seriale a 57600
- Luego le decimos al arduino que el pin A0(constante QUAKEALARM) lo vamos a usar como un pin de entrada.
- Finalmente iniziamo la tarjeta de red.
void setup() { Serial.begin(57600); pinMode(ALLARME QUAKE, INGRESSO);
Ethernet.begin(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 lower a 5v que haga una llamada al servidor y por medio de GET le manda el valor 1 a la variabile "sismo". también filtra para que exista un lapso de tiempo de 5 segundos entre un envió de información y otro.
ciclo vuoto () {
qaVal = analogRead(QUAKEALARM); differenza = qaPreVal - qaVal;
if ((diferencia > 0) and (diferencia >= soglia) and ((millis() - ultimaConexion) > intervaloTiempo)) {
contatore = contatore + 1;
Serial.print("Simo! ");
Serial.println(contatore);
ultimaConexion = millis();
if (client.connect(server, 5002)>0) {
Serial.println("Connetti");
client.print("OTTIENI /?sismo=1"); // Invia i dati per GET
client.println("HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
}
cliente.stop();
client.flush(); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Codice completo:
#includere
#includere
// Allarme Quake
#define QUAKEALARM A0
// Variabile que mantiene el valor anterior del QuakeAlarm
differenza di int statica;
int qaVal = 0;
int qaPreVal = 0; int soglia = 10; int intervalloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Variabili Ethernet
//Se introdotti los valores corrispondenti 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 }; // Indirizzo IP del byte server Arduino = { 192, 168, 8, 11 }; // Indirizzo IP del server client EthernetClient; void setup() { Serial.begin(57600); pinMode(ALLARME QUAKE, INGRESSO); // ethernet Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield }
ciclo vuoto () {
qaVal = analogRead(QUAKEALARM);
differenza = qaPreVal - qaVal;
if ((diferencia > 0) and (diferencia >= soglia) and ((millis() - ultimaConexion) > intervaloTiempo)) {
contatore = contatore + 1; Serial.print("Simo! "); Serial.println(contatore); ultimaConexion = millis(); if (client.connect(server, 5002)>0) { Serial.println("Conecto"); client.print("GET /?key=1122334455&sismo=1"); // Invia i dati per GET client.println(" HTTP/1.0"); client.println("User-Agent: Arduino 1.0"); } client.stop(); client.flush(); } qaPreVal = qaVal; }
Passaggio 3: codice 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 stadísticas y en un futuro poderlo usar en algún service de notificaciones PUSH para móviles.
Per poter creare su apps.twitter.com un'applicazione e ottenere dati Consumer Key (API Key), Consumer Secret (API Secret), Access Token e Access Token Secret. y en la función tweet cambiar las xxxxx por sus rispettivos valores.
Pueden descargar el código completo en github.com/bettocr/alertasismo o copiarlo a continuación:
#!/usr/bin/python2.7
# -*- codifica: utf-8 -*-
richieste di importazione, urllib2, urllib, tweepy
from flask import Flask, request
da StringIO import StringIO
da datetime import datetime, timedelta
def tweet(mensaje):
CONSUMER_KEY = 'xxxxxxx'
CONSUMER_SECRET = 'xxxxxxxx'
ACCESS_KEY = 'xxxxxxxxx'
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("/", method=['GET'])
def sismo():
Tentativo:
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+")")
tranne IOError as err: print 'Fallo'
passaggio
tranne Eccezione come e:
print "Eccezione "+str(e)
passaggio
ritorna "OK"
Fase 4: Dettagli finali
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.
- Con materiale termosensibile, utilizzare 3 cavi per l'Arduino per collegare un cavo solo.
- 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
Consigliato:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)
Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: 6 passaggi (con immagini)
Intelligenza artificiale e riconoscimento delle immagini con HuskyLens: Ehi, come va, ragazzi! Akarsh qui da CETech. In questo progetto, daremo un'occhiata all'HuskyLens di DFRobot. È un modulo fotocamera basato sull'intelligenza artificiale in grado di eseguire diverse operazioni di intelligenza artificiale come Face Recognitio
Riconoscimento delle immagini con schede K210 e Arduino IDE/Micropython: 6 passaggi (con immagini)
Riconoscimento immagine con schede K210 e Arduino IDE/Micropython: ho già scritto un articolo su come eseguire demo OpenMV su Sipeed Maix Bit e ho anche realizzato un video di demo di rilevamento oggetti con questa scheda. Una delle tante domande che le persone hanno posto è: come posso riconoscere un oggetto che la rete neurale non è tr
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino - Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero - Elicottero Rc - Aereo RC con Arduino: 5 passaggi (con immagini)
Telecomando wireless con modulo NRF24L01 da 2,4 Ghz con Arduino | Nrf24l01 Ricevitore trasmettitore 4 canali / 6 canali per quadricottero | Elicottero Rc | Aereo radiocomandato con Arduino: per far funzionare un'auto radiocomandata | Quadricottero | Drone | Aereo RC | Barca RC, abbiamo sempre bisogno di un ricevitore e trasmettitore, supponiamo che per RC QUADCOPTER abbiamo bisogno di un trasmettitore e ricevitore a 6 canali e quel tipo di TX e RX è troppo costoso, quindi ne faremo uno sul nostro
Come smontare un computer con semplici passaggi e immagini: 13 passaggi (con immagini)
Come smontare un computer con semplici passaggi e immagini: questa è un'istruzione su come smontare un PC. La maggior parte dei componenti di base sono modulari e facilmente smontabili. Tuttavia è importante che tu sia organizzato al riguardo. Questo ti aiuterà a non perdere parti e anche a rendere più facile il rimontaggio