Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini

Hat man vergessen, die Hand- oder Umhängetasche zu verschließen, dann haben Langfinger einfaches Spiel. Eine dezente Erinnerung, den Reißverschluss der Tasche zuzuziehen, kann Diebstähle vermeiden. Das erledigt der Taschenalarm Bag-y auf Basis eines Arduino Pro mini. Außerdem schaltet Bag-y automatisch eine LED-Innenbeleuchtung ein und bringt so Licht ins Dunkel einer Tasche.

Bauteile und Kosten

Neben einem Arduino Pro mini (3,3 Volt) werden ein Hall-Sensor, eine helle weiße LED, ein kleiner Piezo-Summer, ein Widerstand, etwas Kabel, ein USB-Stecker und fünf Schrauben benötigt. Als Stromversorgung dient eine Powerbank. Die Gehäuse für die Elektronik, die Kombination aus Hall-Sensor und LED sowie ein Ansteck-Clip kommen aus dem 3D-Drucker. Gut 10 Euro kosten die Teile exklusive Powerbank. Die Bauzeit beträgt knapp eine Stunde – ohne Gehäusedruck.

  • 1 x Arduino Pro mini (3,3 Volt)
  • 1 x Hall-Sensor Honeywell SS495A (4,5 Volt)
  • 1 x weiße LED 5 mm (30.000 mcd) (3,3 Volt)
  • 1 x Mini-Piezo-Summer (3 Volt)
  • 1 x Widerstand 150 Ω
  • 1 x USB-A-Einbaustecker
  • 1 x Neodym-Magnet 1,24 Tesla mit 5 mm Durchmesser
  • 1 x Kabel 4-polig (Länge nach Bedarf)
  • Filament für 3D-Gehäusedruck
  • 5 x Schneidschrauben 2 x 12 mm
  • 1 x Powerbank 5 Volt mit USB-A-Ausgang

Funktionsprinzip

Der Arduino Pro mini überwacht kontinuierlich, ob der Reißverschluss einer Tasche verschlossen oder geöffnet ist. Dies geschieht über einen Hall-Sensor, der in einem kleinen Gehäuse untergebracht und in der Nähe des oberer Bandendes des Reißverschlusses im Inneren der Tasche angeclipt ist. In dem Gehäuse befindet sich zusätzlich eine kleine weiße LED zur Innenbeleuchtung der Tasche.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Bag-y komplett mit Powerbank

Auf der Unterseite des Reißverschluss-Schiebers ist ein kleiner Neodym-Magnet aufgeklebt. Ist die Tasche geschlossen, dann befindet sich der Schieber mit dem Magneten in der Nähe des Hall-Sensors. Ist die Tasche geöffnet, dann ist der Schieber mit dem Magnet weiter entfernt. Der Hall-Sensor registriert in Abhängigkeit der Stellung des Schiebers ein stärkeres oder schwächeres Magnetfeld und liefert ein Signal über einen analogen Eingang an den Arduino. Wird die Tasche geöffnet, dann schaltet der Arduino über einen digitalen Ausgang eine helle weiße LED ein, um die Tasche innen zu beleuchten. Außerdem wird ein 20-Sekunden-Timer ausgelöst. Verschließt man die Tasche innerhalb dieser Zeitspanne nicht, dann löst ein kleiner Piezo-Summer einen Alarm aus und erinnert an das Verschließen der Tasche. Sobald der Reißverschluss zugezogen ist, schaltet der Timer oder der laufende Alarm sowie die LED-Beleuchtung ab.

An ein rechtzeitiges Aufladen der Powerbank erinnert eine kleine Piep-Sequenz. Außerdem blinkt die LED, sobald die Tasche geöffnet wird und die Versorgungsspannung einen bestimmten Schwellwert unterschritten hat.

Arduino Pro mini

