Turinys:
- 1 žingsnis: „Como Colocar Los Cables“
- 2 žingsnis: „Código Arduino“
- 3 žingsnis: „Código Python“
- 4 žingsnis: Išsamiai paaiškinkite finalą
Video: Alerta Sísmica Temprana: 4 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Breve paaiškinimas
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 registrada por los equipos sismógrafos.
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 system de alerta sísmica temprana ir twitter.
Materiales a utilizar
- 1 Arudino UNO (apytiksliai 25 USD USD)
- 1 „Arduino Shield Ehternet“(„Costo Aprox“24 USD)
- 1 drebėjimo aliarmas (Costo Aprox. 30 USD)
- 1 „Placa de Circuito impresa para prototipos“(„Costo Aprox“. 0,60 USD) arba protokolas
- 3 kabeliai „Jumper de diferentes colores“(„Costo Aprox“. 0,30 USD)
- 1 maitinimo šaltinis iš 9 V baterijos („Costo Aprox“. 0,30 USD)
- Cautin y soldadura
1 žingsnis: „Como Colocar Los Cables“
Jei norite sužinoti, kaip tai padaryti, ar ne, tai yra jūsų jutiklis "Quake Alarm", kuris naudojamas naudojant baterijas ir 9v del mismo.
El Arduino le dará 5v al sensorius, skirtas ne tik poder funkcijai.
El "Quake Alarm" yra vienas iš geriausių pranešimų apie pavojų ir aptikimą, kai yra P, tai yra 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 kabeliai:
5v - A0 - Negro kabelis, prijungtas prie baterijų
Pirminis 5 V kabelio kabelis yra alimentarinis jutiklis, 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.
Svarbus 9 colių jutiklio jungiklis, kabelis negro pasa a ser el positivo y el rojo el negativo, mucho cuidado con esto.
2 žingsnis: „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 a 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.
#įtraukti
#įtraukti
Luego vamos a crear una Constante 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.
statinis int diferencia;
int qaVal = 0; int qaPreVal = 0;
int slenkstis = 10;
int intervaloTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
ilgas
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ahora crear las variables para el uso del ethernet, donde apibrėžimai el MAC de la tarjeta de red, la IP que usará esta tarjeta y la clase de type EthernetClient for poder hacer uso de la tarjeta de red. También vamos a definir la IP del servidor que recibirá lo datos.
baitas mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
baitas ip = {192, 168, 15, 120}; // „Direccion IP del Arduino“
baitas
serveris = {192, 168, 15, 111}; // „Direccion IP del servidor“
„EthernetClient“klientas;
„Ya con las“kintamieji, librerías y clases listas podemos iniciar el program que tendrá nuestro Arduino:
- Parduodamas serijos numeris 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 program, ponemos en una función cíclica que revize 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 variable "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;
jei ((diferencia> 0) ir (diferencia> = slenkstis) ir ((millis () - ultimaConexion)> intervaloTiempo)) {
kontadorė = kontadorė + 1;
Serial.print („Sismo!“);
Serial.println (kontadorė);
ultimaConexion = milis ();
if (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 („Vartotojo agentas:„ Arduino 1.0 ““);
}
client.stop ();
client.flush (); }
qaPreVal = qaVal;
}
Atsisiųskite el. Kodą ir github.com/bettocr/alertasismo
Visas „Código“:
#įtraukti
#įtraukti
// „QuakeAlarm“
#define QUAKEALARM A0
// Variable que mantiene el valor anterior del QuakeAlarm
statinis int diferencia;
int qaVal = 0;
int qaPreVal = 0; int slenkstis = 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
// Kintamieji Ethernet
// Įveskite los valores korespondentus MAC, IP local, Puerta de Enlace y Máscara de Red
baitas mac = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; baitas ip = {192, 168, 8, 20}; // „Direccion IP del Arduino“baitų serveris = {192, 168, 8, 11}; // „Direccion IP del servidor EthernetClient client“; void setup () {Serial.begin (57600); pinMode (QUAKEALARM, INPUT); // eternetas Ethernet.begin (mac, ip); // „Inicializamos el Ethernet Shield“}
void loop () {
qaVal = analogRead (QUAKEALARM);
diferencia = qaPreVal - qaVal;
jei ((diferencia> 0) ir (diferencia> = slenkstis) ir ((millis () - ultimaConexion)> intervaloTiempo)) {
kontadorė = kontadorė + 1; Serial.print („Sismo!“); Serial.println (kontadorė); ultimaConexion = milis (); if (client.connect (server, 5002)> 0) {Serial.println ("Conecto"); client.print ("GET /? raktas = 1122334455 & sismo = 1"); // Enviamos los datos por GET client.println ("HTTP/1.0"); client.println („Vartotojo agentas:„ Arduino 1.0 ““); } client.stop (); client.flush (); } qaPreVal = qaVal; }
3 žingsnis: „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.
Norėdami tai padaryti, naudokite kūrimo ir programų kūrimo programas.twitter.com, kad būtų galima naudoti ir gauti informacijos apie vartotojo raktą (API raktas), vartotojo paslaptį (API paslaptis), prieigos raktą ir prieigos žetono paslaptį. y en la función tweet cambiar las xxxxx por sus respectivos valores.
Atsisiųskite pilną kodo parsisiuntimą ir github.com/bettocr/alertasismo or copiarlo a continuación:
2.7. usr/bin/python
#-*-kodavimas: utf-8-*-
importo užklausos, urllib2, urllib, tweepy
iš kolbos importo Kolba, prašymas
iš „StringIO“importuoti „StringIO“
iš datos ir laiko importo data, laikas
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 (būsena = mensaje)
programa = kolba (_ vardas_)
@app.route ("/", metodai = ['GET'])
def sismo ():
bandyti:
sismo = request.args.get ("sismo")
jei (str (sismo) == "1"):
t = datetime.now ()
hora = t.strftime ("%-I:%M%p")
tweet ("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")
išskyrus „IOError“kaip klaida: spausdinti „Fallo“
praeiti
išskyrus išimtis, pvz.:
spausdinti „Išimtis“+str (e)
praeiti
grįžti „gerai“
4 žingsnis: Išsamiai paaiškinkite finalą
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 kabeliai entraran“.
- Sudėtinga medžiaga yra pusiau 3 kabeliai, esantys Arduino para que parezca ir solo kabeliuose.
- 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
Rekomenduojamas:
„Pasidaryk pats“„Leds Arduino“ruletės žaidimas: 3 žingsniai (su nuotraukomis)
„Pasidaryk pats“37 „Leds Arduino“ruletės žaidimas: Ruletė yra kazino žaidimas, pavadintas prancūziško žodžio, reiškiančio mažą ratą, vardu
„BOSEBerry Pi“interneto radijas: 4 žingsniai (su nuotraukomis)
„BOSEBerry Pi“interneto radijas: man patinka klausytis radijo! Savo namuose naudojau DAB radiją, tačiau radimas buvo šiek tiek nevienodas, o garsas nuolat nutrūko, todėl nusprendžiau sukurti savo interneto radiją. Aplink mano namus ir skaitmeninį brolį turiu stiprų „Wi -Fi“signalą
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Varžtas - „pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): 6 žingsniai (su nuotraukomis)
Varžtas - „Pasidaryk pats“belaidis įkrovimo naktinis laikrodis (6 žingsniai): Indukcinis įkrovimas (taip pat žinomas kaip belaidis įkrovimas arba belaidis įkrovimas) yra belaidžio energijos perdavimo tipas. Jis naudoja elektromagnetinę indukciją tiekti elektros energiją nešiojamiesiems įrenginiams. Dažniausia programa yra „Qi“belaidžio įkrovimo st
Dviračių apsaugos priemonė: „Sistema De Alerta“pasidaryk pats „Ciclistas“: 4 žingsniai
Dviračių apsaugos priemonė: „Sistema De Alerta DIY Para Ciclistas“: „Dviračių taupymo sistema“ir „Illuminación y alerta que involucra un enfoque de la comunidad“kūrėjas, skirtas paraiškų teikimo dienoraščio dienoraščio dienoraščio dienoraščio dienoraščio dienoraščio dienoraščiui. y noche.El sis