Cuprins:
- Pasul 1: Como Colocar Los Cables
- Pasul 2: Cod Arduino
- Pasul 3: Código Python
- Pasul 4: Detalii finale
Video: Alerta Sísmica Temprana .: 4 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Breve explicación
În timp ce un sism se produce 3 tipuri de onduri la primaria o P care este importantă pentru acest proiect, viața între 8 și 13 km / s și este înregistrată pentru echipamentele sismografice.
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 sistema de alerta sísmica temprana en twitter.
Materiale a utiliza
- 1 Arudino UNO (Costo aprox. 25 USD)
- 1 Arduino Shield Ehternet (Costo Aproximativ 24 USD)
- 1 alarmă de cutremur (aprox. 30 USD USD)
- 1 Placa de Circuit impresa pentru prototipuri (Costo Aprox. $ 0.60 usd) o una protoboard
- 3 cabluri Jumper de diferite culori (aprox. 0,30 USD usd)
- 1 conector de baterie de 9V (aprox. 0,30 USD usd)
- Cautin y soldadura
Pasul 1: Como Colocar Los Cables
Pentru a putea face proiectul nostru fără a deschide senzorul "Quake Alarm", vom folosi conectorul bateriei de 9v del mismo.
El Arduino le dará 5v al sensor con los que va a poder funcționa bine.
El "Quake Alarm" are un parlant pentru a emite o alertă și detecta undele P, dacă este vorba despre un voltaj scăzut, pentru a-l folosi pe Pin A0 pentru a monitoriza un schimb în tensiune.
În următoarea ordine trebuie să pună cablurile:
5v - A0 - Cablu negru al conectorului de baterie
Primerul cablu de 5V care va alimenta senzorul, apoi el A0 care va monitoriza voltajul și în cele din urmă Cable negru 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 că al conecta conectorul de 9V al senzorului, cablul negru pasează să fie el pozitiv și roșu negativ, mult îngrijit cu asta.
Pasul 2: Cod Arduino
En el Arduino vamos to create un code that nos va a allowir 2 things:
- Leer el voltaje para buscar cambios
- Dacă există o variație în tensiunea de a face o chemare la un serviciu web
Vamos a explica un pic codul, dacă nu vreau să înțeleg profunzimea apoi a explicației este codul complet și unde se descarcă.
Pentru a începe să includem bibliotecile necesare pentru a putea folosi ecranul ethernet și serialul.
#include
#include
Luego vamos a create una constant that va to have the PIN Analogico that vamos a use
#define QUAKEALARM A0
Seguido definimos las variables que nos van a ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
static int diferencia;
int qaVal = 0; int qaPreVal = 0;
prag int = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
lung
ultimaConexion = 0; // Tiempo en milisegundos de la ultima conexiune la serviciu web
Ahora create the variables for the use del ethernet, where definimos the MAC de la card de red, the IP that usará this card y the class of type EthernetClient for poder use of the card de red. De asemenea, putem defini IP-ul serverului care va primi datele.
octet mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
octet ip = {192, 168, 15, 120}; // Direccion IP del Arduino
octet
server = {192, 168, 15, 111}; // Direcția IP a serverului
Client EthernetClient;
Ya with the variables, librerías y classes listas we can start the program that tendrá our Arduino:
- Incializamos el serial a 57600
- Luego le decimos al arduino that the pin A0 (constant QUAKEALARM) lo vamos a use as a pin de entrada.
- În cele din urmă începe cartea roșie.
void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT);
Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield
}
Y para terminar el programa, ponemos en una function cíclica que revise el voltaje si este es inferior a 5v pe care o face o chemare la server și prin mediu de GET le manda el valor 1 la variable "sismo". de asemenea, filtru pentru care există un lapso de timp de 5 secunde între un inviu de informații și altul.
bucla nulă () {
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferență> 0) și (diferență> = prag) și ((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"); // Trimiteți datele prin GET
client.println ("HTTP / 1.0");
client.println ("User-Agent: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descărcați codul în github.com/bettocr/alertasismo
Cod complet:
#include
#include
// QuakeAlarm
#define QUAKEALARM A0
// Variable que mantiene el valor anterior del QuakeAlarm
static int diferencia;
int qaVal = 0;
int qaPreVal = 0; prag int = 10; int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos de la ultima conexiune la serviciu web
// Variabile Ethernet
// Se introduc valorile corespunzătoare MAC, IP local, Puerta de Enlace și 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}; // Direcția IP a serverului Client EthernetClient; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // Ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}
bucla nulă () {
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
if ((diferență> 0) și (diferență> = prag) și ((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"); // Trimiteți datele pentru GET client.println ("HTTP / 1.0"); client.println ("User-Agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Pasul 3: Código Python
Este codul esențial creează un serviciu web în portul 5002 del server (yo lo uso en un Raspberry Pi en mi casa), care primește avizul Arduino pentru apoi trimite 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.
Pentru a vă permite să creați în apps.twitter.com o aplicație și obțineți datele Consumer Key (API Key), Consumer Secret (API Secret), Access Token și Access Token Secret. și în funcția tweet schimbă xxxxx-ul pentru valorile respective.
Pueden descarcă codul complet în github.com/bettocr/alertasismo o copiarlo a continuare:
#! / usr / bin / python2.7
# - * - codare: utf-8 - * -
solicitări de import, urllib2, urllib, tweepy
din flacon import Flacon, cerere
din StringIO import StringIO
din datetime import datetime, timedelta
tweet def (mesaj):
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 = Flask (_ nume_)
@ app.route ("/", methods = ['GET'])
def sismo ():
încerca:
sismo = request.args.get ("sismo")
if (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime („% - I:% M% p”)
tweet ("[En Pruebas] Posible sismo în los próximos segundos (" + hora + ")")
cu excepția IOError ca eroare: tipăriți „Fallo”
trece
cu excepția excepției ca e:
print "Excepție" + str (e)
trece
returnează „OK”
Pasul 4: Detalii finale
Como Pasos adicionales for darle a better image hice lo next
- Corte la Placa de Circuito justo pentru care intră în spațiul destinat la baterie.
- Con un mototool hice un hueco en la tapa en la esquina superior dreapta pentru care cablurile intră.
- Con material termo sensible, puse los 3 cables that van al Arduino for that 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
Recomandat:
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Sistem de alertă în caz de accident utilizând GSM, GPS și accelerometru: 5 pași (cu imagini)
Sistem de alertă de accidente care folosește GSM, GPS și accelerometru: vă rog să mă votați pentru concurs Vă rugăm să mă votați pentru concurs În zilele noastre multe persoane au murit pe drum din cauza accidentului, cauza principală fiind „întârzierea salvării”. Această problemă este foarte mare în țările în curs de dezvoltare, așa că am proiectat acest proiect pentru a salva
Alertă UD. pentru un băiat cu autism: 7 pași (cu imagini)
Alertă UD. pentru un băiat cu autism: Alertă Ud, sau mai bine Alertă dezbrăcată, dar pentru ce? Fiul nostru, Scott, în vârstă de 13 ani, suferă de autism. El este nonverbal și încă mai are probleme să ne arate când trebuie să intre la toaletă. Datorită comunicării sale limitate, își ia hainele jos
Sistem de alertă la nivel de zgomot nesigur: 11 pași (cu imagini)
Sistem de avertizare cu nivel de zgomot nesigur: Bucătăria Oshman Engineering Design (OEDK) este cel mai mare spațiu de producție de la Universitatea Rice, oferind un spațiu tuturor studenților pentru a proiecta și a prototipa soluții la provocările din lumea reală. Pentru a îndeplini acest scop, OEDK găzduiește o serie de instrumente electrice
Monitorizați galoanele rezervorului de ulei de încălzire cu e-mail, SMS și alertă cu glugă: 9 pași (cu imagini)
Monitorizați galoanele rezervorului de ulei de încălzire cu avertizare prin e-mail, SMS și pushbullet: INFORMAȚII DE SIGURANȚĂ: În cazul în care cineva dorește să știe dacă " acest lucru este sigur de construit / instalat " - Am dus acest lucru la 2 companii petroliere diferite din motive de feedback / siguranță și am condus acest lucru de către deputatul de prevenire a incendiilor C