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

Stap 2: Bibliotheken installeren
- Download
Adafruit_LSM303DLHCenAdafruit_Sensorals ZIP-bestanden. - Open Arduino IDE (download hier indien nodig).
- Sketch → Include Library → Add .ZIP Library… en selecteer beide ZIP-bestanden.


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.

Ik gebruik een eenvoudige wipschakelaar (terminal block barrel jack), maar wees creatief!
Stap 6: Monteren in de rugzak



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

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