Contatore Trick-or-Treat Raspberry Pi con OpenCV
Un contatore Trick-or-Treat registra i visitatori alla porta e memorizza ogni «ingresso» come evento con marca temporale. Con un Raspberry Pi è possibile risolverlo in modo pulito, sia tramite telecamera (OpenCV/YOLO, attraversare la linea) oppure semplicemente tramite sensore di porta e serie temporali nel dashboard. Questo tutorial mostra passo passo quale variante sia adatta, come funziona e dove trovare istruzioni affidabili.
Introduzione e panoramica
Per un contatore Trick-or-Treat ci sono due approcci principali: conteggio basato sulla fotocamera e conteggio basato sui sensori. Entrambi utilizzano un Raspberry Pi come unità di controllo centrale. La variante basata sulla fotocamera identifica le persone nell'immagine video, le segue attraverso i frame e registra il passaggio di una linea virtuale come evento di conteggio. Questo è noto come conteggio su linea/zone. La variante basata sui sensori utilizza un sensore della porta, che rileva ogni apertura e chiusura. I dati rilevati possono essere visualizzati in un dashboard, ad esempio con Grafana.
Conteggio basato sulla telecamera
Il conteggio basato sulla telecamera utilizza la visione artificiale per riconoscere e contare le persone. OpenCV è una libreria per l'elaborazione delle immagini e il tracciamento. YOLO (You Only Look Once) è un rilevatore di deep learning che rileva oggetti in tempo reale. Ultralytics documenta direttamente il conteggio linea/zone per YOLO. In questo processo le persone nell'immagine video vengono rilevate, seguite attraverso i frame e il passaggio su una linea virtuale viene registrato come «+1». Questo previene i conteggi doppi da parte dei back-end di tracking. Già nel 2018 è stato mostrato PyImageSearch un contatore di persone pratico con OpenCV, Tracking e logica «in/out» su una linea. Dal 2024/2025 esistono guide ben curate su YOLO-Counting (Linee/zone) inclusi backends di tracking. Per l'hardware esiste un offizieller Quick-Start von Ultralytics für den Raspberry Pi ( incluso Pi 5, Bookworm, setup della fotocamera e esportazione NCNN per maggiori prestazioni). OpenCV si può installare sul Pi tramite repository di pacchetti o script di build; Q-engineering pflegt aktuelle, Pi-5-taugliche Anleitungen. Il conteggio basato sulla telecamera fornisce contesto, ma richiede luce e potenza di calcolo. YOLO è robusto contro sfondi che cambiano; OpenCV-Only è più leggero e sufficiente con poco movimento. Sul Pi 5 Ultralytics consiglia modelli NCNN, poiché questi girano in modo più efficiente su ARM rispetto all'inferenza PyTorch pura, riducendo latenza e consumo energetico.

Quelle: youtube.com
OpenCV consente il riconoscimento e il conteggio precisi delle persone in tempo reale.
Quelle: YouTube
Conteggio basato sui sensori
In alternativa al conteggio basato sulla telecamera, un sensore di porta, come un interruttore Reed magnetico, può rilevare ogni apertura e chiusura della porta. Questo metodo è robusto e spesso sufficiente. Adafruit bietet Anleitungen zur Bewegungserfassung mit dem Raspberry Pi. Anche su Raspberry Pi Stack Exchange finden sich Informationen zur Anbindung von 2-Draht-Türsensoren. I sensori di porta sono incredibilmente semplici, ma conteggiano solo gli «eventi di porta». In gruppi di persone per Halloween questo può sottostimare o sovrastimare il numero reale di persone. Tuttavia sono parsimoniosi in termini di dati e richiedono meno potenza di calcolo rispetto ai sistemi basati sulla telecamera.

Quelle: donskytech.com
Sensori a infrarossi offrono un metodo semplice ed efficace per contare i visitatori.
Visualizzazione e archiviazione dei dati
Per la visualizzazione dei dati di conteggio si prestano InfluxDB (Zeitreihen-Datenbank) e Grafana. Senza un database dedicato può Grafana Live/MQTT essere utilizzato. Il Grafana MQTT-Datasource-Plugin priorizza i dati in tempo reale. Per i dashboard, InfluxDB 2 e Grafana sono stabiliti sul Raspberry Pi, incluse guide ufficiali di configurazione. Chi desidera iniziare senza un database può utilizzare lo streaming tramite Grafana Live e plugin MQTT, dove il plugin dà priorità al tempo reale invece che alla cronologia. Grafana-MQTT-streaming funziona, ma è progettato per tempo reale; la cronologia richiede un database. Le voci della community segnalano occasionalmente comportamenti instabili o limitazioni nei plugin MQTT, rendendo una pipeline DB plausibile per setup produttivi.
Realizzazione pratica e consigli
Per risultati rapidi scegliete la strada con la massima probabilità di successo per l'ambiente. Per la variante basata sulla fotocamera con YOLO: installare Ultralytics, scegliere un modello leggero (ad es. «n»), definire una linea al passaggio della porta, pubblicare il callback di conteggio via MQTT. Il offizielle Raspberry-Pi-How-to deckt Setup und Beschleunigung per NCNN ab. Per OpenCV-only: sottrazione dello sfondo/tracking, linea virtuale, conteggio senza rete — particolarmente efficace con uno sfondo stabile. Per la route del sensore della porta: interruttore Reed sul GPIO, script Python per apertura/chiusura, publish MQTT. Verkabelung und Pull-ups sind dokumentiert. Per i dashboard: OPPURE InfluxDB 2 + Grafana nach Anleitung installieren o Live/MQTT testen, wenn Historie unwichtig ist. Esempi Trick-or-Treat dalla community Maker mostrano come motion-trigger, contatori e display si combinano, ad esempio il „Pumpkin Pi Trick-or-Treat Tracker“. Il video zeigt Counting mit YOLOv8, ByteTrack und Supervision; è utile per vedere l'interazione tra rilevamento, tracciamento e eventi di linea. Inizia in piccolo, testa sulla porta reale e amplia solo ciò che manca nella vita quotidiana — allora il tuo contatore misurerà solo ciò che conta.

Quelle: support.initialstate.com
Con un Raspberry Pi è possibile realizzare sistemi di conteggio creativi per i visitatori di Halloween.
Quelle: YouTube