Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sistema de Alarma para Mochila con Arduino y Brújula LSM303

Componentes y materiales

Arduino UNO × 1
Adafruit LSM303 - Acelerómetro + Magnetómetro (Brújula) Triple Eje × 1
Zumbador Piezo Grande SparkFun - 3kHz × 1
Batería 9V (genérica) × 1
Jack hembra 6.35mm (con interruptor) × 1
Jack macho 6.35mm × 1
Cables jumper Macho/Hembra × 1
Conector 9V a Jack Barril × 1

Aplicaciones y servicios online

Arduino IDE enlace

Sobre este proyecto

¿Alguna vez has sentido la necesidad de una alarma para tu mochila? ¿Te has sentado en público con la mochila y temido que la roben? ¡Este es tu proyecto!

Usando la brújula/acelerómetro LSM303, suena alarma al detectar movimiento. Monitoriza la orientación mediante el magnetómetro; si hay giro >10°, activa la alarma.

Paso 1: Cablear el Arduino

Conecta la placa LSM303 al Arduino:

Más detalles: Guía Adafruit.

Conecta el zumbador piezo:

Sistema de Alarma para Mochila con Arduino y Brújula LSM303

Paso 2: Instalar librerías

  1. Descarga Adafruit_LSM303DLHC y Adafruit_Sensor como .ZIP.
  2. Abre Arduino IDE (descarga aquí si no lo tienes).
  3. Sketch → Include Library → Add .ZIP Library…
Sistema de Alarma para Mochila con Arduino y Brújula LSM303
  1. Selecciona los .ZIP descargados.
Sistema de Alarma para Mochila con Arduino y Brújula LSM303

Paso 3: Programar el Arduino

Nuevo sketch en Arduino IDE, borra todo, pega este código:

// Incluir librerías
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
#include <Adafruit_LSM303.h>

// Ajustar sensibilidad (grados)
const int sens = 10;

// ID único para el sensor
Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);

void setup(void) {
  // Serial.begin(9600); // Solo depuración
  // Serial.println("Iniciando...");

  pinMode(13, OUTPUT); // Pin zumbador

  // Inicializar sensor
  if(!mag.begin()) {
    // Error detectando LSM303: revisa conexiones
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    while(1); // Bucle infinito
  }

  // Espera 5 segundos para colocar mochila
  delay(5000);

  // Beep de confirmación inicio
  digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW);
}

// Obtener rumbo magnético en grados (0-359)
int getDeg(void) {
  sensors_event_t event;
  mag.getEvent(&event);
  float Pi = 3.14159;
  float heading = int((atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi);
  if (heading < 0) heading = 360 + heading;
  return heading;
}

void loop(void) {
  int oldDeg = getDeg();
  delay(1000);
  int newDeg = getDeg();

  // Detectar cambio > sensibilidad
  if (newDeg < (oldDeg - sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH); // Alarma
    // Serial.println("Disparado");
  }
  else if (newDeg > (oldDeg + sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH); // Alarma
    // Serial.println("Disparado");
  }

  // Serial.print("Nuevo:"); Serial.println(newDeg);
  // Serial.print("Viejo:"); Serial.println(oldDeg);
}

Conecta Arduino, compila y sube.

Paso 4: ¡Prueba!

Si todo va bien, tras reset: unos beeps, 3s silencio, beep largo. Gira el LSM303 → suena alarma. Si muy sensible, aumenta sens; si poco, disminúyelo.

Si 2 beeps largos antes de los 3s: problema cableado. Revisa conexiones.

Si no funciona: puede ser nombres librerías. Borra #include iniciales y usa Sketch → Include Library → selecciona 'Wire', 'Adafruit LSM303DLHC', 'Adafruit Unified Sensor'. Si persiste: aleja de campos magnéticos fuertes (otra habitación, exterior). Asegura placa nivelada y paralela al suelo.

Paso 5: Añadir llave de armado/desarmado

Ya tienes alarma funcional. Conecta batería 9V al jack barril, monta en mochila. Pero enchufar/desenchufar cada vez es molesto. Aquí entra el jack 6.35mm: más seguro que jack 3.5mm (común en auriculares). Si tienes interruptor con llave u otro, úsalo.

Cablea el interruptor/llave entre la batería y el jack barril.

Sistema de Alarma para Mochila con Arduino y Brújula LSM303

Si usas conector barril con terminales: corta un cable, alarga si hace falta, inserta interruptor. Yo usé terminal block jack y cableé así. Mi "llave" es un simple interruptor toggle, pero sé creativo: reed switch + imán, RFID, ¡app smartphone!

Paso 6: ¡Monta en la mochila!

Sistema de Alarma para Mochila con Arduino y Brújula LSM303
Sistema de Alarma para Mochila con Arduino y Brújula LSM303
Sistema de Alarma para Mochila con Arduino y Brújula LSM303

¡Listo! Taladra agujero lateral para zumbador y otro para llave. Usé bridas, pero puedes fijar más permanente. Asegura: sensor paralelo al suelo y orificio zumbador despejado.

Más allá

Esta alarma no es solo para mochilas. Ponla en una puerta, tarro de galletas, nevera, ¡lo que quieras proteger! Las posibilidades son infinitas.

Código

Código (Arduino)
// Incluir librerías
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
#include <Adafruit_LSM303.h>

// Ajustar sensibilidad
const int sens = 10;

// ID único para el sensor
Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);

void setup(void) {
  // Serial.begin(9600); // Serial.println("Starting...");
  pinMode(13, OUTPUT);
  if(!mag.begin()) {
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    while(1);
  }
  delay(5000);
  digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW);
}

int getDeg(void) {
  sensors_event_t event;
  mag.getEvent(&event);
  float Pi = 3.14159;
  float heading = int((atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi);
  if (heading < 0) heading = 360 + heading;
  return heading;
}

void loop(void) {
  int oldDeg = getDeg();
  delay(1000);
  int newDeg = getDeg();
  if (newDeg < (oldDeg - sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH);
    // Serial.println("Triggered");
  } else if (newDeg > (oldDeg + sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH);
    // Serial.println("Triggered");
  }
  // Serial.print("New:"); Serial.println(newDeg);
  // Serial.print("Old:"); Serial.println(oldDeg);
}

Esquemáticos

Hacia la Brújula:
Azul – SDA
Amarillo – SCL
Negro – GND
Rojo – VIN

Sistema de Alarma para Mochila con Arduino y Brújula LSM303

Proceso de manufactura

  1. Monitorización segura del hogar con Home Assistant en Raspberry Pi: Movimiento, alarma y captura de vídeo
  2. Construya una Alarma de Agua Headless para Raspberry Pi 2 con Adafruit T‑Cobbler Plus
  3. Sistema de Alarma por Detección de Movimiento con Java y Reactive Blocks – Despliegue en Raspberry Pi y Envío de SMS
  4. Robot Despertador Rodante: Sistema Inteligente y Móvil de Despertar con Raspberry Pi y Google Calendar
  5. Alerta de Sed Inteligente para Plantas: Sensor DIY para Riego Óptimo
  6. SERENA: Sistema de Alarma Personalizado Arduino Mega 2560 con Pantalla TFT LCD Táctil
  7. Evaluación de seguridad de sistemas de alarma con Arduino y módulos RF 433 MHz
  8. Monitor de distancia ultrasónica y temperatura con Arduino y LCD con sistema de alarma
  9. Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO
  10. Construye un Sistema de Seguridad y Alarma con Arduino: Tutorial Paso a Paso
  11. Diseño de sistemas de control a prueba de fallos para seguridad y fiabilidad