Raspberry Pi Trick-or-Treat Counter mit OpenCV
Ein Trick-or-Treat-Counter erfasst Besucher an der Haustür und speichert jeden „Eintritt“ als Ereignis mit Zeitstempel. Mit einem Raspberry Pi lässt sich dies sauber lösen, entweder per Kamera (OpenCV/YOLO, Linie überqueren) oder schlicht per Türsensor und Zeitreihe im Dashboard. Dieses Erklärstück zeigt Schritt für Schritt, welche Variante wann passt, wie sie funktioniert und wo verlässliche Anleitungen zu finden sind.
Einführung & Überblick
Für einen Trick-or-Treat-Counter gibt es zwei Hauptansätze: Kamera-basierte Zählung und Sensor-basierte Zählung. Beide nutzen einen Raspberry Pi als zentrale Steuereinheit. Die Kamera-Variante identifiziert Personen im Videobild, verfolgt sie über Frames hinweg und registriert das Überqueren einer virtuellen Linie als Zählereignis. Dies wird als Line-/Zone-Counting bezeichnet. Die Sensor-Variante verwendet einen Türsensor, der jeden Öffnungs- und Schließvorgang erfasst. Die erfassten Daten können in einem Dashboard visualisiert werden, beispielsweise mit Grafana.
Kamera-basierte Zählung
Die Kamera-basierte Zählung nutzt Computer Vision, um Personen zu erkennen und zu zählen. OpenCV ist eine Bibliothek für Bildverarbeitung und Tracking. YOLO (You Only Look Once) ist ein Deep-Learning-Detektor, der Objekte in Echtzeit erkennt. Ultralytics dokumentiert direktes Line/Zone-Counting für YOLO. Dabei werden Personen im Videobild erkannt, über Frames hinweg verfolgt und das Überqueren einer virtuellen Linie als „+1“ gebucht. Dies verhindert Doppelzählungen durch Tracking-Backends. Bereits 2018 zeigte PyImageSearch einen praxistauglichen People-Counter mit OpenCV, Tracking und „in/out“-Logik über eine Linie. Seit 2024/2025 gibt es gepflegte Leitfäden zum YOLO-Counting (Linien/Zonen) samt Tracking-Backends. Für die Hardware existiert ein offizieller Quick-Start von Ultralytics für den Raspberry Pi (inkl. Pi 5, Bookworm, Kamera-Setup und NCNN-Export für mehr Performance). OpenCV lässt sich auf dem Pi über Paketquelle oder Build-Script installieren; Q-engineering pflegt aktuelle, Pi-5-taugliche Anleitungen. Kamera-Counting liefert Kontext, benötigt aber Licht und Rechenleistung. YOLO ist robust gegen wechselnde Hintergründe, OpenCV-Only ist leichter und genügt bei wenig Bewegung. Auf dem Pi 5 empfiehlt Ultralytics NCNN-Modelle, da diese auf ARM effizienter laufen als reine PyTorch-Inferenz, was Latenz und Stromverbrauch senkt.

Quelle: youtube.com
OpenCV ermöglicht die präzise Erkennung und Zählung von Personen in Echtzeit.
Quelle: YouTube
Sensor-basierte Zählung
Alternativ zur Kamera-basierten Zählung kann ein Türsensor, wie ein Magnet-Reed-Schalter, jeden Öffnungs- und Schließvorgang der Tür erfassen. Diese Methode ist robust und oft ausreichend. Adafruit bietet Anleitungen zur Bewegungserfassung mit dem Raspberry Pi. Auch auf Raspberry Pi Stack Exchange finden sich Informationen zur Anbindung von 2-Draht-Türsensoren. Türsensoren sind unschlagbar einfach, zählen aber nur „Tür-Ereignisse“. Bei Sammelgruppen an Halloween kann dies die reale Personenzahl unter- oder überschätzen. Sie sind jedoch datensparsam und erfordern weniger Rechenleistung als Kamera-Systeme.

Quelle: donskytech.com
Infrarotsensoren bieten eine einfache und effektive Methode zur Zählung von Besuchern.
Datenvisualisierung & Speicherung
Für die Visualisierung der Zähldaten eignen sich InfluxDB (Zeitreihen-Datenbank) und Grafana. Ohne eine dedizierte Datenbank kann Grafana Live/MQTT genutzt werden. Das Grafana MQTT-Datasource-Plugin priorisiert Echtzeitdaten. Für Dashboards sind InfluxDB 2 und Grafana auf dem Pi etabliert, inklusive offizieller Setup-Guides. Wer ohne Datenbank starten will, kann Streaming per Grafana Live und MQTT-Plugin nutzen, wobei das Plugin Echtzeit statt Historie priorisiert. Grafana-MQTT-Streaming funktioniert, ist aber auf Echtzeit ausgelegt; Historie erfordert eine Datenbank. Community-Stimmen melden bei MQTT-Plugins gelegentlich instabiles Verhalten oder Einschränkungen, was für produktive Setups eine DB-Pipeline plausibel macht.
Praktische Umsetzung & Tipps
Für schnelle Ergebnisse wählt den Weg mit der höchsten Erfolgswahrscheinlichkeit für Eure Umgebung. Für die Kamera-Variante mit YOLO: Ultralytics installieren, leichtes Modell wählen (z. B. „n“), Linie an der Türschwelle definieren, Zähl-Callback per MQTT publizieren. Das offizielle Raspberry-Pi-How-to deckt Setup und Beschleunigung per NCNN ab. Für OpenCV-Only: Hintergrund-Subtraktion/Tracking, virtuelle Linie, Zählung ohne Netz – besonders gut bei stabilem Hintergrund. Für die Türsensor-Route: Reed-Schalter an GPIO, Python-Script für Open/Close, MQTT-Publish. Verkabelung und Pull-ups sind dokumentiert. Für Dashboards: Entweder InfluxDB 2 + Grafana nach Anleitung installieren oder Live/MQTT testen, wenn Historie unwichtig ist. Trick-or-Treat-Beispiele aus der Maker-Community zeigen, wie Motion-Trigger, Zähler und Anzeige zusammengehen, z. B. der „Pumpkin Pi Trick-or-Treat Tracker“. Das Video zeigt Counting mit YOLOv8, ByteTrack und Supervision; hilfreich, um das Zusammenspiel aus Erkennung, Tracking und Line-Events zu sehen. Fang klein an, teste an der echten Tür und erweitere nur, was im Alltag fehlt – dann zählt Dein Zähler genau das, was zählt.

Quelle: support.initialstate.com
Mit einem Raspberry Pi lassen sich kreative Zählsysteme für Halloween-Besucher realisieren.
Quelle: YouTube