Das Herzstück von Bag-y ist ein Arduino Pro mini. Im Projekt kommt die 3,3-Volt-Variante zum Einsatz, die mit einem Takt von 8 MHz arbeitet. Im Vergleich zum 5 Volt-Modell, das mit 16 MHz getaktet ist, benötigt das 3,3-Volt-Board weniger Strom und ist deshalb für den mobilen Einsatz und die Befeuerung mit einer Powerbank besser geeignet.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Arduino Pro mini

Die Eingangsspannung kann zwischen 3,35 und 12 Volt betragen. Ein Spannungsregler ist auf dem Board integriert. Eine Powerbank mit einer Spannung von 5 Volt kann also direkt zur Stromversorgung angeschlossen werden.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Bag-y Schaltplan

Reißverschluss-Stellung mit Hall-Sensor erkennen

Der Honeywell SS495A Hall-Sensor arbeitet analog und benötigt eine Versorgungsspannung von mindestens 4,5 Volt. In Abhängigkeit vom Magnetfeld beträgt die ausgegebene Signalspannung zwischen 0,5 und 4,5 Volt. Bei Null Tesla liegt sie bei 2,5 Volt.

Den Ausgang des Hall-Sensors verbindet man mit dem analogen A0-Eingang des Arduino Pro mini. Da das Board nur maximal 3 Volt Signalspannung verträgt, ist ein 150 Ω Widerstand dazwischengeschaltet, um die Spannung auf das gewünschte Niveau zu bringen.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Hall-Sensor mit Magnet

Der Hall-Sensor liefert bei dem verwendeten Neodym-Magnet Werte zwischen Null und etwa 550. Bei hohen Werten ist die Tasche geschlossen, bei niedrigen geöffnet. Im Sketch trägt man einen Wert für halloffen ein, der etwas unterhalb des Maximums bei geschlossener Tasche liegt. Beim Überschreiten des Wertes gilt die Tasche als geschlossen, beim Unterschreiten als geöffnet.

Innenbeleuchtung per LED

Beim Öffnen der Tasche soll eine LED das Innere der Tasche beleuchten. Eine weiße LED mit einer Helligkeit von 30.000 Mikrocandela erledigt den Job. Die LED benötigt eine Spannung von 3,3 Volt und kann ohne Vorwiderstand an den digitalen Ausgang 11 des Arduino Pro mini angeschlossen werden. Das emittierte Licht ist so hell, dass sie eine Handtasche oder eine kleine Umhängetasche komplett ausleuchtet. Ein Reflektor ist also nicht notwendig. Beim Schließen des Taschenreißverschlusses wird die LED abgeschaltet.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Beleuchtungs-LED

Alarmierung mit Piezo-Summer

Ist die Tasche 20 Sekunden lang geöffnet, schaltet der Arduino automatisch den kleinen Piezo-Summer ein. Ein Timer fügt dem Alarmton kurze Pausen hinzu, um ihn besser wahrnehmen zu können. Der Summer benötigt eine Spannung von 3 Volt, die er direkt vom digitalen Ausgang 12 des Arduino bezieht. Einen Vorwiderstand benötigt man also nicht. Der Alarm verstummt mit dem Verschließen der Tasche.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Piezo-Summer

Stromsparoptionen und Akku-Überwachung

Den Strom erhält Bag-y aus einer Powerbank. Sie liefert 5 Volt über einen USB-A-Anschluss. Ein entsprechender USB-Stecker ist im Gehäuse integriert, sodass man Bag-y einfach an eine beliebige Powerbank anstöpseln kann. Um nicht ständig nachladen zu müssen, sollte die Powerbank eine möglichst hohe Kapazität aufweisen. Eine Anker PowerCore II mit 20.000 mAh hält Bag-y ohne abzuschalten etwa drei Wochen am Leben.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Bag-y an Powerbank

