Spisu treści:
- Krok 1: Kable Como Colocar Los
- Krok 2: Código Arduino
- Krok 3: Código Python
- Krok 4: Szczegóły finałów
Wideo: Alerta Sísmica Temprana.: 4 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Breve wyjaśnienie
Durante un sismo se producen 3 tipos de ondas la primaria o P que es la Importante para este proyecto, viaja entre 8 i 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 sistema de alerta sísmica temprana en twitter.
Materiały do wykorzystania
-1 Arudino UNO (koszt ok. 25 usd)
- 1 Arduino Shield Ehternet (koszt około 24 USD)
- 1 alarm wstrząsu (koszt ok. 30 USD)
- 1 Placa de Circuito impresa para prototipos (koszt ok. 0,60 USD) lub płyta prototypowa
- 3 kable Jumper de diferentes colores (koszt ok. 0,30 USD)
- 1 Conector de batería de 9V (koszt około 0,30 USD)
- Cautin y soldadura
Krok 1: Kable 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 cables:
5v - A0 - Kabel 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.
Krok 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 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.
#włączać
#włączać
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 processamiento de la variación de voltaje y el tiempo para hacer la lamada al servicio web.
statyczna różnica int;
int qaVal = 0;int qaPreVal = 0;
próg wewnętrzny = 10;
int interwałoTiempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
długie
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
Ahora crear las Variables 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 para poder hacer uso de la tarjeta de red. También vamos a definir la IP del servidor que recibirá lo datos.
bajt mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
bajt ip = { 192, 168, 15, 120 }; // Kierunek IP Arduino
bajt
serwer = { 192, 168, 15, 111 }; // Kierunek adresu IP serwera
Klient EthernetClient;
Ya con las variable, librerías y clases listas podemos iniciar el programa que tendrá nuestro Arduino:
- Incializamos el seryjny a 57600
- Luego le decimos al arduino que el pin A0 (stały QUAKEALARM) lo vamos a usar como un pin de entrada.
- Finalmente iniciamos la tarjeta de red.
nieważna konfiguracja () { Serial.begin(57600); pinMode(QUAKEALARM, WEJŚCIE);
Ethernet.begin(mac, ip); // Zainicjuj Ethernet Shield
}
Y para terminar el programa, ponemos en una función cíclica 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 zmienna "sismo". también filtr para que exista un lapso de tiempo de 5 segundos entre un envió de información y otro.
pusta pętla () {
qaVal = odczyt analogowy (ALARM DŹWIĘKOWY); różnica = qaPreVal - qaVal;
if ((diferencia > 0) and (diferencia >= próg) and ((millis() - ultimaConexion) > intervaloTiempo)) {
contador = contador + 1;
Serial.print("Sismo! ");
Serial.println(contador);
ultimaConexion = mili();
if (klient.connect(serwer, 5002)>0) {
Serial.println("Połączenie");
klient.print("POBIERZ /?sismo=1"); // Enviamos los datas por GET
klient.println("HTTP/1.0");
client.println("Agent użytkownika: Arduino 1.0");
}
klient.stop();
klient.flush(); }
qaPreVal = qaVal;
}
Puedes descargar el código pl github.com/bettocr/alertasismo
Código kompletne:
#włączać
#włączać
// QuakeAlarm
#define QUAKEALARM A0
// Zmienna que mantiene el valor anterior del QuakeAlarm
statyczna różnica int;
int qaVal = 0;
int qaPreVal = 0; próg wewnętrzny = 10; int interwałoTiempo = 5000; // Intervalo de tiempo entre dos lamadas al servicio web long ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio web
// Zmienne Ethernet
//Wprowadziliśmy los valores korespondentes a MAC, IP local, Puerta de Enlace y Máscara de Red
bajt mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; bajt ip = { 192, 168, 8, 20 }; // Kierunek IP serwera bajtów Arduino = { 192, 168, 8, 11 }; // Kierunek IP serwera EthernetClient klient; nieważna konfiguracja () { Serial.begin(57600); pinMode(QUAKEALARM, WEJŚCIE); // ethernet Ethernet.begin(mac, ip); // Zainicjuj osłonę Ethernet }
pusta pętla () {
qaVal = odczyt analogowy (ALARM DŹWIĘKOWY);
różnica = qaPreVal - qaVal;
if ((diferencia > 0) and (diferencia >= próg) and ((millis() - ultimaConexion) > intervaloTiempo)) {
contador = contador + 1; Serial.print("Sismo! "); Serial.println(contador); ultimaConexion = mili(); if (client.connect(server, 5002)>0) { Serial.println("Połącz"); client.print("GET /?key=1122334455&sismo=1"); // Enviamos los datas por GET client.println("HTTP/1.0"); client.println("Agent użytkownika: Arduino 1.0"); } klient.stop(); klient.flush(); } qaPreVal = qaVal; }
Krok 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.
Aby uzyskać dostęp do aplikacji i uzyskać klucz klienta (klucz API), klucz klienta (klucz API), token dostępu i klucz dostępu. y pl la función tweet cambiar las xxxxx por sus spectivos valores.
Pueden descargar el código completo en github.com/bettocr/alertasismo lub copiarlo a continuación:
#!/usr/bin/python2.7
# -*- kodowanie: utf-8 -*-
importuj żądania, urllib2, urllib, tweepy
z kolby importu Kolba, prośba
z StringIO importuj 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)
aplikacja = Kolba(_nazwa_)
@app.route("/", method=['GET'])
def sismo():
próbować:
sismo = request.args.get("sismo")
if (str(sismo) == "1"):
t = datagodzina.teraz()
hora = t.strftime("%-I:%M %p")
tweet("[En Pruebas] Posible sismo en los próximos segundos ("+hora+")")
z wyjątkiem IOError jako err: wypisz 'Fallo'
przechodzić
z wyjątkiem Wyjątku, jak e:
print "Wyjątek "+str(e)
przechodzić
powróć "OK"
Krok 4: Szczegóły finałów
Como Pasos adicionales para darle una mejor imagen hice lo siguiente
- Corte la Placa de Circuito justo para que entrara pl el espacio destinado a la batería.
- Con un mototool hice un hueco pl la tapa pl la esquina superior derecha para que los kable entraran.
- Z materiału termo sensowne, puse los 3 kable que van al Arduino para que parezca un solo cable.
- Y para poner el arduino en la pared, hiice 3D od este mount
Pueden seguir el bot que hice con estos pasos en @SismoTico
Zalecana:
Pierwsze kroki z IDE STM32f767zi Cube i prześlij własny szkic: 3 kroki
Rozpoczęcie pracy z IDE STM32f767zi i przesłanie własnego szkicu: KUP (kliknij test, aby kupić/odwiedzić stronę internetową) OPROGRAMOWANIE STM32F767Z WSPIERANE· IDE STM32CUBE· KEIL MDK ARM µVISION· EWARM IAR EMBEDDED WORKBENCH· Dostępne różne oprogramowanie ARDUINO służy do programowania mikrokontrolerów STM
Jak zrobić podwójną antenę 4G LTE BiQuade Proste kroki: 3 kroki
Jak zrobić podwójną antenę 4G LTE BiQuade Proste kroki: W większości przypadków nie mam dobrej siły sygnału w mojej codziennej pracy. Więc. Szukam i próbuję różnych typów anten, ale nie działa. Po zmarnowanym czasie znalazłem antenę, którą mam nadzieję zrobić i przetestować, bo to zasada budowy nie
Bikesaver: Sistema De Alerta DIY Para Ciclistas: 4 kroki
Bikesaver: Sistema De Alerta DIY Para Ciclistas: Bikesaver to system oświetlenia i alertów, które mają na celu zaprojektowanie społeczności Makers dla rowerzystów, którzy chcą się rozwijać na odpowiednim systemie oświetlenia, a także przyglądać się bezpieczeństwu podczas sesji i trwać naprawę y noche.El sis
Pierwsze kroki z płytą La COOL: 4 kroki (ze zdjęciami)
Pierwsze kroki z płytą La COOL: wprowadzenie”Kiedy wpadliśmy na pomysł na płytkę La COOL, wyobraziłem sobie połączenie Arduino z Wi-Fi i modułową agronomiczną stacją pogodową. Do pracy autonomicznej musiał zużywać bardzo mało energii i chciałem móc sterować
Pierwsze kroki z Arduino: Co musisz wiedzieć: 4 kroki (ze zdjęciami)
Pierwsze kroki z Arduino: Co musisz wiedzieć: Pracuję z Arduino i elektroniką od wielu lat i wciąż się uczę. W tym stale rozwijającym się świecie mikrokontrolerów łatwo się zgubić i krążyć wokół siebie, próbując znaleźć informacje. W tej instrukcji