สารบัญ:
- ขั้นตอนที่ 1: สายเคเบิล Como Colocar Los
- ขั้นตอนที่ 2: Código Arduino
- ขั้นตอนที่ 3: Código Python
- ขั้นตอนที่ 4: รายละเอียด Finales
วีดีโอ: Alerta Sísmica Temprana.: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
คำอธิบาย Breve
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 การลงทะเบียน por losequios sismógrafos.
เซ็นเซอร์ที่มีอยู่ caseros, que nos dan una alerta detectando estas ondas P, dándonos unos segundos antes que el sismo suceda
นำเสนอ proyecto busca crear un sistema de alerta sísmica temprana en twitter
วัสดุที่มีประโยชน์
- 1 Arudino UNO (คอสโตประมาณ 25 เหรียญสหรัฐ)
- 1 Arduino Shield Ehternet (ราคาประมาณ 24 เหรียญสหรัฐฯ)
- สัญญาณเตือนแผ่นดินไหว 1 ครั้ง (ราคาประมาณ 30 ดอลลาร์สหรัฐฯ)
- 1 Placa de Circuito impresa para prototipos (Costo Aprox. $0.60 usd) หรือบอร์ดต้นแบบ
- 3 สาย Jumper de ที่แตกต่างกันสี (Costo Aprox. $0.30 usd)
- 1 Conector de batería de 9V (Costo Aprox. $0.30 ดอลลาร์สหรัฐ)
- Cautin y soldadura
ขั้นตอนที่ 1: สายเคเบิล Como Colocar Los
สำหรับตัวเลือกที่มีอยู่ทั้งหมด เซ็นเซอร์ 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 สายเคเบิล:
5v - A0 - สายเคเบิลสีดำกับแบตเตอรี่
Primero el สายเคเบิลสำหรับ 5V กับเซ็นเซอร์ตรวจจับอาหาร, luego el A0 กับจอภาพและไฟสุดท้ายและสายเคเบิลสีดำกับตัวเชื่อมต่อ
En otra fila conectamos el สายเคเบิล Negro que viene el Arduino y el สายเคเบิล rojo que viene del conector
una vez los tengamos en este orden soldamos para que la electricidad ป้อน entre ellos
สำคัญ 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.
ขั้นตอนที่ 2: Código 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 สมบูรณ์ y donde descargarlo
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่จำเป็นสำหรับตัวเลือกการใช้งาน el shield ethernet และ el serial
#รวม
#รวม
Luego vamos a crear una constante que va a tener el PIN Analógico que vamos a usar เข้าสู่ระบบ
#กำหนด QUAKEALARM A0
Seguido definimos las ตัวแปร que nos van ayudar al procesamiento de la variación de voltaje y el tiempo para hacer la llamada al servicio web.
ความแตกต่าง int คงที่;
int qaVal = 0;int qaPreVal = 0;
เกณฑ์ int = 10;
int intervaloTempo = 5000; // Intervalo de tiempo entre dos llamadas al servicio web
ยาว
ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio เว็บ
Ahora crear las variables สำหรับ 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. คำนิยาม
ไบต์ mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
ไบต์ ip = { 192, 168, 15, 120 }; // Direccion IP เดล Arduino
ไบต์
เซิร์ฟเวอร์ = { 192, 168, 15, 111 }; // Direccion IP del servidor
ไคลเอนต์ EthernetClient;
Ya con las variables, librías y คลาส 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) ปกติแล้ว ใช้งานร่วมกันได้
- Finalmente iniciamos la tarjeta de สีแดง.
การตั้งค่าเป็นโมฆะ () { Serial.begin (57600); โหมดพิน (QUAKEALARM, อินพุต);
Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
}
สำหรับปลายทางและโปรแกรม, 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 variable "sismo" también filtra สำหรับ que มีอยู่ un lapso de tiempo de 5 segundos entre un envió de información y otro.
วงเป็นโมฆะ () {
qaVal = analogRead (QUAKEALARM); ความแตกต่าง = qaPreVal - qaVal;
ถ้า ((ความแตกต่าง > 0) และ (ความแตกต่าง >= เกณฑ์) และ ((มิลลิวินาที () - ultimaConexion) > ช่วงจังหวะ)) {
คอนทาดอร์ = คอนทาดอร์ + 1;
Serial.print("ซิสโม่!");
Serial.println (คอนทาดอร์);
ultimaConexion = มิลลิวินาที ();
if (client.connect(เซิร์ฟเวอร์, 5002)>0) {
Serial.println ("Conecto");
client.print("GET /?sismo=1"); // Enviamos los datos โดย GET
client.println("
client.println("ตัวแทนผู้ใช้: Arduino 1.0");
}
client.stop();
client.flush(); }
qaPreVal = qaVal;
}
ดาวน์โหลด el código en github.com/bettocr/alertasismo
Codigo สมบูรณ์:
#รวม
#รวม
// QuakeAlarm
#กำหนด QUAKEALARM A0
// ตัวแปร que mantiene el valor anterior del QuakeAlarm
ความแตกต่าง int คงที่;
int qaVal = 0;
int qaPreVal = 0; เกณฑ์ int = 10; ช่วงเวลา int เวลา = 5000; // Intervalo de tiempo entre dos llamadas al servicio เว็บยาว ultimaConexion = 0; // Tiempo en milisegundos desde la ultima conexion al servicio เว็บ
// ตัวแปรอีเธอร์เน็ต
//แนะนำ los valores รองรับ MAC, IP local, Puerta de Enlace y Máscara de Red
ไบต์ mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; ไบต์ ip = { 192, 168, 8, 20 }; // Direccion IP เดล Arduino ไบต์เซิร์ฟเวอร์ = { 192, 168, 8, 11 }; // Direccion IP del servidor ไคลเอนต์ EthernetClient; การตั้งค่าเป็นโมฆะ () { Serial.begin (57600); โหมดพิน (QUAKEALARM, อินพุต); // อีเธอร์เน็ต Ethernet.begin (mac, ip); // Inicializamos el Ethernet Shield }
วงเป็นโมฆะ () {
qaVal = analogRead (QUAKEALARM);
ความแตกต่าง = qaPreVal - qaVal;
ถ้า ((ความแตกต่าง > 0) และ (ความแตกต่าง >= เกณฑ์) และ ((มิลลิวินาที () - ultimaConexion) > ช่วงจังหวะ)) {
คอนทาดอร์ = คอนทาดอร์ + 1; Serial.print("ซิสโม่!"); Serial.println (คอนทาดอร์); ultimaConexion = มิลลิวินาที (); if (client.connect(server, 5002)>0) { Serial.println("Conecto"); client.print("GET /?key=112233445&sismo=1"); // Enviamos los datos โดย GET client.println(" HTTP/1.0"); client.println("ตัวแทนผู้ใช้: Arduino 1.0"); } client.stop(); client.flush(); } qaPreVal = qaVal; }
ขั้นตอนที่ 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 สำหรับผู้ใช้งานทั่วไป
Lo hice de esta manera para poder Implementar estadísticas y en un futuro poderlo usar en algún servicio de notificaciones PUSH สำหรับมือถือ
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งาน en apps.twitter.com ใช้งานได้กับรหัสผู้บริโภค (คีย์ API) ความลับผู้บริโภค (ความลับของ API) โทเค็นการเข้าถึงและความลับของโทเค็นการเข้าถึง และสนุกกับทวีต
ดาวน์โหลด el código completo en github.com/bettocr/alertasismo o copiarlo ต่อเนื่อง:
#!/usr/bin/python2.7
# -*- การเข้ารหัส: utf-8 -*-
คำขอนำเข้า, urllib2, urllib, tweepy
จากขวดนำเข้า Flask ขอ
จาก StringIO นำเข้า StringIO
จากวันที่และเวลานำเข้า วันที่เวลา, timedelta
def ทวีต (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(สถานะ=mensaje)
แอพ = ขวด (_name_)
@app.route("/", วิธี=['GET'])
def sismo():
ลอง:
sismo = request.args.get("ซิสโม")
ถ้า (str(sismo) == "1"):
t = datetime.now()
hora = t.strftime("%-I:%M %p")
tweet("[En Pruebas] เป็นไปได้ sismo en los próximos segundos ("+hora+")")
ยกเว้น IOError เป็นข้อผิดพลาด: พิมพ์ 'Fallo'
ผ่าน
ยกเว้นข้อยกเว้นเป็น e:
พิมพ์ "ข้อยกเว้น" +str(e)
ผ่าน
กลับ "ตกลง"
ขั้นตอนที่ 4: รายละเอียด 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
- ยกเลิก mototool hice un hueco en la tapa en la esquina superior derecha para que los cables entraran.
- Con วัสดุ Termo ที่เหมาะสม, puse los 3 สายเคเบิล que van al Arduino para que parezca un สายเคเบิลเดี่ยว
- Y สำหรับ poner el arduino en la pared, hice la impresión 3D de este mount
ทำงานที่ el bot que hice con estos pasos en @SismoTico
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
Bikesaver: Sistema De Alerta DIY Para Ciclitas: 4 ขั้นตอน
Bikesaver: ระบบการแจ้งเตือน DIY สำหรับ Ciclistas: Bikesaver es un sistema ของ Iluminación y alerta que involucra un enfoque de la comunidad Maker para que un ciclista pueda crear su propio sistema de iluminación, así mejorad su ario se sus y noche.El sis
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-