Da die Stromaufnahme mit etwa 22,1 mAh für das Board und etwa 1,5 mAh für den Hall-Sensor sehr gering ist, schalten manche Powerbanks nach einigen Sekunden ab. Diese Automatik sitzt in der Powerbank und dient dazu, dass sie nicht tiefentlädt und nur dann Strom liefert, wenn ein Verbraucher angeschlossen ist. Im Fall von Bag-y ist die Stromaufnahme so gering, dass das Gerät nicht erkannt wird. Um die Automatik auszutricksen, verwendet man eine kleine Elektronik. Sie sorgt dafür, dass in Abständen von einigen Sekunden ein höherer Strom entnommen wird. Wie das funktioniert und wie man die Schaltung baut, haben wir im Artikel „Automatische Abschaltung von Powerbanks als Arduino-Stromversorgung bei geringer Grundlast verhindern“ zusammengefasst. Die kurzen Stromimpulse wirken sich allerdings auf die Laufzeit aus. Die verwendete Anker PowerCore II schaltet erst bei geringeren Strömen ab. Sie lässt sich daher problemlos als Spannungsquelle für den Taschenalarm einsetzen.

Um zu vermeiden, dass der Akku unbemerkt leer läuft und die Alarmierung dann nicht mehr auslöst, wird die Spannung des Akkus regelmäßig überwacht. Das Github-Projekt Arduino VCC stellt eine Funktionsbibliothek zur Verfügung, um die Versorgungsspannung ohne externe Zusatzbauteile auszulesen. Die Bibliothek bindet man durch das Kopieren in „Libraries“ im Arduino-Ordner ein.

Sinkt die Spannung unter 4,5 Volt, dann gibt der Piezo-Summer beim Öffnen der Tasche drei Warntöne ab und die Beleuchtungs-LED blinkt. Dann sollte die Powerbank möglichst schnell wieder aufgeladen werden.

Programmierung

Die Programmierung des Arduino Pro mini erfolgt mit der Arduino IDE, die kostenfrei zum Download zur Verfügung steht. Da das Board keinen Onboard-TTL-Adapter zur Programmierung über die USB-Schnittstelle besitzt, muss man einen externen Adapter verwenden.

Als einzige Anpassung muss im Sketch der Wert für hallopen wie beschrieben ermittelt und eingetragen werden. Danach überträgt man den Sketch auf das Board.

#include "Vcc.h"
#define hallpin A0
#define ledpin 11
#define buzzerpin 12
#define hallopen 490 // Grenzwert für Alarmierung gegebenenfalls anpassen
unsigned long buzzertimemax = 20000; // Dauer bis zur Alarmauslösung gegebenenfalls anpassen (hier 20 Sekunden)
unsigned long previousmillisbuzzerinterval = 0;
unsigned long previousmillisbuzzer = 0;
unsigned long buzzerintervalmax = 800;
boolean buzzeron = false;
boolean buzzervalue = false;
const float VccCorrection = 1.0/1.0;

Vcc vcc(VccCorrection);


void setup() 
{
  pinMode(hallpin,INPUT);
  pinMode(ledpin,OUTPUT);
  pinMode(buzzerpin,OUTPUT);
  digitalWrite(ledpin,LOW);
  digitalWrite(buzzerpin,LOW);
  delay(5000);
}

boolean bagclosed()
{
  int hall = analogRead(hallpin);
  if (hall > hallopen)
    {
      return(false);
    }
  else
    {
      return(true);
    }    
}

boolean batteryempty()
{
  float volt = vcc.Read_Volts();
  if (volt < 4.5)
    {
      return(true);
    }
  else
    {
      return(false);
    }
}

