Sadržaj:
- Korak 1: Como Colocar Los Cables
- Korak 2: Código Arduino
- Korak 3: Código Python
- Korak 4: Detaljne završnice
Video: Alerta Sísmica Temprana .: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Breve explicación
Durante un sismo se proizvodi 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 sensores caseros, que nos and una alertta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda.
El presente proyecto busca crear i sistem za upozorenje privremene temprane na twitteru.
Materiales a utilizar
- 1 Arudino UNO (Costo oko 25 USD)
- 1 Arduino Shield Ehternet (Costo otprilike 24 USD)
- 1 alarm za potres (Costo otprilike 30 USD)
- 1 Placa de Circuito impresa para prototipos (Costo cca. 0,60 USD) o proto ploči
- 3 kabelska skakača u različitim bojama (Costo približno 0,30 USD)
- 1 priključak za bateriju de 9V (Costo približno 0,30 USD)
- Cautin y soldadura
Korak 1: Como Colocar Los Cables
Za više informacija o senzoru "Quake Alarm", potrebno je instalirati proyecto sinhronizovani senzor "Quake Alarm", koji koristi priključak za napajanje od 9V za napajanje.
El Arduino le dará 5v senzor nalazi se u funkciji podernog funkcionera.
El "Quake Alarm" uključuje i isključuje parametre za emitovanje i upozorenje ako otkrijete P, ako ste parlante suena el voltaje baja, por lo que usaremos el Pin A0 za monitorear i kambio na el voltaji.
En el siguiente orden se deben poner los cable:
5v - A0 - Negro del conector de batería
Primarni kabl za 5V na alimentarnom senzoru, na A0 napajanju za monitorearni napon i krajnji kablovski crni priključak.
En ortra fila conectamos el kabel Negro que viene el Arduino i el kabel rojo que viene del conector.
una vez los tengamos en este orden soldamos para que la electricidad pase entre ellos.
Važan priključak za priključak 9V senzora, crni kabl sa crvenim priključkom i sertifikatom za pozicioniranje i rotiranje na negativu.
Korak 2: 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 and un servicio web
Vamos a expicar un poco el código, si no quieres entenderlo a profundidad luego de la explicación esta el código completo y donde descargarlo.
Za početak, morate uključiti sve potrebne librerije za parametre koji koriste štit Ethernet i serijski.
#include
#include
Luego vamos a crear una constete 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 procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
statička int diferencija;
int qaVal = 0; int qaPreVal = 0;
int prag = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
dugo
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ahora može stvoriti varijable za esonet u esonet -u, definirati MAC de la tarjeta de red, la IP que usará esta tarjeta y la klase de tipo EthernetClient za poder hacer u de la tarjeta de red. Zapamtite definitivnu IP adresu servera za prijem podataka.
bajt mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
bajt ip = {192, 168, 15, 120}; // Direccion IP del Arduino
byte
server = {192, 168, 15, 111}; // IP adresa servidora
EthernetClient klijent;
Da, varijable, librerije i klase sadrže popis podešavanja za pokretanje programa s tendencijom nužde Arduino:
- Incializamos el serijski a 57600
- Luego le decimos al arduino que el pin A0 (constete 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 termina el programa, ponemos en una funcion ciclica 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 varijabla "sismo". tambien filtra para que exista un lapso de tiempo od 5 segndos entre un envió de información y otro.
void loop () {{100} {101}
qaVal = analogRead (QUAKEALARM); diferencia = qaPreVal - qaVal;
if ((diferencia> 0) i (diferencia> = prag) i ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1;
Serial.print ("Sismo!");
Serial.println (kontador);
ultimaConexion = millis ();
if (client.connect (server, 5002)> 0) {
Serial.println ("Conecto");
client.print ("GET /? sismo = 1"); // Dopušteno preuzimanje datoteka GET
client.println ("HTTP/1.0");
client.println ("Korisnički agent: Arduino 1.0");
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Puedes descargar el código en github.com/bettocr/alertasismo
Código completo:
#include
#include
// QuakeAlarm
#define QUAKEALARM A0
// Promjenjivo stanje u prednjem dijelu QuakeAlarma
statička int diferencija;
int qaVal = 0;
int qaPreVal = 0; int prag = 10; int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al service web web ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Varijable Ethernet
// Pojavljuje se los valores korespondencija s MAC -om, lokalnim IP -om, Puerta de Enlace y Máscara de Red
bajt mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; bajt ip = {192, 168, 8, 20}; // Direccion IP del Arduino bajt server = {192, 168, 8, 11}; // IP adresa servidora EthernetClient klijenta; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // ethernet Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield}
void loop () {{100} {101}
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
if ((diferencia> 0) i (diferencia> = prag) i ((millis () - ultimaConexion)> intervaloTiempo)) {
contador = contador + 1; Serial.print ("Sismo!"); Serial.println (kontador); ultimaConexion = millis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? key = 1122334455 & sismo = 1"); // Zapisnik s podacima o GET client.println ("HTTP/1.0"); client.println ("Korisnički agent: Arduino 1.0"); } client.stop (); client.flush (); } qaPreVal = qaVal; }
Korak 3: Código Python
Este código básicamente create un servicio web en puerto 5002 del servidor (yo lo uso and un Raspberry Pi en mi casa), que recibe el aviso del Arduino para lulue enviar in Tuit.
Lo hice de esta manera za poder implementate estadísticas y en un futuro poderlo usar en algún service de notificaciones PUSH para móviles.
Da biste to učinili, otvorite aplikaciju na web stranici apps.twitter.com i primijenite je kako biste pronašli podatke o potrošačkom ključu (API ključ), potrošačkoj tajni (API tajni), pristupnom tokenu i tajni pristupnog tokena. y en la función tweet cambiar las xxxxx por sus respectivos valores.
Pueden preuzmite kompletno kodigo na github.com/bettocr/alertasismo ili kopiranje i nastavak:
#!/usr/bin/python2.7
#-*-kodiranje: utf-8-*-
zahtjevi za uvoz, urllib2, urllib, tweepy
iz boce za uvoz Boca, zahtev
iz StringIO uvezite StringIO
from datetime import datetime, 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 (status = mensaje)
app = Flask (_ name_)
@app.route ("/", methods = ['GET'])
def sismo ():
probaj:
sismo = request.args.get ("sismo")
if (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Moguć sismo en los próximos segundos ("+hora+")")
osim IOError kao greške: ispišite 'Fallo'
pass
osim izuzetka kao e:
ispis "Izuzetak"+str (e)
pass
vrati "OK"
Korak 4: Detaljne završnice
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 entraran.
- Od materijala koji je termo senzibilan, sa 3 kabela koji se nalaze van Al Arduina, pa su potrebni pojedinačni kabeli.
- Y para poner el arduino en la pared, hise la impresión 3D de este mount
Pueden seguir el bot que hice con estos pasos en @SismoTico
Preporučuje se:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) sa Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju svog Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekat će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kada se Micro: Bit protrese, broju ćemo dodati 2 i prikazati ga na ekranu
Bikesaver: Sistema De Alerta DIY Para Ciclistas: 4 koraka
Bikesaver: Sistema De Alerta DIY Para Ciclistas: Bikesaver es un system from Iluminación y alertta que involucra un enfoque de la comunidad Maker for que un ciclista pueda crear are propio system of iluminación, as mejorar su seguridad en sus recorridos dios y noche.El sis
Kako rastaviti računar jednostavnim koracima i slikama: 13 koraka (sa slikama)
Kako rastaviti računar jednostavnim koracima i slikama: Ovo uputstvo o tome kako rastaviti računar. Većina osnovnih komponenti je modularna i lako se uklanja. Međutim, važno je da se oko toga organizirate. To će vam pomoći da izbjegnete gubitak dijelova, a također i prilikom ponovnog sastavljanja