Arduino mit Bewegungsmelder als Schalter
Die Herausforderung ist einen Lautsprecher im Außenbereich nur anzuschalten, wenn auch Publikum anwesend ist. Material: Arduino Nano; Infrarot Bewegungsmelder, PIR, HC-SR501; doppeltes Solid State Relais.

Der Arduino Nano ist klein, das bringt Vorteile beim Verpacken in ein Gehäuse, der Rechenaufwand für diese Schaltung ist sehr gering, es werden kaum 2% des Speichers genutzt.

Der Bewegungsmelder ist günstige Stangenware (unter 2 €) und bringt drei Einstellungsmöglichkeiten mit: Empfindlichkeit, aktive Zeit und einen Jumper um festzulegen, ob er nach jeder registrierten Bewegung ausschalten soll, oder erst, wenn gar keine Bewegung mehr festgestellt wird. Das macht die Programmierung deutlich einfacher.

Das Solid State Relais hat zwei Vorteile gegenüber einem ‚gewöhnlichen‘: Es hat keine bewegenden Teile (also keine Spule, die durch den Steuerstrom einen kleinen Stab bewegt), dadurch gibt es keinen mechanischen Verschleiß und der Schaltvorgang macht kein Geräusch.
Den Programmcode suche ich mir bei Funduino, statt dem Piezo steuere ich das Relais an, das erfordert nur kleine Anpassungen. Wichtig ist das kommentieren, dann können auch Andere nachvollziehen, was passieren soll.
int relais=6; // Das Wort "Relais" steht jetzt für den Wert 6 int bewegung=7; // Das Wort "bewegung" steht jetzt für den Wert 7 int bewegungsstatus=0; // Das Wort "bewegungsstatus" steht jetzt für den Wert 0. //Später wird unter dieser Variable gespeichert, ob eine Bewegung erkannt wird oder nicht. // Hier beginnt das Setup void setup() { // setzt den digital pin 6 als Ausgang für das Relais pinMode(relais, OUTPUT); // Pin 6 mit dem Relais ist jetzt ein Ausgang pinMode(bewegung, INPUT); // Pin 7 mit dem Bewegungsmelder ist jetzt ein Eingang } // Hier beginnt der Loop-Teil void loop() { bewegungsstatus=digitalRead(bewegung); // Hier wird Pin 7 ausgelesen. Das Ergebnis wird unter der Variablen "bewegungsstatus" // mit dem Wert "HIGH" für 5 Volt oder "LOW" für 0 Volt gespeichert. if (bewegungsstatus == HIGH) // Verarbeitung: Wenn eine bewegung detektiert wird (das Spannungssignal ist hoch) { // Programmabschnitt des IF-Befehls öffnen digitalWrite(relais, HIGH); //Dann soll das Relais schliessen //Delay(5000); // 5 Sekunden Pause } else //ansonsten { digitalWrite(relais, LOW); } }
Nun geht es an das Entwerfen eines Gehäuses. Für einen ersten Test, mache ich es mir einfach und nutze TinkerCAD. Das Video wird mit 1000-facher Geschwindigkeit abgespielt, das Zeichnen hat etwa 45 Minuten gedauert.
Drei Punkte die hier wichtig sind:
-
- der Bewegungsmelder steht vorne etwa 11 mm heraus, deswegen muss er auf einer Schräge angebracht werden
- an der Vorderseite sollen drei Saugnäpfe befestigt werden um das Ganze an eine Scheibe kleben zu können.
- die Anschlüsse für die Lautsprecherkabel und der USB-Port für Strom und eventuelle Programmierung sollen an der Rückseite zugänglich sein.
- Oben müssen die kleinen Potis erreichbar sein, mit denen man den PIR-Sensor einstellen kann
Jetzt wird das ganze im PrusaSlicer für den Druck vorbereitet. Den Testdruck mache ich mit PLA, für die finale Version ist das aber ungeeignet, da es sich schon bei 60-70 Grad verformen kann. Hinter einer Scheibe bei voller Sonneneinstrahlung kann das schnell mal passieren. Wenn alles passt und gut ist, ist PETG die haltbarere Wahl.

Jetzt noch sechs Stunden warten bis der Druck abgeschlossen ist.

Das Ergebnis ist allerdings ganz klar nur ein erster Zwischenschritt. Auf den Bilder sind verschiedene Verbesserungspunkte zu erkennen:
-
- das Gehäuse ist viel zu groß für den beabsichtigten Zweck
- die Löcher für die Saugnäpfe sind zu groß
- das Loch für die ‚Kuppel‘ des Bewegungsmelders ist ein wenig zu klein, das kann durch die kleinen Überstände des Druckes kommen
- die Widerstände um den Bewegungsmelder einzustellen sind nicht gut erreichbar
- die Stifte für das Relais passen nicht, dadurch sitzt das Relais schief um Gehäuse
- das Loch für den USB Anschluss des Arduino sitzt nicht an der richtigen Stelle, das für den Lautsprecheranschluss kann etwas kleiner werden
- der Rand um den Deckel auf das untere Gehäuse zu stecken ist ein kleines bisschen zu groß, deswegen passt er nicht.





So, nach ausführlichem Testen haben sich verschiedene Probleme ergeben (aufgeführt in der Reihenfolge der Erkenntnisse):
-
- das Relais hat nach etwa 10 Minuten nur noch gerauscht, anscheinend hat es den Strom durch das Lautsprecherkabel nicht vertragen. Es wurde ersetzt durch ein kleineres, ’normales‘ Relais, das bis 15 A Stromstärke bei 12 V verträgt.
- Nach zwei weiteren Iterationen passt das Gehäuse recht gut, allerdings kann es mit dem neuen Relais deutlich kleiner werden.
- Als alles zuverlässig funktioniert, komme ich auf die Idee mal zu testen wie gut der PIR-Bewegungsmelder funktioniert, wenn er hinter einer Glasscheibe ist. Ergebnis: GAR NICHT. Eine kurze Recherche ergibt, dass Glas den kompletten Frequenzbereich des Infrarot-Lichts, das der Sensor braucht weg filtert. Er ist blind.
- Es muss also ein Radarsensor zum Einsatz kommen. Dadurch kann das Gehäuse deutlich kleiner und einfacher werden, allerdings ist die Programmierung etwas komplexer, da der Sensor nach zwei Sekunden das Signal ausschaltet.