void loop() 
{
  if (bagclosed())
    {
      digitalWrite(ledpin,LOW);
      digitalWrite(buzzerpin,LOW);
      previousmillisbuzzer = millis();
      buzzeron = false;
    }
  else
    {
      digitalWrite(ledpin,HIGH);
      if ((millis() - previousmillisbuzzer) > buzzertimemax) 
        {
          previousmillisbuzzer = millis();
          buzzeron = true; 
          buzzervalue = false; 
          if (batteryempty())
            {
              digitalWrite(buzzerpin,HIGH);
              delay(800);
              digitalWrite(ledpin,LOW);
              digitalWrite(buzzerpin,LOW);
              delay(800);
              digitalWrite(ledpin,HIGH);
              digitalWrite(buzzerpin,HIGH);
              delay(800);
              digitalWrite(buzzerpin,LOW);
            }
        }
    }
  if (buzzeron)
    {
      if ((millis() - previousmillisbuzzerinterval) > buzzerintervalmax) 
        {
          previousmillisbuzzerinterval = millis();
          buzzervalue = !buzzervalue;
          digitalWrite(buzzerpin,buzzervalue);
        }      
    }
}

Gehäuse drucken mit dem 3D-Drucker

Die Gehäuse für Bag-y und die Kombination aus Hall-Sensor und LED werden mit dem 3D-Drucker erstellt. Der Entwurf der Gehäuse erfolgt mit dem 3D-CAD/CAM-Tool Autodesk Fusion 360. Der Download und die Nutzung der Software ist für Privatanwender nach einer Registrierung kostenfrei.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Bag-y offen von oben

Das Bag-y-Gehäuse besteht aus einer Basis und einem Deckel. Die Basis ist mit Halterungen für die Bauteile versehen. Der USB-Stecker wird zusätzlich mit etwas Kunststoffkleber fixiert. Der Deckel besitzt Aussparungen für den USB-Stecker, den Summer und das Sensorkabel.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Gehäusedeckel

Das kleinere Gehäuse nimmt den Hall-Sensor, den Vorwiderstand und die LED auf. Der Deckel und ein Kunststoff-Clip aus dem 3D-Drucker wird mit einer Schraube befestigt. Der Clip dient zum Festklemmen des Sensorgehäuses an der Tasche. Je nach Dicke der Tasche, muss der Clip eventuell angepasst werden.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Sensor offen mit Gehäusedeckel

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Gehäuse-Clip

Die Druckvorlagen im STL-Format für die beiden Gehäuse und den Befestigungs-Clip stehen bei Thingiverse zum kostenfreien Download bereit.

Einbau in eine Tasche

Die Powerbank mit aufgestecktem Bag-y wird einfach in einem Innenfach der Tasche verstaut. Auf ein loses Reinwerfen in die Tasche sollte man lieber verzichten, denn sonst könnte das Sensorkabel abreißen.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Sensor und Innenbeleuchtung in Tasche

Das Sensorgehäuse klemmt man am Ende des Reißverschlusses so fest, dass sich der Hall-Sensor bei geschlossenem Reißverschluss maximal drei Millimeter von dem Schieber entfernt befindet. Den Neodym-Magnet klebt man auf der Unterseite des Schiebers mit einem Tropfen Sekundenkleber fest. Geschafft! Bag-y ist jetzt einsatzbereit.

Bag-y Taschenalarm und Innenbeleuchtung mit Arduino Pro mini Clip an Tasche außen

Fazit

Bag-y ist schnell zusammengebaut. Die Bauteile kosten mit wenig mehr als zehn Euro auch nicht besonders viel. Dafür erhält man neben dem Bastelspaß einen wirksamen Taschenalarm und eine hilfreiche Innenbeleuchtung. Bag-y eignet sich aber nicht nur für den Schutz vor Taschendieben, sondern kann auch dabei helfen, einen Angreifer in die Flucht zu schlagen: Fühlt man sich bedroht, öffnet man die Tasche und löst damit den Alarm aus.

3 Kommentare

  1. Das wäre was für meine Frau. Die lässt ständig ihre Handtasche offen stehen. Da habe ich ein Bastelprojekt fürs nächste Wochenende. 🙂 Gruß Michael

  2. Sehr cool! Jetzt brauche ich noch jemand, der mir das zusammenbaut. 😉 Ich habe da gar keine Erfahrung.

    Bea

  3. Funktioniert großartig! Danke für die Anleitung!

    Gruß Carsten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert