Table des matières:
- Étape 1: Câbles Como Colocar Los
- Étape 2: Code Arduino
- Étape 3: Código Python
- Étape 4: Détails des finales
Vidéo: Alerta Sísmica Temprana.: 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Brève explication
Durante un sismo se produit 3 tipos de ondas la primaria o P que es la importante para este proyecto, viaja entre 8 y 13 km/s oui registrada por los equipos sismógrafos.
Existent 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 sistema de alerta sísmica temprana en twitter.
Matériaux à utiliser
- 1 Arudino UNO (Coût env. $25usd)
- 1 Ethernet Arduino Shield (Costo environ 24 USD)
- 1 alarme de tremblement de terre (Costo environ 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo approx. 0,60 USD) ou un protoboard
- 3 Câbles Jumper de diferentes colores (Costo approx. $0.30 usd)
- 1 Conector de batería de 9V (Costo approx. $0.30 usd)
- Cautin y soldadura
Étape 1: Câbles 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" tient un parlante pour émettre 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 cables:
5v - A0 - Cable negro del conector de batería
Primero el cable de 5V que va un 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.
Important 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.
Étape 2: Code 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.
Para iniciar vamos a incluir las librerías necesarias para poder usar el shield ethernet y el serial.
#comprendre
#comprendre
Luego vamos a crear une constante que va a tener el PIN Analógico que vamos a usar
#définir QUAKEALARM A0
Seguido definimos les variables que nos van un ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
diferencia int statique;
int qaVal = 0;int qaPreVal = 0;
seuil int = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
longue
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ahora crear las variables pour l'utilisation de l'Ethernet, donde definimos el MAC de la tarjeta de red, la IP que usará esta tarjeta et la clase de tipo EthernetClient pour poder hacer uso de la tarjeta de red. También vamos a definir la IP del servidor que recibirá lo datos.
octet mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
octet ip = { 192, 168, 15, 120 }; // Direction IP de l'Arduino
octet
serveur = { 192, 168, 15, 111 }; // Direction IP du serveur
Client Ethernet;
Ya con las variables, livrerías y clases listas podemos iniciar el programa que tendrá nuestro Arduino:
- Incializamos el serial 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.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 inférieur a 5v que haga una llamada al servidor y por medio de GET le manda el valor 1 a la variable "sismo". también filtre para qu'existe un lapso de tiempo de 5 segundos entre un envió de información y otro.
boucle vide () {
qaVal = analogRead(QUAKEALARM); différence = qaPreVal - qaVal;
if ((diferencia > 0) et (diferencia >= seuil) et ((millis() - ultimaConexion) > intervaloTiempo)) {
contador = contador + 1;
Serial.print("Sismo! ");
Serial.println(contador);
ultimaConexion = millis();
if (client.connect(serveur, 5002)>0) {
Serial.println("Conecto");
client.print("GET /?sismo=1"); // Enviamos los datos por GET
client.println("
client.println("Agent utilisateur: Arduino 1.0");
}
client.stop();
client.flush(); }
qaPréVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Code complet:
#comprendre
#comprendre
// Alarme Quake
#définir QUAKEALARM A0
// Variable que mantiene el valor anterior del QuakeAlarm
diferencia int statique;
int qaVal = 0;
int qaPréVal = 0; seuil int = 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
// Variable Ethernet
//Se presenter los valores correspondientes a MAC, IP local, Puerta de Enlace y Máscara de Red
octet mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; octet ip = { 192, 168, 8, 20 }; // Direccion IP del Arduino byte server = { 192, 168, 8, 11 }; // Adresse IP du serveur client EthernetClient; void setup () { Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield }
boucle vide () {
qaVal = analogRead(QUAKEALARM);
différence = qaPreVal - qaVal;
if ((diferencia > 0) et (diferencia >= seuil) et ((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"); // Envoie les données par GET client.println(" HTTP/1.0"); client.println("Agent utilisateur: Arduino 1.0"); } client.stop(); client.flush(); } qaPréVal = qaVal; }
Étape 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 en algún servicio de notificaciones PUSH para móviles.
Pour que vous puissiez apprendre à créer sur apps.twitter.com une application et obtenir les données 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.
Pueden descargar el código completo en github.com/bettocr/alertasismo o copiarlo a continuación:
#!/usr/bin/python2.7
# -*- codage: utf-8 -*-
demandes d'importation, urllib2, urllib, tweepy
de l'importation du flacon Flacon, demande
de StringIO importer StringIO
à partir de datetime importer datetime, timedelta
def tweet(mensaje):
CLÉ_CONSOMMATEUR = 'xxxxxxx'
CONSUMER_SECRET = 'xxxxxxxx'
ACCESS_KEY = 'xxxxxxxx'
ACCÈS_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 = Flacon (_nom_)
@app.route("/", methodes=['GET'])
def sismo():
essayer:
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+")")
sauf IOError as err: print 'Fallo'
passe
sauf exception comme e:
print "Exception "+str(e)
passe
retourner "OK"
Étape 4: Détails des finales
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 cables entraran.
- Con matériel termo sensible, pus los 3 cables que van al Arduino para que parezca un cable 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
Conseillé:
Prenez de superbes photos avec un iPhone : 9 étapes (avec photos)
Prenez de superbes photos avec un iPhone : la plupart d'entre nous ont un smartphone partout avec nous ces jours-ci, il est donc important de savoir comment utiliser l'appareil photo de votre smartphone pour prendre de superbes photos ! Je n'ai un smartphone que depuis quelques années et j'aime avoir un appareil photo décent pour documenter les choses que je
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : 5 étapes (avec photos)
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : GameGo est une console portable de jeu rétro compatible Microsoft Makecode développée par TinkerGen STEM education. Il est basé sur la puce STM32F401RET6 ARM Cortex M4 et est destiné aux éducateurs STEM ou simplement aux personnes qui aiment s'amuser à créer un jeu vidéo rétro
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): 10 étapes (avec photos)
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): Dans mon projet précédent, j'ai développé une balance de salle de bain intelligente avec Wi-Fi. Il peut mesurer le poids de l'utilisateur, l'afficher localement et l'envoyer vers le cloud. Vous pouvez obtenir plus de détails à ce sujet sur le lien ci-dessous : https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Tapis avec capteurs/communication RF avec Arduino Micro : 4 étapes (avec photos)
Tapis avec capteurs/communication RF avec Arduino Micro : J'ai récemment terminé l'installation Tout aussi diversifiée, qui est composée d'une série de lampes qui réagissent aux capteurs placés dans un tapis sous les lampes. Voici comment j'ai fait le tapis avec des capteurs de pression. J'espère que vous trouverez ça utile.:)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : 9 étapes (avec photos)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : Au fil des ans, j'ai pris l'habitude d'emporter une petite figurine avec moi en voyage : j'achète souvent un petit artoy vierge (comme celui sur la photo) et je peins il correspond au drapeau et au thème du pays que je visite (dans ce cas, la Sicile). T