Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DIY Rugzakalarm met Arduino en LSM303 Kompas

Onderdelen en benodigdheden

Arduino UNO × 1
Adafruit LSM303DLHC – 3-as Versnellingsmeter + Magnetometer (Kompas) × 1
SparkFun Grote Piezo Alarm – 3kHz × 1
9V batterij × 1
6,35mm vrouwelijke audio jack (geschakeld) – Optioneel × 1
6,35mm audio stekker – Optioneel × 1
Male/Female Jumper Wires × 1 set
9V naar Barrel Jack connector × 1

Apps en online diensten

Over dit project

Heb je ooit een rugzakalarm nodig gehad? Zit je in een openbare ruimte met je rugzak en vrees je diefstal? Dan is dit project voor jou!

Met de LSM303 kompas/versnellingsmeter activeert dit project een alarm wanneer de rugzak wordt verplaatst. De kompas monitort de oriëntatie; bij een beweging van meer dan 10 graden gaat het alarm af.

Stap 1: Arduino bedraden

LSM303 breakout → Arduino:

  • SDA → SDA (A4)
  • SCL → SCL (A5)
  • VIN → 5V
  • GND → GND

Zie Adafruit handleiding voor details.

Piezo buzzer → Arduino:

  • + → Pin 13
  • – → GND
DIY Rugzakalarm met Arduino en LSM303 Kompas

Stap 2: Bibliotheken installeren

  1. Download Adafruit_LSM303DLHC en Adafruit_Sensor als ZIP-bestanden.
  2. Open Arduino IDE (download hier indien nodig).
  3. Sketch → Include Library → Add .ZIP Library… en selecteer beide ZIP-bestanden.
DIY Rugzakalarm met Arduino en LSM303 Kompas
DIY Rugzakalarm met Arduino en LSM303 Kompas

Stap 3: Arduino programmeren

Nieuw bestand in Arduino IDE, alles wissen, onderstaande code plakken:

// Bibliotheken
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
#include <Adafruit_LSM303.h>

// Gevoeligheid (graden)
const int sens = 10;

// Unieke sensor ID
Adafruit_LSM303_Mag_Unified mag = Adafruit_LSM303_Mag_Unified(12345);

void setup(void) {
  // Serial.begin(9600); // Voor debugging
  // Serial.println("Starting...");

  pinMode(13, OUTPUT);

  // Sensor initialiseren
  if (!mag.begin()) {
    // Fout: knipperen pin 13
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    digitalWrite(13, HIGH); delay(500);
    digitalWrite(13, LOW);  delay(500);
    while (1); // Stop
  }

  // 5 seconden wachten voor stabilisatie
  delay(5000);

  // Startmelding: korte beep
  digitalWrite(13, HIGH); delay(500);
  digitalWrite(13, LOW);
}

int getDeg(void) {
  sensors_event_t event;
  mag.getEvent(&event);
  float Pi = 3.14159;
  // Hoek berekenen uit magnetische vector
  float heading = int((atan2(event.magnetic.y, event.magnetic.x) * 180) / Pi);
  // Normaliseren 0-360
  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); // Alarm aan
    // Serial.println("Triggered");
  } else if (newDeg > (oldDeg + sens) && oldDeg != 0 && newDeg != 0) {
    digitalWrite(13, HIGH); // Alarm aan
    // Serial.println("Triggered");
  }

  // Serial.print("New:"); Serial.println(newDeg);
  // Serial.print("Old:"); Serial.println(oldDeg);
}

Arduino aankoppelen, compileren, uploaden.

Stap 4: Testen

Na reset: een paar pieptjes, 3 seconden stil, dan een langere beep. Draai de LSM303 → alarm gaat af. Te gevoelig? Verhoog sens. Te ongevoelig? Verlaag sens.

Twee lange pieptjes voor de 3-sec pauze = bedradingsfout. Controleer verbindingen.

Werkt niet? Controleer bibliotheeknamen: haal #include regels weg, voeg toe via Sketch → Include Library (Wire, Adafruit LSM303DLHC, Adafruit Unified Sensor). Sterke magneetvelden in de buurt? Ga naar andere ruimte/buiten. Houd breakout vlak en parallel aan de grond.

Stap 5: Sleutel (arm/ontwapen) toevoegen

Batterij telkens eruit/erin is vervelend. Een 6,35mm audio jack (zeldzamer dan 3,5mm) fungeert als sleutel. Of gebruik een echte sleutelschakelaar, reed switch + magneet, RFID, smartphone app…

Schakelaar tussen batterij en DC barrel jack plaatsen.

DIY Rugzakalarm met Arduino en LSM303 Kompas

Ik gebruik een eenvoudige wipschakelaar (terminal block barrel jack), maar wees creatief!

Stap 6: Monteren in de rugzak

DIY Rugzakalarm met Arduino en LSM303 Kompas
DIY Rugzakalarm met Arduino en LSM303 Kompas
DIY Rugzakalarm met Arduino en LSM303 Kompas

Gaten zagen voor buzzer en sleutelgat. Kabelbinders of permanentere bevestiging. Zorg dat sensor parallel aan grond ligt en buzzer-gat niet geblokkeerd zit.

Uitbreidingen

Niet alleen voor rugzakken: deur, koekendoos, koelkast, of wat je ook wilt beschermen. De mogelijkheden zijn oneindig!

Code

Zie bovenstaande volledige code (Code sectie).

Schema's

Naar de Kompas:
Blauw – SDA
Geel – SCL
Zwart – GND
Rood – VIN

DIY Rugzakalarm met Arduino en LSM303 Kompas

Productieproces

  1. Veilige thuismonitoring met Home Assistant op Raspberry Pi: Beweging, alarm en videocapture
  2. Een Headless Raspberry Pi 2 Wateralarm Bouwen met Adafruit T-Cobbler Plus
  3. Bewegingsdetectie Alarmsysteem met Java & Reactive Blocks – Implementeren op Raspberry Pi & SMS Sturen
  4. Rollende Alarmrobot: Een Slim, Mobiel Wakker-systeem Aangedreven door Raspberry Pi en Google Calendar
  5. Slimme Plantenalarmer – DIY Sensor voor Optimale Hydratatie
  6. SERENA: Een Aangepast Arduino Mega 2560 Alarmsysteem Met TFT LCD Touchscreen
  7. Beveiliging van alarmsystemen testen met Arduino en RF-modules
  8. Arduino Ultrasonische Afstands- & Temperatuurmeter met LCD Alarm voor Watertanks
  9. Bouw een betrouwbare wekker met DS1302 RTC en Arduino UNO
  10. Bouw een Arduino Beveiligings- & Alarmsysteem – Stap-voor-Stap Tutorial
  11. Fail-Safe Besturingssystemen Ontwerpen voor Veiligheid en Betrouwbaarheid